You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@servicemix.apache.org by sdan <sd...@yahoo.com> on 2007/05/30 20:07:20 UTC

Can I forward a soap request to http-provider-bc from http-consumer-bc directly? if so then why the following example is not working?

I'm trying to forward a soap request to a http-provider-bc from a
http-consumer-bc. The http-provider-bc will then invoke an external
webservice and send the result back to the http-consumer-bc which will send
it  back to the client.

           SOAP Request
         ---------------------->                           ------>                       
------>
Client                               Http-Consumer-BC        
Http-Provider-BC        External WebService
        <----------------------                            <------                      
<-------
         SOAP response

This is not working. Please let me know if it is possible to simply forward
the soap request to
http-provider-bc from http-consumer-bc?

Following are the xbean.xml files for provider/consumer and wsdl file for
external webservice.

Thanks.
-Dan

************************************************************************
Consumer xbean.xml

<beans xmlns:http="http://servicemix.apache.org/http/1.0"
	   xmlns:ts="http://nec.com"
       xmlns:py="http://servicemix.apache.org/proxy">

  <http:endpoint service="py:ProxyService"
                 endpoint="proxy"
                 targetService="ts:Hello"
                 targetEndpoint="HelloSOAP12port_http"
                
wsdlResource="http://localhost:8081/axis2/services/Hello?wsdl"
                 role="consumer" 
                 locationURI="http://localhost:8192/simpleconsumer/"
                 defaultMep="http://www.w3.org/2004/08/wsdl/in-out"
                 soap="true" />             

</beans>

************************************************************************
Provider xbean.xml

<beans xmlns:http="http://servicemix.apache.org/http/1.0"
       xmlns:hs="http://nec.com">

  <http:endpoint service="hs:Hello"
                 endpoint="HelloSOAP12port_http"
                 role="provider" 
                 locationURI="http://localhost:8081/axis2/services/Hello"
                 defaultMep="http://www.w3.org/2004/08/wsdl/in-out"
                 soap="true" />             

</beans>

************************************************************************

External webservice wsdl

	<wsdl:definitions targetNamespace="http://nec.com">
<wsdl:documentation>Hello</wsdl:documentation>

	<wsdl:types>

	<xs:schema attributeFormDefault="qualified" elementFormDefault="qualified"
targetNamespace="http://nec.com/xsd">

	<xs:element name="sayHello">

	<xs:complexType>

	<xs:sequence>
<xs:element name="req" nillable="true" type="ns:HelloRequest"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="HelloRequest" type="ns:HelloRequest"/>

	<xs:complexType name="HelloRequest">

	<xs:sequence>
<xs:element name="text" nillable="true" type="xs:string"/>
</xs:sequence>
</xs:complexType>

	<xs:element name="sayHelloResponse">

	<xs:complexType>

	<xs:sequence>
<xs:element name="return" nillable="true" type="ns:HelloResponse"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="HelloResponse" type="ns:HelloResponse"/>

	<xs:complexType name="HelloResponse">

	<xs:sequence>
<xs:element name="text" nillable="true" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
</wsdl:types>

	<wsdl:message name="sayHelloMessage">
<wsdl:part name="part1" element="ns0:sayHello"/>
</wsdl:message>

	<wsdl:message name="sayHelloResponse">
<wsdl:part name="part1" element="ns0:sayHelloResponse"/>
</wsdl:message>

	<wsdl:portType name="HelloPortType">

	<wsdl:operation name="sayHello">
<wsdl:input message="axis2:sayHelloMessage" wsaw:Action="urn:sayHello"/>
<wsdl:output message="axis2:sayHelloResponse"/>
</wsdl:operation>
</wsdl:portType>

	<wsdl:binding name="HelloSOAP11Binding" type="axis2:HelloPortType">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http"
style="document"/>

	<wsdl:operation name="sayHello">
<soap:operation soapAction="urn:sayHello" style="document"/>

	<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>

	<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>

	<wsdl:binding name="HelloSOAP12Binding" type="axis2:HelloPortType">
<soap12:binding transport="http://schemas.xmlsoap.org/soap/http"
style="document"/>

	<wsdl:operation name="sayHello">
<soap12:operation soapAction="urn:sayHello" style="document"/>

	<wsdl:input>
<soap12:body use="literal"/>
</wsdl:input>

	<wsdl:output>
