gpt4 book ai didi

java - Sun SAAJ SOAP 实现的替代方案

转载 作者:搜寻专家 更新时间:2023-10-30 21:31:13 27 4
gpt4 key购买 nike

我正在寻找替代的 SOAP (javax.xml.soap) 实现,而不是 Sun SAAJ .这样做的原因是因为我想在 IBM JDK 5 驱动的 Tomcat AS 上部署 JAX-WS WebService,但已知问题是 Sun SAAJ 实现依赖于重新分配的 Xerces 类(参见 Ref Impl does not work with IBM JDKSAAJ test cases no longer work with IBM's SDK)并且唯一的解决办法是使用自定义 Maven 配置文件来拉取 com.sun.xml.parsers:jaxp-ri,例如:

<profiles>
<profile>
<id>pre-jdk5-profile</id>

<activation>
<jdk>(,1.4]</jdk>
</activation>

<dependencies>
<dependency>
<groupId>com.sun.xml.parsers</groupId>
<artifactId>jaxp-ri</artifactId>
<scope>runtime</scope>
</dependency>
</dependencies>
</profile>
</profiles>

我想放弃这个配置文件,并简单地将 SOAP 实现替换为一个适用于任何地方的实现。

我想供应商 SOAP 实现可能带有 Apache Axis/Apache CXF (基于 IBM SOAP4J)或 JBoss AS – 请根据我的喜好提供信息:

  • 实现应该很容易与其他员工分开(最好是一个轻便的 jar )。
  • 实现应支持 SOAP messages with attachments .
  • 实现应与 Java5 字节码兼容。
  • 如果可以在 Maven Central 中实现,这是一个优点。

引用资料:

最佳答案

四处浏览后,我得出了以下可能的问题解决方案。我已经使用 grepcode.com 探索了 javax.xml.soap.MessageFactory 的后代是什么.

除了标准的 com.sun.xml.messaging.saaj.soap.MessageFactoryImpl,我还发现了(假设):

  • org.apache.axis2.saaj.MessageFactoryImpl org.apache.axis2:axis2-saaj:1.6.1 .这个 JAR 通过 META-INF\services\javax.xml.soap.MessageFactoryMETA-INF\services\javax.xml.soap.MetaFactory 正确地声明了工厂,所以没有需要其他调整。此版本(根据 Maven Central)发布于 2011 年,依赖较少,推荐。
  • org.jboss.ws.core.soap.MessageFactoryImpl 来自 JBoss 的 org.jboss.ws.native:jbossws-native-core:3.2.1.Beta2 3.x.看起来很旧,也许 JBoss 不再支持它的开发,因为我能够在 Maven Central ( here) 之外找到这个 jar。依赖较多,1.8M大小,不推荐。
  • org.apache.openejb.server.webservices.saaj.MessageFactoryImpl org.apache.openejb:openejb-webservices:4.0.0-beta-2org.apache.geronimo.webservices.saaj.GeronimoMessageFactoryorg.apache.geronimo.modules:geronimo-webservices:3.0-M1 中.实际上,这些工厂中的任何一个都是 Axis2 或 Sun 实现的包装器/runtime_locator(请参阅 SaajFactoryFinderSAAJFactoryFinder )。不予考虑。

底线:唯一可接受的替代方案是 Axis2 实现。

关于java - Sun SAAJ SOAP 实现的替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9249072/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com