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

标签 java web-services jakarta-ee soap cxf

我正在尝试在 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.\"}}"

然后我再次尝试提供 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>

然后我尝试再次部署 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]\"}}"

我该如何解决这个问题?

最佳答案

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

关于java - 在 ws 端点部署中检测到 Apache CXF 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43777562/

相关文章:

java - 如何使用 Selenium WebDriver 在新选项卡中打开网页

jakarta-ee - servlet : "FileNotFoundException: log4j.properties"中log4j的配置

Java一次替换字符串中的多个不同子字符串(或以最有效的方式)

java - 如何从 Java 列表中删除所有重复的字符串?

java - Spring 没有捕获我休息请愿书的所有对象

web-services - 如何使用 JMeter 测试具有身份验证的 Web 服务

java - 部署网络服务

web-services - 发布/订阅/请求以交换大量、复杂和 secret 的数据?

java - 如何放置子BeanParam

java - 如何配置 EAR 以访问现有的 Websphere 共享库?