Orginal Client WSDL( other details omitted)
<wsdl:operation name="Sample1">
<soap:operation soapAction="http:xx/sample1" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:operation soapAction="http:xx/sample1" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
<wsdl:fault name="CommunicationExceptionFault">
<soap:fault name="CommunicationExceptionFault" use="literal"/>
</wsdl:fault>
<wsdl:fault name="InvalidOperationExceptionFault">
<soap:fault name="InvalidOperationExceptionFault" use="literal"/>
</wsdl:fault>
</wsdl:operation>
</wsdl:binding>
<wsdl:operation name="sample2">
<soap:operation soapAction="http:xx/sample2" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
<wsdl:fault name="CommunicationExceptionFault">
<soap:fault name="CommunicationExceptionFault" use="literal"/>
</wsdl:fault>
<wsdl:fault name="InvalidOperationExceptionFault">
<soap:fault name="InvalidOperationExceptionFault" use="literal"/>
</wsdl:fault> </wsdl:operation>
</wsdl:binding>
LocalCopy (We are only interested in operation sample1)<wsdl:fault name="CommunicationExceptionFault">
<soap:fault name="CommunicationExceptionFault" use="literal"/>
</wsdl:fault>
<wsdl:fault name="InvalidOperationExceptionFault">
<soap:fault name="InvalidOperationExceptionFault" use="literal"/>
</wsdl:fault>
</wsdl:operation>
</wsdl:binding>
<wsdl:operation name="sample2">
<soap:operation soapAction="http:xx/sample2" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
<wsdl:fault name="CommunicationExceptionFault">
<soap:fault name="CommunicationExceptionFault" use="literal"/>
</wsdl:fault>
<wsdl:fault name="InvalidOperationExceptionFault">
<soap:fault name="InvalidOperationExceptionFault" use="literal"/>
</wsdl:fault> </wsdl:operation>
</wsdl:binding>
localClient.wsdl
<wsdl:operation name="Sample1"><br />
<soap:operation soapAction="http:xx/sample1" style="document"/><br /><wsdl:input><br />
<soap:body use="literal"/><
</wsdl:input><br />
<wsdl:output><br />
<soap:body use="literal"/><
</wsdl:output><
<wsdl:fault name="CommunicationExceptionFault"
<soap:fault name="CommunicationExceptionFault" use="literal"/>
</wsdl:fault>
<wsdl:fault name="InvalidOperationExceptionFault">
<soap:fault name="InvalidOperationExceptionFault" use="literal"/>
</wsdl:fault>
</wsdl:operation>
</wsdl:binding>
And the web service client will be defined as :
<bean id="sampleClient" parent="abstractsampleClient">
<property name="serviceInterface"
value="com.testsample.SampleController" />
<property name="wsdlDocumentUrl"
value="http://localhost/mock-client-wsdl/localClient.wsdl" />
</bean>
Note: localClient.wsdl file will be created in a directory mock-client-wsdl.war and deployed in the server so that it will act as external .wsdl file
Consider this:
1) Keeping a local copy of the client wsdl is not always a good idea.
2)Because of this complexity the application maintainability will be tough with out proper documentation
However this is the simplest work around to make it work....
No comments:
Post a Comment