我正在构build一个基于Spark mini-framework( http://sparkjava.com/ )的API,
每当我通过Maven构build一个包,然后上传到Tomcat 7下的webapps /文件夹。
(真实姓名已被replace为TestProject,以避免泄露任何propriary)
如果我编译该项目并将其命名为TestProject.war,则会加载以下信息:
path :/ TestProject
版本 : 没有指定
打开http:// localhost:8080 / TestProject / I后,得到预期的输出:
{“code”:400,“message”:“授权信息未在请求中指定”}
如果我然后将文件重命名为TestProject ## 0.0.1-SNAPSHOT_20160308.161909.war并重新启动Tomcat,应用程序将加载以下详细信息:
path :/ TestProject
版本 :0.0.1-SNAPSHOT_20160308.161909
不幸的是,当打开相同的URL时,Tomcat返回404:
HTTP状态404 – /
键入状态报告
消息 /
说明请求的资源不可用。 阿帕奇
Tomcat的/ 7.0.67
$ cat web.xml <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd" > <web-app> <display-name>RESTFul Web Service</display-name> <filter> <filter-name>SparkFilter</filter-name> <filter-class>spark.servlet.SparkFilter</filter-class> <init-param> <param-name>applicationClass</param-name> <param-value>TestProjectService</param-value> </init-param> </filter> <filter> <filter-name>CorsFilter</filter-name> <filter-class>org.apache.catalina.filters.CorsFilter</filter-class> <init-param> <param-name>cors.allowed.origins</param-name> <param-value>*</param-value> </init-param> <init-param> <param-name>cors.allowed.methods</param-name> <param-value>GET,POST,HEAD,OPTIONS,PUT</param-value> </init-param> <init-param> <param-name>cors.allowed.headers</param-name> <param-value>Content-Type,X-Requested-With,accept,authorization,scope,Origin,Access-Control-Request-Method,Access-Control-Request-Headers</param-value> </init-param> <init-param> <param-name>cors.exposed.headers</param-name> <param-value>Access-Control-Allow-Origin,Access-Control-Allow-Credentials</param-value> </init-param> <init-param> <param-name>cors.support.credentials</param-name> <param-value>true</param-value> </init-param> <init-param> <param-name>cors.preflight.maxage</param-name> <param-value>10</param-value> </init-param> </filter> <filter-mapping> <filter-name>CorsFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <filter-mapping> <filter-name>SparkFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> </web-app> $ cat context.xml <?xml version="1.0" encoding="UTF-8"?> <Context antiResourceLocking="true" path="/TestProject"/>
我只是不知道是什么原因引起的问题。唯一的区别是.war的名字
系统信息:
OS: Windows 10 x64 Java: java version "1.8.0_73" Java(TM) SE Runtime Environment (build 1.8.0_73-b02) Java HotSpot(TM) 64-Bit Server VM (build 25.73-b02, mixed mode) C:\OtherPrograms\apache-tomcat-7.0.67>bin\startup.bat Using CATALINA_BASE: "C:\OtherPrograms\apache-tomcat-7.0.67" Using CATALINA_HOME: "C:\OtherPrograms\apache-tomcat-7.0.67" Using CATALINA_TMPDIR: "C:\OtherPrograms\apache-tomcat-7.0.67\temp" Using JRE_HOME: "C:\Program Files\Java\jdk1.8.0_73" Using CLASSPATH: "C:\OtherPrograms\apache-tomcat-7.0.67\bin\bootstrap.jar;C:\OtherPrograms\apache-tomcat-7.0.67\bin\tomcat-juli.jar"