In my previous project, I implemented the Webservice client with Spring 2.5.6, maven2, xmlbeans.
- xmlbeans is responsible for un / marshal
- maven2 is for the mgmt / building project, etc.
I am inserting some codes here and hope they will be useful.
xmlbeans maven plugin conf: (in pom.xml)
<build> <finalName>projectname</finalName> <resources> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> </resource> <resource> <directory>target/generated-classes/xmlbeans </directory> </resource> </resources> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>xmlbeans-maven-plugin</artifactId> <version>2.3.2</version> <executions> <execution> <goals> <goal>xmlbeans</goal> </goals> </execution> </executions> <inherited>true</inherited> <configuration> <schemaDirectory>src/main/resources/</schemaDirectory> </configuration> </plugin> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>build-helper-maven-plugin </artifactId> <version>1.1</version> <executions> <execution> <id>add-source</id> <phase>generate-sources</phase> <goals> <goal>add-source</goal> </goals> <configuration> <sources> <source> target/generated-sources/xmlbeans</source> </sources> </configuration> </execution> </executions> </plugin> </plugins> </build>
So, from the above conf you need to put the schema file (both stand-alone and in your WSDL file, you need to extract them and save as a schema file) in the src / main / resources section. when you create a project with maven, pojos are going to generate xmlbeans. The generated source code will be the target / source-generated / XMLBeans.
then we come to Spring conf. I just posted the WS context here:
<bean id="messageFactory" class="org.springframework.ws.soap.axiom.AxiomSoapMessageFactory"> <property name="payloadCaching" value="true"/> </bean> <bean id="abstractClient" abstract="true"> <constructor-arg ref="messageFactory"/> </bean> <bean id="marshaller" class="org.springframework.oxm.xmlbeans.XmlBeansMarshaller"/> <bean id="myWebServiceClient" parent="abstractClient" class="class.path.MyWsClient"> <property name="defaultUri" value="http://your.webservice.url"/> <property name="marshaller" ref="marshaller"/> <property name="unmarshaller" ref="marshaller"/> </bean>
finally look at the ws-client java class class
public class MyWsClient extends WebServiceGatewaySupport {
}
I hope the code examples are helpful.
Kent
source share