<soap12:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>

	<wsdl:binding name="HelloHttpBinding" type="axis2:HelloPortType">
<http:binding verb="POST"/>

	<wsdl:operation name="sayHello">
<http:operation location="sayHello"/>

	<wsdl:input>
<mime:content type="text/xml"/>
</wsdl:input>

	<wsdl:output>
<mime:content type="text/xml"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>

	<wsdl:service name="Hello">

	<wsdl:port name="HelloSOAP11port_http" binding="axis2:HelloSOAP11Binding">
<soap:address location="http://138.15.107.42:8081/axis2/services/Hello"/>
</wsdl:port>

	<wsdl:port name="HelloSOAP12port_http" binding="axis2:HelloSOAP12Binding">
<soap12:address location="http://138.15.107.42:8081/axis2/services/Hello"/>
</wsdl:port>

	<wsdl:port name="HelloHttpport" binding="axis2:HelloHttpBinding">
<http:address location="http://138.15.107.42:8081/axis2/services/Hello"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>





-- 
View this message in context: http://www.nabble.com/Can-I-forward-a-soap-request-to-http-provider-bc-from-http-consumer-bc-directly--if-so-then-why-the-following-example-is-not-working--tf3842012s12049.html#a10879384
Sent from the ServiceMix - User mailing list archive at Nabble.com.


Re: Can I forward a soap request to http-provider-bc from http-consumer-bc directly? if so then why the following example is not working?

Posted by Bummer <sa...@gmail.com>.
It worked for me.
The only difference is that in my http-consumer/provider xbean setting, I
didn't include
soap="true" attribute.
Why don't you take out "soap" attribute in both consumer/provider xbean.xml
and try it again ?


