升级到 JBoss EAP 后 CXF 不工作

CXF not working after upgrading to JBoss EAP

我们正在从 JBoss AS 7.3.1 升级到 JBoss EAP 7.0。在升级之前,我们还升级到 Java 1.8。将我们的应用程序部署到新服务器后,我们在启动服务器时收到以下错误。在旧 JBoss 服务器下没有问题。

org.jboss.as.server.deployment.DeploymentUnitProcessingException: WFLYWS0059: Apache CXF library (cxf-bundle-2.7.12.jar) detected in ws endpoint deployment; ...

这是设计使然,如 JIRA WFLY-451 中所述。您不应将自己的 JAX-WS 实现(例如 CXF 包)与您的部署打包在一起。默认情况下,像 JBoss 这样的 JEE 容器实现了 JAX-WS 规范。

请从您的应用程序部署中删除 CXF 和相关的网络服务 jar。如果您出于某种原因希望使用自己的 CXF jar 而不是 JBoss 提供的那些,那么您将需要在 jboss-deployment-structure.xml 文件中禁用 webservice 子系统,以便在您使用时不会激活 webservice 子系统部署您的应用程序。这也意味着您将支持打包的 web 服务实现,因为它不是由开箱即用的容器提供的。