如何部署"war"文件构建与spring引导码头?当我将war文件部署到jetty时,我无法访问spring引导应用程序的restful服务。
接下来的步骤:
- 参考Spring引导war文档,我创建了一个war文件。我可以在war文件中看到这些文件。
- 复制战争到
${jetty home}/webapps
。(/usr/share/码头/webapps) - 添加了一个context .xml文件,其中包含我的战争名称(不包括.war后缀)
- 重启Jetty服务
当我浏览localhost:8080时,我看到了我的web应用程序的文件夹结构(即web - inf资源)本地主机上没有可用的spring资源路径。我的spring应用程序具有JAX-RS资源。下面是我的ApplicationInitializer类(Groovy
)。
class ApplicationInitializer extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
Properties props = getPropertiesFromArgs()
return new SpringApplicationBuilder([Application, "classpath:/META-INF/com/foo/testapp/bootstrap.xml"] as Object[])
.properties(props)
}
它的as-if码头启动没有启动spring上下文。我错过了什么?如果我运行spring boot构建的uber jar,应用程序可以正常工作。我可以访问应用程序的所有restful资源。
明白了。我没有使用Servlet 3.0兼容的jetty版本。sudo apt-get install jetty
拔出2.5兼容版本。有一次我升级到Jetty 9。