当前位置: 首页 > 知识库问答 >
问题:

如何将spring boot应用程序war部署到WebPere?

锺离俊雄
2023-03-14

我有带pom的spring boot应用程序。xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>myApp</groupId>
    <artifactId>myApp</artifactId>
    <version>1.0</version>
    <packaging>war</packaging>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.4.RELEASE</version>
    </parent>

    <properties>
        <java.version>1.8</java.version>
        <spring.boot.version>2.0.4.RELEASE</spring.boot.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot</artifactId>
        </dependency>
        <!--Spring-boot dependencies-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-tomcat</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <!--deploy on tomcat-->
        <!-- <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-tomcat</artifactId>
             <scope>provided</scope>
         </dependency>-->
        <!-- swagger to provide list available rests-->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.7.0</version>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.7.0</version>
        </dependency>
        <!--database connector-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <!--json to xml provider-->
        <dependency>
            <groupId>com.fasterxml.jackson.dataformat</groupId>
            <artifactId>jackson-dataformat-xml</artifactId>
        </dependency>
    </dependencies>

    <build>
        <finalName>myApp</finalName>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <filtering>true</filtering>
            </resource>
        </resources>
        <plugins>
            <!--<plugin>-->
                <!--<groupId>org.springframework.boot</groupId>-->
                <!--<artifactId>spring-boot-maven-plugin</artifactId>-->
                <!--<executions>-->
                    <!--<execution>-->
                        <!--<goals>-->
                            <!--<goal>repackage</goal>-->
                        <!--</goals>-->
                    <!--</execution>-->
                <!--</executions>-->
            <!--</plugin>-->
            <!--provide to split it and ut test-->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.19.1</version>
                <configuration>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

所以,我需要构建war并将其部署到websphere上。但部署后,会出现错误消息:

脚本计数=1048576 ************* 结束显示当前环境 ************* [9/20/18 18:35:17:893 MSK] 00000089 ecs Wcom.ibm.ws.ecs.internal.scan.context.impl.ScannerContextImpl scanJAR无法为资源打开输入流META-INF/版本/9/org/apache/log/log4j/util/ProcessIdUtil.class在存档WEB-INF/lib/log4j-api-2.10.0.jarjava.lang.IllegalArgumentException在org.objectweb.asm.ClassReader.(未知来源)在org.objectweb.asm.ClassReader.(未知来源)在org.objectweb.asm.ClassReader.(未知来源)allback.java:88ClassScom.ibm.ws.ssl.channel.impl.InputStream(ClassSallback.complete)在ontext.java:1833ClassScom.ibm.ws.tcp.channel.impl.InputStream(ClassSistener.future)在com.ibm.ws.ecs.internal.scan.impl.ClassScanner.scanInputStream(ClassScanner.java:120)在com.ibm.ws.http.channel.inbound.impl.HttpIn边界Link.handle歧视(HttpIn边界Link.java:463)在com.ibm.ws.http.channel.inbound.impl.HttpIn边界Link.handleNewRequest(HttpIn边界Link.java:530)在com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCcom.ibm.ws.ecs.internal.scan.impl.)在com.ibm.ws.http.channel.inbound.impl.HttpICLReadCorg.objectweb.asm.(HttpICLReadCcom.ibm.ws.ecs.internal.scan.impl.)在canner.scanSSLReadServiceContext$SSLReadCompletedCcanner.java:147(SSLReadServiceCcom.ibm.ws.ecs.internal.scan.impl.)在canner.scanAioReadCompletionLcanner.java:124完成(AioReadCompletionListner. java: 175)在com. ibm. io. async AbstractAsyncFuture. java: 217)在com. ibm. io. async AsyncChannelFuture.

