在ws端点部署中检测到Apache CXF库

The*_*Man 5 java soap web-services cxf java-ee

我正在尝试在Wildfly 10.0.0中部署我的WAR应用程序,我遇到了一个常见问题:

"{\"WFLYCTL0080: Failed services\" => 
{\"jboss.deployment.unit.\\\"my-app-ws.war\\\".PARSE\" =>
\"org.jboss.msc.service.StartException in service jboss.deployment.unit.\\\"my-app.war\\\"
.PARSE: WFLYSRV0153: Failed to process phase PARSE of deployment \\\"my-app.war\\\"
  Caused by: org.jboss.as.server.deployment.DeploymentUnitProcessingException: 
  WFLYWS0059: Apache CXF library (cxf-core-3.1.4.jar) detected in ws endpoint deployment; 
  either provide a proper deployment replacing embedded libraries with container 
  module dependencies or disable the webservices subsystem for the current deployment adding 
  a proper jboss-deployment-structure.xml descriptor to it. The former approach is 
  recommended, as the latter approach causes most of the webservices Java EE and any JBossWS 
  specific functionality to be disabled.\"}}"
Run Code Online (Sandbox Code Playgroud)

然后我再次尝试提供CXF依赖范围:

    <dependency>
        <groupId>org.apache.cxf</groupId>
        <artifactId>cxf-rt-transports-http</artifactId>
        <version>3.1.4</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.apache.cxf</groupId>
        <artifactId>cxf-rt-frontend-jaxws</artifactId>
        <version>3.1.4</version>
        <scope>provided</scope>
    </dependency>
Run Code Online (Sandbox Code Playgroud)

然后我尝试再次部署WAR存档,但是我遇到了另一个问题:

"{\"WFLYCTL0080: Failed services\" => {\"jboss.deployment.unit.\\\"my-app-ws.war\\\".POST_MODULE\" => \"org.jboss.msc.service.StartException in service jboss.deployment.unit.\\\"my-app-ws.war\\\".POST_MODULE: WFLYSRV0153: Failed to process phase POST_MODULE of deployment \\\"my-app-ws.war\\\"
  Caused by: org.jboss.as.server.deployment.DeploymentUnitProcessingException: 
  java.lang.ClassNotFoundException: 
  org.apache.cxf.transport.servlet.CXFServlet from [Module \\\"deployment.my-app-ws.war:main\\\" 
  from Service Module Loader]
  Caused by: java.lang.ClassNotFoundException: 
  org.apache.cxf.transport.servlet.CXFServlet from [Module \\\"deployment.my-app-ws.war:main\\\" 
  from Service Module Loader]\"}}"
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?

D00*_*0de 0

您可以使用Java EE标准JAX-WS(JBoss使用Apache CXF来实现JAX-WS),或者禁用JBoss的Web服务子系统:https://developer.jboss.org/thread/221654(如果您确实需要,但要知道是否有其他应用程序依赖于此)