The web service exposed is deployed in tomcat 4.1.29 with axis.
To call the web service I have generated stub class (java class) with Axis,
but unfortunately I have a little problem with WSDL generated by service
mix. It seems WSDL is not generated correctly. As you can see at this link 
http://www.nabble.com/forum/ViewPost.jtp?post=8369564&framed=y&skin=12049
http://www.nabble.com/forum/ViewPost.jtp?post=8369564&framed=y&skin=12049 

I will notice when I solve the problem.

Massimo


beyond30lyc wrote:
> 
> Thank you very much! I am looking for this method for a whole day,but have
> you used this method to integrate the .NET external web service?
> And i think that when we call a web service,we have to generate a proxy
> first,when we do this, Shall we generate sources first,or this will be
> done automaticaly when we call the service.
> Wishing for your help! 
> 
> pascale4 wrote:
>> 
>> Hi,
>> after a lot of test I learnt how to expose an external web service
>> through http-component.
>> 
>> Suppose you have a web service with this wsdl :
>> 
>> <?xml version="1.0" encoding="UTF-8"?>
>> <wsdl:definitions
>> targetNamespace="http://localhost:8080/helloworldws/services/HelloWorldService";
>> xmlns="http://schemas.xmlsoap.org/wsdl/";
>> xmlns:apachesoap="http://xml.apache.org/xml-soap";
>> xmlns:impl="http://localhost:8080/helloworldws/services/HelloWorldService";
>> xmlns:intf="http://localhost:8080/helloworldws/services/HelloWorldService";
>> xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/";
>> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/";
>> xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/";
>> xmlns:xsd="http://www.w3.org/2001/XMLSchema";>
>> <wsdl:types/>
>>   <wsdl:message name="echoResponse">
>>     <wsdl:part name="echoReturn" type="xsd:string"/>
>>   </wsdl:message>
>>   <wsdl:message name="echoRequest">
>>   </wsdl:message>
>>   <wsdl:portType name="HelloWorldService">
>>     <wsdl:operation name="echo">
>>       <wsdl:input message="impl:echoRequest" name="echoRequest"/>
>>       <wsdl:output message="impl:echoResponse" name="echoResponse"/>
>>     </wsdl:operation>
>>   </wsdl:portType>
>>   <wsdl:binding name="HelloWorldServiceSoapBinding"
>> type="impl:HelloWorldService">
>>     <wsdlsoap:binding style="rpc"
>> transport="http://schemas.xmlsoap.org/soap/http"/>
>>     <wsdl:operation name="echo">
>>       <wsdlsoap:operation soapAction=""/>
>>       <wsdl:input name="echoRequest">
>>         <wsdlsoap:body
>> encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
>> namespace="http://localhost:8080/helloworldws/services/HelloWorldService";
>> use="encoded"/>
>>       </wsdl:input>
>>       <wsdl:output name="echoResponse">
>>         <wsdlsoap:body
>> encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
>> namespace="http://localhost:8080/helloworldws/services/HelloWorldService";
>> use="encoded"/>
>>       </wsdl:output>
>>     </wsdl:operation>
>>   </wsdl:binding>
>>   <wsdl:service name="HelloWorldServiceService">
>>     <wsdl:port binding="impl:HelloWorldServiceSoapBinding"
>> name="HelloWorldService">
>>       <wsdlsoap:address
>> location="http://localhost:8080/helloworldws/services/HelloWorldService"/>
>>     </wsdl:port>
>>   </wsdl:service>
>> </wsdl:definitions>
>> 
>> Then you have to define an http-component provider with this xbean.xml :
>> 
>> <?xml version="1.0" encoding="UTF-8"?>
>> <beans
>>         xmlns:http="http://servicemix.apache.org/http/1.0";
>>        
>> xmlns:ns1="http://localhost:8080/helloworldws/services/HelloWorldService";
>>>
>> <http:endpoint
>>         service="ns1:HelloWorldServiceService"
>>         endpoint="HelloWorldService"
>>         role="provider"
>>        
>> locationURI="http://localhost:8080/helloworldws/services/HelloWorldService";
>>        
>> wsdlResource="http://localhost:8080/helloworldws/services/HelloWorldService?wsdl";
>> />
>> </beans>
>> 
>> where
>> - ns1 : must match namespaces in wsdl
>> - service : must match value of attribute name of element wsdl:service in
>> wsdl
>>   <wsdl:service name="HelloWorldServiceService">
>> - endpoint : must match value of attribute name of element wsdl:port
>>     <wsdl:port binding="impl:HelloWorldServiceSoapBinding"
>> name="HelloWorldService">
>> 
>> Now you have to define http-component consumer with this xbean.xml :
>> 
>> <?xml version="1.0" encoding="UTF-8"?>
>> <beans
>>         xmlns:http="http://servicemix.apache.org/http/1.0";
>>        
>> xmlns:ns1="http://localhost:8080/helloworldws/services/HelloWorldService";
>>>
>> <http:endpoint
>>         service="ns1:HelloWorldServiceConsumer"
>>         endpoint="HelloWorldEndpointConsumer"
>>         role="consumer"
>>         targetService="ns1:HelloWorldServiceService"
>>         locationURI="http://localhost:8192/services/HelloWorldService/";
>>         defaultMep="http://www.w3.org/2004/08/wsdl/in-out";
>> />
>> </beans>
>> 
>> where
>> - ns1 : must match namespaces in wsdl
>> - targetService : must match service value in xbean.xml of provider
>> <http:endpoint
>>         service="ns1:HelloWorldServiceService"
>>         endpoint="HelloWorldService"
>>         role="provider"
>> 
>> And this is the jbi.xml of Service Assembly :
>> <?xml version="1.0" encoding="UTF-8"?>
>> <jbi xmlns="http://java.sun.com/xml/ns/jbi"; version="1.0">
>>   <service-assembly>
>>     <identification>
>>       <name>helloworld-sa</name>
>>       <description>Codices :: HelloWorld :: SA</description>
>>     </identification>
>>     <service-unit>
>>       <identification>
>>         <name>http-su-provider</name>
>>         <description>Http BC provider</description>
>>       </identification>
>>       <target>
>>         <artifacts-zip>http-su-provider.zip</artifacts-zip>
>>         <component-name>servicemix-http</component-name>
>>       </target>
>>     </service-unit>
>>     <service-unit>
>>       <identification>
>>         <name>http-su-consumer</name>
>>         <description>Http BC consumer</description>
>>       </identification>
>>       <target>
>>         <artifacts-zip>http-su-consumer.zip</artifacts-zip>
>>         <component-name>servicemix-http</component-name>
>>       </target>
>>     </service-unit>
>>   </service-assembly>
>> </jbi>
>> 
>> That's all folks
>> 
>> This is the source  http://www.nabble.com/file/5642/helloworld-sa.zip
>> helloworld-sa.zip 
>> 
>> Massimo
>> 
> 
> 

-- 
View this message in context: 
http://www.nabble.com/Expose-external-web-service-with-http-component-%28very-simplified%29-tf3014055s12049.html#a8371023
Sent from the ServiceMix - User mailing list archive at Nabble.com.

Reply via email to