From 8797abd61181e81c44ccb9328a8917ad6532e86e Mon Sep 17 00:00:00 2001
From: Arjen Poutsma
@@ -33,10 +31,8 @@
The jar can be found at - - /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/.compatibility/14compatibility.jar - - . You can safely remove or rename it, and the tests will run again. + /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/.compatibility/14compatibility.jar. + You can safely remove or rename it, and the tests will run again.
@@ -48,20 +44,13 @@SAAJ is the SOAP with Attachments API for Java. Previously, it has been part of JAXM, but it has - been - released as a seperate API as part of the - Java Web Service - Developer Pack - - , and also as part of J2EE 1.4. SAAJ is generally known as the package - javax.xml.soap - . + been released as a seperate API as part of the + Java Web Service Developer Pack, and + also as part of J2EE 1.4. SAAJ is generally known as the package javax.xml.soap.
Spring-WS uses this standard SAAJ library to create representations of SOAP messages. Alternatively, - it can use - Apache AXIOM - . + it can use Apache AXIOM.
* = See below.
+** = See below.
Additionally, Java SE 6 includes SAAJ 1.3.
@@ -113,11 +107,8 @@ java.lang.NoSuchMethodError: javax.xml.soap.MessageFactory.newInstance(Ljava/lang/String;)Ljavax/xml/soap/MessageFactory;- Like most J2EE libraries, SAAJ consists of two parts: the API that consists of interfaces ( - saaj-api.jar - ) and the implementation ( - saaj-impl.jar - ). + Like most J2EE libraries, SAAJ consists of two parts: the API that consists of interfaces + (saaj-api.jar) and the implementation (saaj-impl.jar). The stack trace is due to the fact that you are using a new version of the API (SAAJ 1.3), while your application server provides an earlier version of the implementation (SAAJ 1.2 or even 1.1). Spring-WS supports all three versions of SAAJ (1.1 through 1.3), but things break when it sees @@ -150,12 +141,28 @@ javax.xml.soap.MessageFactory.newInstance(Ljava/lang/String;)Ljavax/xml/soap/Mes
The solution is to not use BEA's version of SAAJ, but to use another implementation, like the one from Axis 1, or SUN. In you application context, use the following: -
-<bean id="messageFactory" class="org.springframework.ws.soap.saaj.SaajSoapMessageFactory"> - <property name="messageFactory"> - <bean class="com.sun.xml.messaging.saaj.soap.MessageFactoryImpl"/> -</bean> -+
+ The SAAJ implementation provided by JBoss has some issues. The solution is therefore not to use
+ the JBoss implementation, but to use another implementation. For instance, you can use SUN's
+ reference implementation like so:
+