我已经用嵌入式Tomcat测试Spring Boot大约一个月了,用于构建REST API.一切都很好.我们现在希望在单独的开发环境中部署API,该环境中有一些在Tomcat容器上运行的其他(非Spring)应用程序.
我使用Maven和Spring Boot Docs 将使用Spring Boot JAR应用程序转换为WAR中指定的更改.
部署顺利(日志很好,没有错误),看着Tomcat管理我看到我的应用程序已部署.但是,当我尝试在curl中访问http:// localhost:8080/sophia/users时,我得到404.
任何帮助深表感谢.
更新:
这是我的日志:
Netbeans的:
NetBeans:在Apache Tomcat 8.0.17配置文件模式下部署:false debug mode:false force redeploy:true
在/home/bugz/workspace/pdcore/sophiaserver/target/sophia-server-1.0.0-SNAPSHOT进行就地部署
部署正在进行中......
部署?配置=文件%3A%2Ftmp%2Fcontext1845402702541504208.xml&路径= /蒿
OK - 在上下文路径/ sophia部署应用程序
开始正在进行中......
启动?路径= /索菲娅
确定 - 在上下文路径/ sophia启动应用程序
Tomcat的:
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)
2015年1月22日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"/>
Run Code Online (Sandbox Code Playgroud)
我试过访问
第一个返回404,但返回来自我的CORS过滤器bean的CORS信息.第二个返回404没有CORS信息(表示应用程序已启动并已配置但我似乎无法访问控制器).
我目前正在使用Spring Boot和基于注释的配置来管理我的spring应用程序.该项目由注册和外部服务库组成.
服务由注释的类组成,@Service并@Reposity注入其中.
注册注入@Service.
项目结构(4个maven项目):
xelamitchell (Parent POM)
+- domain
+- service (Spring JPA)
registration (separate project with Spring Boot)
Run Code Online (Sandbox Code Playgroud)
注册有一个maven dependecy服务.
PersonService:
package org.xelamitchell.service.person;
import org.xelamitchell.domain.person.Person;
import java.util.List;
/**
* Manages {@link Person}s.
*
* @author amitchell
*/
public interface PersonService {
List<Person> list();
Person get(Long id);
Boolean exists(Long id);
Person save(Person person);
Boolean delete(Long id);
}
package org.xelamitchell.service.person;
import org.xelamitchell.domain.person.Person;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Primary;
import org.springframework.stereotype.Service;
/**
*
* @author …Run Code Online (Sandbox Code Playgroud)