通过Maven的CXF 2.7.x Woodstox兼容性


问题内容

在CXF的文档中,据说2.7.x版本要求在4.2.0版本以下的Woodstox jars在类路径中可用。

有人可以建议Woodstox的Maven依赖项与CXF一起工作吗?

主要问题是当我尝试使用cxf的客户端时,引发了异常“无法创建安全的XMLInputFactory”。根据不同的论坛(例如),可以使用“
org.apache.cxf.stax.allowInsecureParser”系统属性来解决此问题,但这似乎不是一个好方法。所以Maven依赖是必经之路…

提前致谢。


问题答案:

好吧,终于我有了解决方案。首先,我要感谢StaxMan的帮助。

我的环境是:Weblogic 11g,CXF 2.7.5

问题在于WLS已经包含StAX API和xml解析器的实现,这就是为什么应用程序在使用CXF时看不到Woodstox解析器的原因。

这是pom.xml:

        <!-- CXF -->
        <dependency>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-api</artifactId>
        </dependency>

        <dependency>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-rt-frontend-jaxws</artifactId>
        </dependency>

        <dependency>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-rt-transports-http</artifactId>
        </dependency>

和主要部分-位于resource / META-INF /中的weblogic-application.xml:

    <prefer-application-packages>
        <package-name>com.ctc.wstx.*</package-name>
        <package-name>org.apache.*</package-name>
    </prefer-application-packages>

请注意,如果这样做,可能会发生“ NoClassDefinition”错误。如果是这样,请添加包含缺少类的Maven依赖项。

希望这对某人有帮助。