Jboss部署SpringBoot项目中遇到的问题-2
说明:Jboss7及之前名称都是Jboss,在8及之后的版本,名称改为wildfly,请知悉
南京某宁银行项目
上篇链接:Jboss部署SpringBoot项目中遇到的问题
JBoss启动WebService时报错
- 问题:
CXF与Jboss-eap冲突报错:JBAS018733: Failed to process ph
-
原因:经过研究和分析,是因为项目中生成webService客户端或其他地方使用了Apache-CXF框架,与Jboss-eap冲突所致。
-
解决方法:找到%JBOSS-HOME%->standalone->configuration->standalone.xml
找到如下代码:
<subsystem xmlns="urn:jboss:domain:webservices:1.1">
<modify-wsdl-address>true</modify-wsdl-address>
<wsdl-host>${jboss.bind.address:127.0.0.1}</wsdl-host>
<endpoint-config name="Standard-Endpoint-Config"/>
<endpoint-config name="Recording-Endpoint-Config">
<pre-handler-chain name="recording-handlers" protocol-bindings="##SOAP11_HTTP ##SOAP11_HTTP_MTOM ##SOAP12_HTTP ##SOAP12_HTTP_MTOM">
<handler name="RecordingHandler" class="org.jboss.ws.common.invocation.RecordingServerHandler"/>
</pre-handler-chain>
</endpoint-config>
</subsystem>
将以上代码注释掉即可ctrl+shift+/,或者删除,如下:
<!-- <subsystem xmlns="urn:jboss:domain:webservices:1.1">
<modify-wsdl-address>true</modify-wsdl-address>
<wsdl-host>${jboss.bind.address:127.0.0.1}</wsdl-host>
<endpoint-config name="Standard-Endpoint-Config"/>
<endpoint-config name="Recording-Endpoint-Config">
<pre-handler-chain name="recording-handlers" protocol-bindings="##SOAP11_HTTP ##SOAP11_HTTP_MTOM ##SOAP12_HTTP ##SOAP12_HTTP_MTOM">
<handler name="RecordingHandler" class="org.jboss.ws.common.invocation.RecordingServerHandler"/>
</pre-handler-chain>
</endpoint-config>
</subsystem> -->
然后重新打包启动服务即可
Jboss使用bcprov报错
- 问题:
java.lang.SecurityException: JCE cannot authenticate the provider BC
Caused by: java.lang.SecurityException: Cannot verify jar:vfs:/content/xxxxxx/WEB-INF/lib/bcprov-jdk15-1.46.jar!/
Suppressed: java.nio.file.NoSuchFileException: /tmp/jar_cachexxxx.tmp
用第一个错误google查找到的答案是添加BouncyCastle到Jboss或JDK,但是这样侵入性太大。
继续查找造成的原因是BouncyCastle无法加入到Provider里面,从第2,3行错误看可以初步确定是读取jar文件出错。可以参加解决方案1及jboss的说明
添加META-INF/jboss-deployment-structure.xml文件即可
说明:此处在WEB-INF下创建jboss-deployment-structure.xml也可以
<jboss-deployment-structure>
<deployment>
<resources>
<!-- 切记此处使用自己本地的bcprov版本,一定要进行修改 -->
<resource-root path="WEB-INF/lib/bcprov-jdk15-1.46.jar"
use-physical-code-source="true" />
</resources>
</deployment>
</jboss-deployment-structure>
另外是JCE要求添加provider需要经过签名,如果是自己编译的jar包,需要自行使用jarsigner签名。
ch.qos.logback在Jboss上报错
- spring boot 1.5.2部署到JBoss 8.1版本下报错信息如下:
10:30:16,689 WARN [org.jboss.as.ee] (MSC service thread 1-5) JBAS011006: Not installing optional component org.springframework.http.server.ServletServerHttpAsyncRequestControl due to an exception (enable DEBUG log level to see the cause)
10:30:16,691 WARN [org.jboss.as.ee] (MSC service thread 1-5) JBAS011006: Not installing optional component org.springframework.web.context.request.async.StandardServletAsyncWebRequest due to an exception (enable DEBUG log level to see the cause)
10:30:16,737 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-5) MSC000001: Failed to start service jboss.deployment.unit."partition-1.0.0.war".INSTALL: org.jboss.msc.service.StartException in service jboss.deployment.unit."partition-1.0.0.war".INSTALL: JBAS018733: Failed to process phase INSTALL of deployment "partition-1.0.0.war"
at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:166) [wildfly-server-8.1.0.Final.jar:8.1.0.Final]
at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1948) [jboss-msc-1.2.2.Final.jar:1.2.2.Final]
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1881) [jboss-msc-1.2.2.Final.jar:1.2.2.Final]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [rt.jar:1.8.0_131]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [rt.jar:1.8.0_131]
at java.lang.Thread.run(Thread.java:748) [rt.jar:1.8.0_131]
Caused by: org.jboss.as.server.deployment.DeploymentUnitProcessingException: JBAS017327: Deployment error processing SCI for jar: tomcat-embed-websocket-8.5.15.jar
at org.wildfly.extension.undertow.deployment.ServletContainerInitializerDeploymentProcessor.loadSci(ServletContainerInitializerDeploymentProcessor.java:207)
at org.wildfly.extension.undertow.deployment.ServletContainerInitializerDeploymentProcessor.deploy(ServletContainerInitializerDeploymentProcessor.java:128)
at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:159) [wildfly-server-8.1.0.Final.jar:8.1.0.Final]
... 5 more
Caused by: org.jboss.as.server.deployment.DeploymentUnitProcessingException: JBAS017327: Deployment error processing SCI for jar: tomcat-embed-websocket-8.5.15.jar
at org.wildfly.extension.undertow.deployment.ServletContainerInitializerDeploymentProcessor.loadSci(ServletContainerInitializerDeploymentProcessor.java:199)
... 7 more
Caused by: java.lang.ClassNotFoundException: # Licensed to the Apache Software Foundation (ASF) under one or more from [Module "deployment.partition-1.0.0.war:main" from Service Module Loader]
at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:213) [jboss-modules.jar:1.3.3.Final]
at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:459) [jboss-modules.jar:1.3.3.Final]
at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:408) [jboss-modules.jar:1.3.3.Final]
at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:389) [jboss-modules.jar:1.3.3.Final]
at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:134) [jboss-modules.jar:1.3.3.Final]
at org.wildfly.extension.undertow.deployment.ServletContainerInitializerDeploymentProcessor.loadSci(ServletContainerInitializerDeploymentProcessor.java:191)
... 7 more
10:30:16,743 ERROR [org.jboss.as.controller.management-operation] (management-handler-thread - 2) JBAS014613: Operation ("deploy") failed - address: ([("deployment" => "partition-1.0.0")]) - failure description: {"JBAS014671: Failed services" => {"jboss.deployment.unit.\"partition-1.0.0.war\".INSTALL" => "org.jboss.msc.service.StartException in service jboss.deployment.unit.\"partition-1.0.0.war\".INSTALL: JBAS018733: Failed to process phase INSTALL of deployment \"partition-1.0.0.war\"
Caused by: org.jboss.as.server.deployment.DeploymentUnitProcessingException: JBAS017327: Deployment error processing SCI for jar: tomcat-embed-websocket-8.5.15.jar
Caused by: org.jboss.as.server.deployment.DeploymentUnitProcessingException: JBAS017327: Deployment error processing SCI for jar: tomcat-embed-websocket-8.5.15.jar
Caused by: java.lang.ClassNotFoundException: # Licensed to the Apache Software Foundation (ASF) under one or more from [Module \"deployment.partition-1.0.0.war:main\" from Service Module Loader]"}}
10:30:16,745 ERROR [org.jboss.as.server] (management-handler-thread - 2) JBAS015870: Deploy of deployment "partition-1.0.0.war" was rolled back with the following failure message:
{"JBAS014671: Failed services" => {"jboss.deployment.unit.\"partition-1.0.0.war\".INSTALL" => "org.jboss.msc.service.StartException in service jboss.deployment.unit.\"partition-1.0.0.war\".INSTALL: JBAS018733: Failed to process phase INSTALL of deployment \"partition-1.0.0.war\"
Caused by: org.jboss.as.server.deployment.DeploymentUnitProcessingException: JBAS017327: Deployment error processing SCI for jar: tomcat-embed-websocket-8.5.15.jar
Caused by: org.jboss.as.server.deployment.DeploymentUnitProcessingException: JBAS017327: Deployment error processing SCI for jar: tomcat-embed-websocket-8.5.15.jar
Caused by: java.lang.ClassNotFoundException: # Licensed to the Apache Software Foundation (ASF) under one or more from [Module \"deployment.partition-1.0.0.war:main\" from Service Module Loader]"}}
10:30:16,771 INFO [org.hibernate.validator.internal.util.Version] (MSC service thread 1-3) HV000001: Hibernate Validator 5.1.0.Final
10:30:16,861 INFO [org.jboss.as.server.deployment] (MSC service thread 1-3) JBAS015877: Stopped deployment partition-1.0.0 (runtime-name: partition-1.0.0.war) in 116ms
10:30:16,862 INFO [org.jboss.as.controller] (management-handler-thread - 2) JBAS014774: Service status report
JBAS014777: Services which failed to start: service jboss.deployment.unit."partition-1.0.0.war".INSTALL
[2017-09-20 10:30:16,907] Artifact partition:war exploded: Error during artifact deployment. See server log for details.
[2017-09-20 10:30:16,908] Artifact partition:war exploded: java.lang.Exception: {"JBAS014671: Failed services" => {"jboss.deployment.unit.\"partition-1.0.0.war\".INSTALL" => "org.jboss.msc.service.StartException in service jboss.deployment.unit.\"partition-1.0.0.war\".INSTALL: JBAS018733: Failed to process phase INSTALL of deployment \"partition-1.0.0.war\"
Caused by: org.jboss.as.server.deployment.DeploymentUnitProcessingException: JBAS017327: Deployment error processing SCI for jar: tomcat-embed-websocket-8.5.15.jar
Caused by: org.jboss.as.server.deployment.DeploymentUnitProcessingException: JBAS017327: Deployment error processing SCI for jar: tomcat-embed-websocket-8.5.15.jar
Caused by: java.lang.ClassNotFoundException: # Licensed to the Apache Software Foundation (ASF) under one or more from [Module \"deployment.partition-1.0.0.war:main\" from Service Module Loader]"}}
-
原因:产生问题的原因是logback的jar冲突
-
解决办法:有2种(可两种在一起使用):
-
1、不使用spring-boot-starter-logging,由于该依赖会间接依赖很多log相关的jar,其中包含logback,版本为1.1.11,这个版本是跟JBoss8.1产生冲突的根本原因。
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.1.9</version>
</dependency>
注意:此地方仅仅修改logback-classic的版本为1.1.9,不要修改logback-core的版本,logback版本为1.1.11。logback-classic内部依赖的logback-core的版本就是1.1.11。
- 2、使用spring-boot-starter-logging,但是排除logback
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>log4j-over-slf4j</artifactId>
</exclusion>
<exclusion>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
</exclusion>
</exclusions>
</dependency>
参考网址
- https://blog.csdn.net/runrun117/article/details/101026756?utm_medium=distribute.pc_relevant.none-task-blog-title-2&spm=1001.2101.3001.4242
- https://blog.csdn.net/nullo_cns/article/details/50573643?utm_source=blogxgwz7
https://my.oschina.net/xulong1/blog/1538803?p=1