代码之家  ›  专栏  ›  技术社区  ›  suman j

spring-boot应用程序部署到专用的jetty实例

  •  0
  • suman j  · 技术社区  · 12 年前

    如何将使用spring boot构建的“war”文件部署到jetty?当我将war文件部署到jetty时,我无法访问我的spring-boot应用程序的restful服务。

    我遵循的步骤:

    1. 参考 Spring boot war 文档我创建了一个战争文件。我可以看到战争档案中有这些档案。
      1. 将战争复制到 ${jetty home}/webapps 。(/usr/share/jetty/webapps)
      2. 添加了一个带有我的战争名称(不包括.war后缀)的context.xml文件
      3. 重新启动Jetty服务

    当我浏览localhost:8080时,我看到了我的web应用程序的文件夹结构。(即WEB-INF资源) localhost中没有可用的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)
    
        }
    

    就好像jetty start并没有启动春季上下文。我错过了什么?如果我运行spring-boot内置的uber jar,应用程序工作正常。我可以访问应用程序的所有restful资源。

    1 回复  |  直到 12 年前
        1
  •  0
  •   suman j    12 年前

    想通了。我没有使用符合Servlet 3.0的jetty版本。 sudo apt-get install jetty 拉出2.5兼容版本。一旦我更新到Jetty 9.x,它工作得很好。