我已经在OS X上下载了Spring Roo 2.0.0 RC1和Spring Tools Suite 3.9。
我创建了一个空项目,然后运行以下命令导入PetClinic示例:
script --file clinic.roo
导入以及Maven依赖项安装按预期工作。 但是当我在服务器上运行应用程序(库存Pivotal tc Server Developer Edition v3.2)时,我收到404错误!
我在一个带注释的@SpringBootApplication
主类上放了一个调试断点,在这个主类中我们有main,没有捕获。
问题:如何运行宠物诊所样本?为什么应用程序无法启动?
问候。
答案 0 :(得分:3)
根据Spring documentation:为了在Java EE服务器上正确启动它,您必须扩展SpringBootServletInitializer
。
请确保此类来自org.springframework.boot.web.support
包, 来自org.springframework.boot.context.web
包。
在extends
后,您必须覆盖configure
方法,如下所示:
@SpringBootApplication
public class PetClinicApplication extends SpringBootServletInitializer{
private static Class<PetClinicApplication> applicationClass = PetClinicApplication.class;
/**
* TODO Auto-generated method documentation
*
* @param args
*/
public static void main(String[] args) {
SpringApplication.run(PetClinicApplication.class, args);
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(applicationClass);
}
}
解释(来自上面的相同链接):
这个新的基类 - SpringBootServletInitializer - 使用Servlet 3样式的Java配置API,它允许您在代码中描述之前只能在web.xml中描述的内容。