在Tomcat中部署Spring-Boot WAR时崩溃

sancho21

我设法通过java -jar命令运行了一个spring-boot Web应用程序但是,当将包装字段更改为war(在pom.xml中)并将其构建为war时,它无法在tomcat 7中运行。

我将pom.xml的父级设置为:

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>0.5.0.M7</version>
</parent>

并且:

public class ApplicationWebXml extends SpringBootServletInitializer {

    @Override
    protected SpringApplicationBuilder configure(
            SpringApplicationBuilder application) {
        return application.sources(Application.class);
    }

}

我得到的错误是:

INFO: Deploying web application archive /home/ichsan/coding/java/tools/apache-tomcat-7.0.39/webapps/hello.war
Jan 4, 2014 10:18:50 PM org.apache.catalina.loader.WebappClassLoader validateJarFile
INFO: validateJarFile(/home/ichsan/coding/java/tools/apache-tomcat-7.0.39/webapps/hello/WEB-INF/lib/tomcat-embed-core-7.0.47.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class
Jan 4, 2014 10:18:50 PM org.apache.catalina.startup.ContextConfig getServletContainerInitializer
SEVERE: The ServletContentInitializer [org.apache.tomcat.websocket.server.WsSci] could not be created
java.lang.ClassNotFoundException: org.apache.tomcat.websocket.server.WsSci
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1713)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1558)

我的问题是:

  1. 这里发生了什么以及如何克服这个问题?
  2. 使用spring-boot真的安全吗?因为嵌入式服务器库似乎影响了将其部署到j2ee容器中的可靠性。我知道,它仍然是里程碑版本。
戴夫·赛尔(Dave Syer)

对我来说,这似乎是一个糟糕的WAR文件(根本不应该嵌入嵌入式tomcat罐子WEB-INF/lib)。您需要做的只是将Tomcat嵌入式jar标记为scope=provided构建配置中的标记用于将JAR转换为WARGS指南是标准配置选项的很好参考,并且Spring Boot代码库中有多个示例。

如果您的应用程序未使用tomcat的Web套接字功能,则它仍应与旧版本一起使用(因此,请随时在github中引发问题)。对您来说,最简单的解决方法是仅升级tomcat(7.0.47应该可以)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在JBoss中部署时覆盖Spring Boot应用程序属性

Tomcat上的Spring Boot War部署无法正常工作

Spring Boot-将war文件部署到tomcat时自动生成context.xml

将WAR部署到Tomcat(Spring Boot + Angular)

将Spring Boot部署为Tomcat中的war时无法加载CSS JS和链接

Spring Boot WAR部署无法在Tomcat中启动

在tomcat 7上部署Spring Boot War时遇到问题

在Tomcat 6中部署Spring Boot应用程序(传统部署)

Spring Boot WAR部署

将Spring Boot .war部署到tomcat时,无法启动组件[StandardEngine [Catalina]]

在Wildfly Server中部署Spring Boot WAR时,如何外部化.properties文件?

Spring Boot War部署到Tomcat

尝试将tomcat8的spring boot war部署时,无法解析的循环引用?

部署到外部Tomcat容器时的Spring Boot Actuator端口

Spring Boot War文件部署在Tomcat上

Spring Boot:在Tomcat 7上部署WAR

在Spring Boot的Tomcat和Angular App上部署WAR文件

Tomcat中部署的Java Spring Boot的Kerberos身份验证

在Tomcat中部署.war

在tomcat中部署WAR

无法在Tomcat 8中部署Spring Boot App(1.2.5)War

在一个tomcat容器中部署两次Spring Boot Wars时如何指定application.propertes中的键

在Spring Boot中部署Quartz时发生NullPointerException

如何在jboss(version 5)服务器中部署spring boot war?

带有 Hikari CP 的 Spring Boot --- 在单独的 Tomcat 服务器中部署时不起作用

在 tomcat 上部署 Togglz Spring Boot 时出错

将 spring boot war 部署到 tomcat

覆盖部署为 Tomcat 中的 WAR 的 spring-boot 应用程序的属性时的奇怪行为

Spring Boot 应用程序独立运行,但在 Tomcat 中部署时找不到类