[9/20/18 18:35:17:904 MSK]00000089 ecs W com。国际商用机器公司ws。ecs。内部的扫描上下文impl。ScannerContextImpl scanJAR无法打开资源META-INF/versions/9/org/apache/logging/log4j/util/StackLocator的输入流。在存档WEB-INF/lib/log4j-api-2.10.0中初始化。jar java。org上的lang.IllegalArgumentException。objectweb。asm。学生。(来源不详)在org。objectweb。asm。学生。(来源不详)在org。objectweb。asm。学生。(来源不详)com。国际商用机器公司ws。ecs。内部的扫描impl。ClassScanner。com上的scanInputStream(ClassScanner.java:147)。国际商用机器公司ws。ecs。内部的扫描impl。ClassScanner。com上的scanInputStream(ClassScanner.java:124)。国际商用机器公司ws。ecs。内部的扫描impl。ClassScanner。com上的scanInputStream(ClassScanner.java:120)。国际商用机器公司ws。网络容器。网络应用。WebAppImpl。在com上扫描HandleTypesClass(WebAppImpl.java:765)。国际商用机器公司ws。网络容器。网络应用。WebAppImpl。在com上初始化ServletContainerInitializers(WebAppImpl.java:606)。国际商用机器公司ws。网络容器。网络应用。WebAppImpl。在com上初始化(WebAppImpl.java:410)。国际商用机器公司ws。运行时。组成部分合成单位。从com开始(CompositionUnitImpl.java:123)。国际商用机器公司ws。运行时。组成部分CompositionUnitMgrImpl。从com开始(CompositionUnitMgrImpl.java:379)。国际商用机器公司ws。运行时。组成部分CompositionUnitMgrImpl。在com上访问$500(CompositionUnitMgrImpl.java:127)。国际商用机器公司ws。运行时。组成部分CompositionUnitMgrImpl$1。在com上运行(CompositionUnitMgrImpl.java:654)。国际商用机器公司ws。安全啊。ContextManagerImpl。com上的runAs(ContextManagerImpl.java:5554)。国际商用机器公司ws。安全啊。ContextManagerImpl。在com上运行系统(ContextManagerImpl.java:5680)。国际商用机器公司ws。安全果心SecurityContext。在com上运行系统(SecurityContext.java:255)。国际商用机器公司ws。运行时。组成部分CompositionUnitMgrImpl。startCompositionUnit(CompositionUnitMgrImpl.java:668)位于com。国际商用机器公司ws。运行时。组成部分CompositionUnitMgrImpl。startCompositionUnit(CompositionUnitMgrImpl.java:612)位于com。国际商用机器公司ws。运行时。组成部分ApplicationMgrImpl。sun上的startApplication(ApplicationGrimpl.java:1303)。反映NativeMethodAccessorImpl。在sun上调用0(本机方法)。反映NativeMethodAccessorImpl。在sun上调用(NativeMethodAccessorImpl.java:90)。反映DelegatingMethodAccessorImpl。在java上调用(DelegatingMethodAccessorImpl.java:55)。朗,反思一下。方法在org上调用(Method.java:508)。阿帕奇。struts。行动请求处理器。组织上的流程(未知来源)。阿帕奇。struts。行动ActionServlet。组织上的流程(未知来源)。阿帕奇。struts。行动ActionServlet。javax上的doPost(未知源代码)。servlet。http。HttpServlet。javax上的服务(HttpServlet.java:595)。servlet。http。HttpServlet。com上的服务(HttpServlet.java:668)。国际商用机器公司ws。http。频道入境。impl。HttpICLReadCallback。在com上完成(HttpICLReadCallback.java:88)。国际商用机器公司ws。ssl。频道impl。SSLReadServiceContext$SSLReadCompletedCallback。在com上完成(SSLReadServiceContext.java:1833)。国际商用机器公司ws。tcp。频道impl。AioReadCompletionListener。FutureCompletionListener(AioReadCompletionListener.java:175)网站。国际商用机器公司伊奥。异步。未来。com上的invokeCallback(AbstractAsyncFuture.java:217)。国际商用机器公司伊奥。异步。未来。fireCompletionActions(AsyncChannelFuture.java:161)位于com。国际商用机器公司伊奥。异步。未来。已在com上完成(AsyncFuture.java:138)。国际商用机器公司伊奥。异步。结果是德勒。在com上完成(ResultHandler.java:204)。国际商用机器公司伊奥。异步。结果是德勒。在com上运行EventProcessingLoop(ResultHandler.java:775)。国际商用机器公司伊奥。异步。ResultHandler 2美元。在com上运行(ResultHandler.java:905)。国际商用机器公司ws。util。线程池$Worker。run(ThreadPool.java:1892)

