我正在寻找除Sun SAAJ之外的替代SOAP(javax.xml.soap
)实现。这是因为我想在IBM JDK 5驱动的Tomcat AS上部署JAX-WS WebService,但众所周知Sun SAAJ实现依赖于重新分配的Xerces类(请参见Ref Impl does not work with IBM JDK和SAAJ 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消息。 - 实现应与Java5字节码兼容。 - 如果实现在Maven Central中可用,则此为加分项。
参考资料:
<dependency><groupId>com.sun.xml.messaging.saaj</groupId><artifactId>saaj-impl</artifactId><version>1.3.2</version></dependency>
,这表明Spring-WS可能使用了Sun SAAJ,并且他们以某种方式解决了同样的问题。 - dma_k