I guess what my real question is how do I use either HttpInOutBinding or
HttpConnector to properly expose an xfire web service over HTTP.  I've
been trying to do this for several days now and unfortunately haven't
been able to get this to work.  Any help would be appreciated.

Thanks,

Jeff

-----Original Message-----
From: Guillaume Nodet [mailto:[EMAIL PROTECTED] 
Sent: Thursday, December 01, 2005 3:20 PM
To: [email protected]
Subject: Re: [servicemix-user] Using HttpSoapInOutBinding

The wsdl generated by the HttpSoapConnector should not be used.
It can not be the wsdl of the echo component, because the component that

is invoked
is not know, and could be a service that can not be described by a wsdl,

such as a
content based router.

If you want to query the wsdl of a component, you should do so by using
the
ComponentContext.getEndpointDescriptor method.

Guillaume

Jeffrey Puro wrote:

>I am attempting to use the new
>org.servicemix.components.http.HttpSoapInOutBinding class and when I
>navigate to the URL that's bound to this component and try and display
>the WSDL of it for some reason it's not displaying the wsdl of the
>actual xfire service bean that I want to expose.  Any ideas?  The url I
>am navigating to looks something like this:
>
>http://localhost:8080/servicemix-example/jbi/soap/?wsdl
>
>Here is the WSDL output that gets displayed:
>
>  <?xml version="1.0" encoding="UTF-8" ?> 
>- <wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/";
>xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/";
>xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/";
>xmlns:tns="http://http.components.servicemix.org";
>xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/";
>xmlns:xsd="http://www.w3.org/2001/XMLSchema";
>targetNamespace="http://http.components.servicemix.org";>
>- <wsdl:types>
>- <xsd:schema targetNamespace="http://http.components.servicemix.org";
>elementFormDefault="qualified" attributeFormDefault="qualified">
>  <xsd:element name="invokeInOutin0" type="xsd:anyType" /> 
>  <xsd:element name="invokeInOutout" type="xsd:anyType" /> 
>  </xsd:schema>
>  </wsdl:types>
>- <wsdl:message name="invokeInOutRequest">
>  <wsdl:part element="tns:invokeInOutin0" name="invokeInOutin0" /> 
>  </wsdl:message>
>- <wsdl:message name="invokeInOutResponse">
>  <wsdl:part element="tns:invokeInOutout" name="invokeInOutout" /> 
>  </wsdl:message>
>- <wsdl:portType name="InOutServicePortType">
>- <wsdl:operation name="invokeInOut">
>  <wsdl:input message="tns:invokeInOutRequest"
name="invokeInOutRequest"
>/> 
>  <wsdl:output message="tns:invokeInOutResponse"
>name="invokeInOutResponse" /> 
>  </wsdl:operation>
>  </wsdl:portType>
>- <wsdl:binding name="InOutServiceHttpBinding"
>type="tns:InOutServicePortType">
>  <wsdlsoap:binding style="document"
>transport="http://schemas.xmlsoap.org/soap/http"; /> 
>- <wsdl:operation name="invokeInOut">
>  <wsdlsoap:operation soapAction="" /> 
>- <wsdl:input name="invokeInOutRequest">
>  <wsdlsoap:body use="literal" /> 
>  </wsdl:input>
>- <wsdl:output name="invokeInOutResponse">
>  <wsdlsoap:body use="literal" /> 
>  </wsdl:output>
>  </wsdl:operation>
>  </wsdl:binding>
>- <wsdl:service name="InOutService">
>- <wsdl:port binding="tns:InOutServiceHttpBinding"
>name="InOutServiceHttpPort">
>  <wsdlsoap:address
>location="http://localhost:8080/servicemix-example/jbi/soap/echoService
/
>" /> 
>  </wsdl:port>
>  </wsdl:service>
>  </wsdl:definitions>
>
>  
>
>-----------------------------------------------------------------------
-
>
><?xml version="1.0" encoding="UTF-8"?>
><beans xmlns="http://xbean.org/schemas/spring/1.0";
>       xmlns:spring="http://xbean.org/schemas/spring/1.0";
>       xmlns:sm="http://servicemix.org/config/1.0";
>       xmlns:my="http://servicemix.org/demo/";
>    xmlns:foo="http://servicemix.org/demo/";
>       xmlns:xfire="http://xfire.components.servicemix.org";>
>
>  <!-- the JBI container -->
>  <sm:container spring:id="jbi"
>      rootDir="../wdir"
>      useMBeanServer="true"
>         createMBeanServer="true" 
>      installationDirPath="../install"
>      deploymentDirPath="../deploy"
>         monitorInstallationDirectory="true" 
>      dumpStats="true"
>         statsInterval="10" 
>      transactionManager="#transactionManager">
>
>    <sm:activationSpecs>
>
>      <sm:activationSpec componentName="httpBinding"
service="http:httpBinding" destinationService="http:echoService">
>        <sm:component><bean
class="org.servicemix.components.http.HttpInOutBinding"
/></sm:component>
>      </sm:activationSpec>
>
>      <sm:activationSpec componentName="soapBinding"
service="soap:soapBinding" destinationService="xfire:echoService">
>        <sm:component><bean
class="org.servicemix.components.http.HttpSoapInOutBinding"
/></sm:component>
>      </sm:activationSpec>
>
>      <!--  a simple Echo service to test InOut message exchanges using
HTTP-->
>      <sm:activationSpec componentName="echo"
service="http:echoService" >
>        <sm:component>
>          <bean
class="com.sterling.servicemix.component.ExampleComponent">
>                       <property
name="property"><value>name</value></property>
>                 </bean>
>        </sm:component>
>      </sm:activationSpec>
>         
>      <sm:activationSpec componentName="soapBinding"
service="soap:soapBinding" destinationService="xfire:echoService">
>               <sm:component>
>                 <bean
class="org.servicemix.components.http.HttpSoapConnector">
>                       <property name="host" value="localhost"/>
>                       <property name="port" value="8081"/>
>                 </bean>
>               </sm:component>
>         </sm:activationSpec>
>
>         <sm:activationSpec componentName="xfireBinding"
service="xfire:echoService">
>               <sm:component>
>                       <bean
class="org.servicemix.components.xfire.XFireBinding">
>                               <property name="xfire" ref="xfire"/>
>                       </bean>
>               </sm:component>
>         </sm:activationSpec>
>
>       </sm:activationSpecs>
>
>  </sm:container>
>     
>  <bean id="echo"
class="com.sterling.servicemix.component.xfire.EchoImpl"
singleton="true"/>
>
>  <bean name="echoService"
class="org.codehaus.xfire.spring.ServiceBean">
>    <property name="serviceBean"><value>echo</value></property>
>    <property name="serviceFactory" ref="xfire.serviceFactory"/>
>    <property name="xfire" ref="xfire"/>
>  </bean>
>
>  <!-- the JCA container -->
>  <bean id="jencks" class="org.jencks.JCAContainer" singleton="true">
>
>    <!-- lets use the default configuration of work manager and
transaction manager-->
>    <property name="bootstrapContext">
>      <bean class="org.jencks.factory.BootstrapContextFactoryBean">
>        <property name="threadPoolSize" value="25"/>
>      </bean>
>    </property>
>
>    <!-- the JCA Resource Adapter -->
>    <property name="resourceAdapter">
>      <bean id="activeMQResourceAdapter"
class="org.activemq.ra.ActiveMQResourceAdapter" singleton="true">
>        <property name="serverUrl" value="tcp://localhost:61636"/>
>      </bean>
>    </property>
>  </bean>
>
>  <bean id="transactionManager"
class="org.jencks.factory.TransactionManagerFactoryBean"/>
>
></beans>
>  
>



Reply via email to