[9/20/18 18:35:17:911 MSK] 00000089 ecs Wmpl.scanScannerContextImpl scanJAR无法打开资源mpl.java:315的输入流存档WEB-INF/lib/com.ibm.ws.security.core.ontext.runIllegalArgumentException在ontext.java:255ClassReader.(未知来源)在com.ibm.ws.runtime.component.ClassReader.(未知来源)在mpl.startClassReader.(未知来源)在mpl.java:668ClassScom.ibm.ws.runtime.component.InputStream(ClassSmpl.start)在com.ibm.ws.ecs.internal.scan.impl.ClassScanner.scanInputStream(ClassScanner.java:124)在com.ibm.ws.ecs.internal.scan.impl.ClassScanner.scanInputStream(ClassScanner.java:120)在com.ibm.ws.ecs.internal.scan.context.impl.ScannerContextImpl.scanJAR(ScannerContextImpl.java:275)在com.ibm.ws.ecs.internal.scan.context.impl.ScannerContextIcom.ibm.ws.ecs.internal.scan.context.impl.JAR(ScannerContextImodule-info.class)在log4j-api-2.10.0.jarSecurityCjava.lang.AsSystem(SecurityCorg.objectweb.asm.)在org.objectweb.asm.CompostionUnitMgrIorg.objectweb.asm.CompostionUnit(CompostionUnitMgrIcom.ibm.ws.ecs.internal.scan.impl.)在canner.scanCompostionUnitMgrIcanner.java:147CompostionUnit(CompostionUnitMgrI生成的方法访问89.调用(未知来源)在sun.反射。在java. lang.反射中委托方法访问IMP.调用(委托方法访问IMP. java: 55)。在sun.反射. misc中调用方法(Method. java: 508)。在javax. Management. Modelmbean中调用(确知. java: 287)。在java. security. java: 1263)。在java. security。AccessController. doPrivileged(AccessController. java: 664)在java. security。保护域$JavaSecurityAccessInp. doIntersectionPrivilge(保护域. java: 91)在javax. Management. Modelmbean。在javax.HttpServlet. service(HttpServlet. java: 668)在com. ibm. ws. web容器. servlet。ServletWrapper. service(ServletWrapper. java: 1233)在com. ibm. ws. web容器. servlet。ServletWrapper. handleRequest(ServletWrapper. java: 782)在com. ibm. ws. web容器. servlet。ServletWrapper. handleRequest(ServletWrapper. java: 481)在com. ibm. ws. web容器. servlet。ServletWrapperInpli. handleRequest(ServletWrapperInpli. java: 178)在com. ibm. ws. http. Channel. inlimited. imp。HttpInancleLink. handle歧视(HttpInancleLink. java: 463)在com. ibm. ws. http. channel. inancl。HttpICLReadCallback.完成(HttpICLRe

[9/20/18 18:35:36:921 MSK]00000089 FFDCW com。国际商用机器公司ws。ffdc。impl。FfdcProvider logIncident FFDC1003I:在/opt/IBM/WebSphere/AppServer/profiles/AppSrv01/logs/FFDC/server1_49377909_18.09.20_18.35.36.9168814475377962815599上发出的FFDC事件。txt com。国际商用机器公司ws。网络容器。网络应用。网络组131[9/20/18 18:35:36:924 MSK]00000089 webapp E com。国际商用机器公司ws。网络容器。网络应用。WebGroupImpl WebGroup SRVE0015E:未能初始化Web应用程序Tomcat主机管理器springboot。应用程序[9/20/18 18:35:36:929 MSK]00000089已部署应用程序W WSVR0206E:模块,SBRISKDATASVC。战争,应用程序,我的应用程序。ear/deployments/myApp,未能启动[9/20/18 18:35:36:932 MSK]00000089应用程序MG W WSVR0101W:启动时出错,myApp[9/20/18 18:35:36:932 MSK]00000089应用程序MG A WSVR0217I:停止应用程序:myApp[9/20/18 18:35:36:942 MSK]00000089应用程序MG A WSVR0220I:应用程序停止:myApp[9/20/18 18:35:36:945 MSK]00000089合成UN E
WSVR0194E:合成单元WebSphere:cuname=myApp in BLA WebSphere:blaname=myApp未能启动。[9/20/18 18:35:36:955 MSK]00000089 FFDCW com。国际商用机器公司ws。ffdc。impl。FfdcProvider logIncident FFDC1003I:在/opt/IBM/WebSphere/AppServer/profiles/AppSrv01/logs/FFDC/server1_49377909_18.09.20_18.35.36.9468746152542961403991上发出的FFDC事件。txt com。国际商用机器公司ws。运行时。组成部分CompositionUnitMgrImpl 679[2018年9月20日18:35:36:970 MSK]00000089 FfdcProvider W com。国际商用机器公司ws。ffdc。impl。FfdcProvider logIncident FFDC1003I:FFDC事件在/opt/IBM/WebSphere/AppServer/profiles/AppSrv01/logs/FFDC/server1_49377909_18.09.20_18.35.36.9567976105862242199088上发出。txt com。国际商用机器公司ws。经营AdminServiceImpl。invoke 679[9/20/18 18:35:36:971 MSK]000000 89 MBeanHelper E无法调用对象上的操作:WebSphere:name=ApplicationManager,process=server1,platform=proxy,node=wasNode01,version=8.5.5.13,type=ApplicationManager,mbeanIdentifier=ApplicationManager,cell=wasNode01Cell,spec=1.0,因为mbean异常:com。国际商用机器公司ws。例外RuntimeWarning:com。国际商用机器公司ws。网络容器。例外WebAppNotLoadedException:未能加载webapp:未能加载webapp:java。lang.LinkageError:重写方法时加载约束冲突

如何解决这个问题?

共有2个答案

印嘉泽
2023-03-14

这是由于扫描META-INF文件夹下的包,webshpere尝试将META-INF/*作为包匹配,以搜索扫描JARs下的正常包。您需要在C:\Program Files\IBM\WebSphere\AppServer\properties\amm下为这些包配置忽略扫描包。滤器属性

例如,如下所示:

胡浩瀚
2023-03-14

基本上,在各种编辑过程中,您删除了第一篇帖子中的原始错误消息:

SRVE0164E: Web Application MyApp_war#Tomcat Host Manager springboot.Application uses the context root /*, which is already in use by Web Application DefaultApplication#Default Web Application. Web Application Tomcat Host Manager springboot.Application will not be loaded.

这解释了所有:

您不能将两个应用程序映射到/上下文,因此请更改已安装的DefaultApplication或您的应用程序的上下文。

 类似资料:
  • 我已经制作了我的网络应用程序,我想把它放在互联网上。我听说用户可以使用 .war 文件在 cPanel 中部署 Web 应用程序。我一直在搜索这个,任何类型的教程或任何有关如何做到这一点的信息。但是没有一个真正告诉你如何做到这一点,你只会找到关于如何在Tomcat或Glassfish上部署的教程。我在这里错过了什么点吗?一旦我的 Web 应用程序打包为 .war 文件,我如何将它放到互联网上?如果

  • 本文向大家介绍怎么将 SpringBoot web 应用程序部署为 JAR 或 WAR 文件?相关面试题,主要包含被问及怎么将 SpringBoot web 应用程序部署为 JAR 或 WAR 文件?时的应答技巧和注意事项,需要的朋友参考一下 通常,我们将 web 应用程序打包成 WAR 文件,然后将它部署到另外的服务器上。这样做使得我们能够在相同的服务器上处理多个项目。当 CPU 和内存有限的情

  • 完成干净的构建后,我将war文件复制到Tomcat的文件夹中。但是部署会发生两次,并且在上下文已经存在的情况下以异常结束。我错过了什么? 非常感谢您的帮助。

  • 我无权访问weblogic.deployer和web管理GUI(如果Linux服务器版本中存在) 我可以在weblogic(windows版本)中部署WAR文件。应用程序文件应该可以。