当前位置: 首页 > 面试题库 >

在Wildfly部署中使用带有提供的Maven工件的CXF库

燕嘉熙
2023-03-14
问题内容

我试图将包含JAX-WS接口的项目部署到wildfly 8.2服务器。该项目是一场战争。在该项目中,我想使用拦截器。

import org.apache.cxf.binding.soap.interceptor.AbstractSoapInterceptor;
public class ReplyToHeaderInInterceptor extends AbstractSoapInterceptor { /*code*/}

我将Maven与“ provided”标签一起使用,以免收到以下错误:

Apache CXF library (cxf-rt-bindings-soap-3.1.1.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.

看起来像这样:

    <dependency>
        <groupId>org.apache.cxf</groupId>
        <artifactId>cxf-rt-frontend-jaxws</artifactId>
        <version>3.1.1</version>
        <scope>provided</scope>
    </dependency>

但是,如果这样做,则无法在运行时找到该库:

Caused by: java.lang.NoClassDefFoundError: org/apache/cxf/binding/soap/interceptor/AbstractSoapInterceptor

我已经尝试使用maven通过MANIFEST.MF文件添加依赖项:

            <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <version>2.5</version>
            <configuration>
                <packagingExcludes>WEB-INF/web.xml</packagingExcludes>
                <warName>backend</warName>
               <archive>
                  <manifestEntries>
                     <Dependencies>org.apache.cxf</Dependencies>
                  </manifestEntries>
               </archive>
            </configuration>
        </plugin>

我不知道该怎么办,有什么建议吗?


问题答案:

事实证明,将jboss-deployment-structure.xml文件添加到WEB-INF具有以下内容的文件夹可以达到目的:

<?xml version="1.0"?>
<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <deployment>
        <exclusions>
        </exclusions>
        <dependencies>
            <module name="org.apache.cxf" />
            <module name="org.apache.cxf.impl" />
        </dependencies>
    </deployment>
</jboss-deployment-structure>

尽管我以前org.apache.cxf只尝试过,但我不得不添加org.apache.cxf.impl



 类似资料:
  • 我正试图通过Maven将应用程序部署到本地JBoss EAP 7.0服务器。通过管理控制台和通过“doDeploy”方法手动部署,部署工作正常。 我不知道我需要做什么才能让它工作。 我试图按照网站上的说明,但没有用:https://access.redhat.com/documentation/en-us/red_hat_jboss_enterprise_application_platform/

  • 也许不是Maven的问题。也许是m2e/wtp问题? 为了给出一个背景,我在Eclipse中建立了一个ICEFaces项目,并在Tomcat7.0.30中部署了它。在将servlet-api.jar部署到Tomcat时,似乎忽略了所提供范围中的Maven POM配置。我错过什么了吗?我如何让Maven做得正确? 在该项目中,javax.servlet-api.jar作为IceFaces的可传递依赖

  • Maven部署错误: 错误:JBREM000200:远程连接失败:javax。安全sasl。SaslException:身份验证失败:服务器未提供任何身份验证机制 ---wildfly maven插件:1.0.1。最终:部署(默认cli)@API--- 2014年4月9日10:31:42 PM组织。xnio。Xnio公司 信息:XNIO版本3.2.0。最终版 2014年4月9日10:31:42 P

  • 嗨,evryone,我是开发JavaEE的新手,我想创建一个应用程序web,我已经创建了BD和ejb部分,其中包含包持久性、接口和服务,在war部分,我创建了包bean和webapp。。。。。我做了一个 请我需要帮助它已经4天寻找解决方案,我没有找到任何东西来帮助感谢所有

  • 有没有一种方法可以在一个xml代码块中翻译这种人类语言,Maven会很乐意理解它? 嘿,Maven,看你是一个很棒的依赖管理系统。我正在从事一个JavaEE项目,该项目计划部署在Wildfly 10.1上。0.请放置在Wildfly父BOM表中指定的所有库http://repo1.maven.org/maven2/org/wildfly/wildfly-parent/10.1.0.Final/wi

  • 我有一个简单的POM(见下文)。当我执行mvn部署时,我得到这个错误: [错误]无法执行目标组织。阿帕奇。专家plugins:maven deploy plugin:2.7:project piccolotest上的部署(默认部署):部署失败:未在POM inside distributionManagement元素或-DaltDeploymentRepository=id::layout::ur