【发布时间】:2015-03-21 06:22:46
【问题描述】:
我已经用嵌入式 Tomcat 测试 Spring Boot 大约一个月了,以构建一个 REST API。一切正常。我们现在想要将 API 部署在一个单独的开发环境中,该环境有几个其他(非 Spring)应用程序在 Tomcat 容器上运行。
我进行了Converting a Spring Boot JAR Application to a WAR using Maven 和Spring Boot Docs 中指定的更改。
部署进展顺利(日志很好,没有错误),查看 Tomcat 管理我看到我的应用程序已部署。但是,当我尝试在 curl 中访问 http://localhost:8080/sophia/users 时,我得到 404。
非常感谢任何帮助。
更新:
这是我的日志:
Netbeans:
NetBeans:在 Apache Tomcat 8.0.17 上部署 个人资料模式:假 调试模式:假 强制重新部署:true
在 /home/bugz/workspace/pdcore/sophiaserver/target/sophia-server-1.0.0-SNAPSHOT 的就地部署
部署正在进行中...
deploy?config=file%3A%2Ftmp%2Fcontext1845402702541504208.xml&path=/sophia
OK - 在上下文路径 /sophia 部署应用程序
启动正在进行中...
start?path=/sophia
OK - 在上下文路径 /sophia 启动应用程序
雄猫:
INFO 10:47:52:703 org.springframework.boot.context.embedded.ServletRegistrationBean - 将 servlet:'dispatcherServlet' 映射到 [/sophia/*]
INFO 10:47:54:042 org.springframework.boot.SpringApplication - 在 8.285 秒内启动应用程序(JVM 运行 12087.301)
22-Jan-2015 10:47:54.060 INFO [http-nio-8080-exec-99] org.apache.catalina.startup.HostConfig.deployDescriptor 部署配置描述符 /home/bugz/workspace/server/apache -tomcat-8.0.17/conf/Catalina/localhost/sophia.xml 已在 12,091 毫秒内完成
在 Catalina localhost 的 sophia.xml 中:
<?xml version="1.0" encoding="UTF-8"?>
<Context antiJARLocking="true" docBase="/home/bugz/workspace/pdcore/sophiaserver/target/sophia-server-1.0.0-SNAPSHOT" path="/sophia"/>
我已尝试访问
第一个返回 404,但带有来自我的 CORS 过滤器 bean 的 CORS 信息。第二个返回 404 没有 CORS 信息(这表明应用程序已启动并已配置,但我似乎无权访问控制器)。
【问题讨论】:
-
检查您的日志文件,您确定应用程序部署在该特定 URL...
-
@M. Deinum,我已经添加了我得到的日志。控制器已映射,它似乎正在按预期部署上下文 (/sophia)。
-
你的应用被映射到
/sophia,接下来你的DispatcherServlet被映射到/sophia/*,使得URL调用/sophia/sophia/users。当作为 jar 运行时,它被部署为映射到/的根应用程序... -
真棒@M。 Deinum,请添加一个答案,我会接受。非常感谢!
标签: java maven spring-mvc tomcat spring-boot