sdan wrote:
> 
> I'm trying to forward a soap request to a http-provider-bc from a
> http-consumer-bc. The http-provider-bc will then invoke an external
> webservice and send the result back to the http-consumer-bc which will
> send it  back to the client.
> 
>            SOAP Request
>          ---------------------->                           ------>                       
> ------>
> Client                               Http-Consumer-BC        
> Http-Provider-BC        External WebService
>         <----------------------                            <------                      
> <-------
>          SOAP response
> 
> This is not working. Please let me know if it is possible to simply
> forward the soap request to
> http-provider-bc from http-consumer-bc?
> 
> Following are the xbean.xml files for provider/consumer and wsdl file for
> external webservice.
> 
> Thanks.
> -Dan
> 
> ************************************************************************
> Consumer xbean.xml
> 
> <beans xmlns:http="http://servicemix.apache.org/http/1.0"
> 	   xmlns:ts="http://nec.com"
>        xmlns:py="http://servicemix.apache.org/proxy">
> 
>   <http:endpoint service="py:ProxyService"
>                  endpoint="proxy"
>                  targetService="ts:Hello"
>                  targetEndpoint="HelloSOAP12port_http"
>                 
> wsdlResource="http://localhost:8081/axis2/services/Hello?wsdl"
>                  role="consumer" 
>                  locationURI="http://localhost:8192/simpleconsumer/"
>                  defaultMep="http://www.w3.org/2004/08/wsdl/in-out"
>                  soap="true" />             
> 
> </beans>
> 
> ************************************************************************
> Provider xbean.xml
> 
> <beans xmlns:http="http://servicemix.apache.org/http/1.0"
>        xmlns:hs="http://nec.com">
> 
>   <http:endpoint service="hs:Hello"
>                  endpoint="HelloSOAP12port_http"
>                  role="provider" 
>                  locationURI="http://localhost:8081/axis2/services/Hello"
>                  defaultMep="http://www.w3.org/2004/08/wsdl/in-out"
>                  soap="true" />             
> 
> </beans>
> 
> ************************************************************************
> 
> External webservice wsdl
> 
> 	<wsdl:definitions targetNamespace="http://nec.com">
> <wsdl:documentation>Hello</wsdl:documentation>
> 
> 	<wsdl:types>
> 
> 	<xs:schema attributeFormDefault="qualified"
> elementFormDefault="qualified" targetNamespace="http://nec.com/xsd">
> 
> 	<xs:element name="sayHello">
> 
> 	<xs:complexType>
> 
> 	<xs:sequence>
> <xs:element name="req" nillable="true" type="ns:HelloRequest"/>
> </xs:sequence>
> </xs:complexType>
> </xs:element>
> <xs:element name="HelloRequest" type="ns:HelloRequest"/>
> 
> 	<xs:complexType name="HelloRequest">
> 
> 	<xs:sequence>
> <xs:element name="text" nillable="true" type="xs:string"/>
> </xs:sequence>
> </xs:complexType>
> 
> 	<xs:element name="sayHelloResponse">
> 
> 	<xs:complexType>
> 
> 	<xs:sequence>
> <xs:element name="return" nillable="true" type="ns:HelloResponse"/>
> </xs:sequence>
> </xs:complexType>
> </xs:element>
> <xs:element name="HelloResponse" type="ns:HelloResponse"/>
> 
> 	<xs:complexType name="HelloResponse">
> 
> 	<xs:sequence>
> <xs:element name="text" nillable="true" type="xs:string"/>
> </xs:sequence>
> </xs:complexType>
> </xs:schema>
> </wsdl:types>
> 
> 	<wsdl:message name="sayHelloMessage">
> <wsdl:part name="part1" element="ns0:sayHello"/>
> </wsdl:message>
> 
> 	<wsdl:message name="sayHelloResponse">
> <wsdl:part name="part1" element="ns0:sayHelloResponse"/>
> </wsdl:message>
> 
> 	<wsdl:portType name="HelloPortType">
> 
> 	<wsdl:operation name="sayHello">
> <wsdl:input message="axis2:sayHelloMessage" wsaw:Action="urn:sayHello"/>
> <wsdl:output message="axis2:sayHelloResponse"/>
> </wsdl:operation>
> </wsdl:portType>
> 
> 	<wsdl:binding name="HelloSOAP11Binding" type="axis2:HelloPortType">
> <soap:binding transport="http://schemas.xmlsoap.org/soap/http"
> style="document"/>
> 
> 	<wsdl:operation name="sayHello">
> <soap:operation soapAction="urn:sayHello" style="document"/>
> 
> 	<wsdl:input>
> <soap:body use="literal"/>
> </wsdl:input>
> 
> 	<wsdl:output>
> <soap:body use="literal"/>
> </wsdl:output>
> </wsdl:operation>
> </wsdl:binding>
> 
> 	<wsdl:binding name="HelloSOAP12Binding" type="axis2:HelloPortType">
> <soap12:binding transport="http://schemas.xmlsoap.org/soap/http"
> style="document"/>
> 
> 	<wsdl:operation name="sayHello">
> <soap12:operation soapAction="urn:sayHello" style="document"/>
> 
> 	<wsdl:input>
> <soap12:body use="literal"/>
> </wsdl:input>
> 
> 	<wsdl:output>
> <soap12:body use="literal"/>
> </wsdl:output>
> </wsdl:operation>
> </wsdl:binding>
> 
> 	<wsdl:binding name="HelloHttpBinding" type="axis2:HelloPortType">
> <http:binding verb="POST"/>
> 
> 	<wsdl:operation name="sayHello">
> <http:operation location="sayHello"/>
> 
> 	<wsdl:input>
> <mime:content type="text/xml"/>
> </wsdl:input>
> 
> 	<wsdl:output>
> <mime:content type="text/xml"/>
> </wsdl:output>
> </wsdl:operation>
> </wsdl:binding>
> 
> 	<wsdl:service name="Hello">
> 
> 	<wsdl:port name="HelloSOAP11port_http"
> binding="axis2:HelloSOAP11Binding">
> <soap:address location="http://138.15.107.42:8081/axis2/services/Hello"/>
> </wsdl:port>
> 
> 	<wsdl:port name="HelloSOAP12port_http"
> binding="axis2:HelloSOAP12Binding">
> <soap12:address
> location="http://138.15.107.42:8081/axis2/services/Hello"/>
> </wsdl:port>
> 
> 	<wsdl:port name="HelloHttpport" binding="axis2:HelloHttpBinding">
> <http:address location="http://138.15.107.42:8081/axis2/services/Hello"/>
> </wsdl:port>
> </wsdl:service>
> </wsdl:definitions>
> 
> 
> 
> 
> 
> 

-- 
View this message in context: http://www.nabble.com/Can-I-forward-a-soap-request-to-http-provider-bc-from-http-consumer-bc-directly--if-so-then-why-the-following-example-is-not-working--tf3842012s12049.html#a10884901
Sent from the ServiceMix - User mailing list archive at Nabble.com.