What I do not understand clearly is what you are trying to achieve.
>From what I understand, you are writing a binding component using
XFire.  The problem is that the JbiTransport has been designed to
be used in a Service Engine for receiving messages and I'm not
sure how it can be used it for a Binding Component.
What are the features of your BC compared to the existing servicemix-http ?

Guillaume Nodet

On 3/16/06, Raffaele Spazzoli <[EMAIL PROTECTED]> wrote:
>
> sorry for not being clear.
> when I create the xfire service I also execute the following code
>     factory.getSoap11Transports().clear();
>     factory.getSoap12Transports().clear();
>     factory.getSoap11Transports().add(JbiTransport.JBI_BINDING);
>
> The code fragment is copied from the jsr181 component, but I think it is
> necessary. The problem is that JbiTransport is a class from
> servicemix-jsr181.jar as you say, so my prject is dependent from
> servicemix-common and also from servicemix-jsr181.jar just for one
> single class. I'm worndering whether this is a problem that every one
> that make a binding component using xfire as web service engine will
> encunter. If it happen to be like that it may be worth while moving that
> class to servicemix-common.
>
> ciao
> Raffaele
>
>
> On Thu, 2006-03-16 at 11:09 +0100, Guillaume Nodet wrote:
> > We use maven 1 to build ServiceMix.
> > The maven 2 build is not stable.
> > Btw, you can use nightly snapshots also (but you have to wait 24 hours)
> ...
> >
> > For the xfire stuff, I 'm not sure to understand how you use it.
> > Could you please explain ?
> > The transport is in the servicemix-jsr181.jar available at
> > http://cvs.apache.org/repository/incubator-servicemix/jars/
> >
> > Cheers,
> > Guillaume Nodet
> >
> > On 3/15/06, Raffaele Spazzoli <[EMAIL PROTECTED]> wrote:
> > >
> > > I'm having problems building servicemix so I can't try your update. I
> > > have the following errors
> > > [WARNING] POM for 'incubator-activemq:activemq-core:pom:4.0-SNAPSHOT'
> is
> > > invalid. It will be ignored for artifact resolution. Reason: Not a
> > > v4.0.0 POM.
> > > Downloading:
> > >
> > >
> http://repo1.maven.org/maven2/org/apache/db/ddlutils/ddlutils/1.0-20060223/ddlutils-1.0-20060223.pom
> > > [WARNING] Unable to get resource from repository central
> > > (http://repo1.maven.org/maven2)
> > > Downloading:
> > >
> > >
> http://snapshots.maven.codehaus.org/maven2/org/apache/db/ddlutils/ddlutils/1.0-20060223/ddlutils-1.0-20060223.pom
> > > [WARNING] Unable to get resource from repository maven2-snapshots
> > > (http://snapshots.maven.codehaus.org/maven2)
> > > Downloading:
> > >
> > >
> http://servicemix.org/m2-repo/org/apache/db/ddlutils/ddlutils/1.0-20060223/ddlutils-1.0-20060223.pom
> > > [WARNING] Unable to get resource from repository servicemix-m2-repo
> > > (http://servicemix.org/m2-repo)
> > > Downloading:
> > >
> > >
> http://cvs.apache.org/maven-snapshot-repository/org/apache/db/ddlutils/ddlutils/1.0-20060223/ddlutils-1.0-20060223.pom
> > > [WARNING] Unable to get resource from repository apache-m2
> > > (http://cvs.apache.org/maven-snapshot-repository)
> > > Downloading:
> > >
> > >
> http://cvs.apache.org/repository/org.apache.db.ddlutils/poms/ddlutils-1.0-20060223.pom
> > > [WARNING] Unable to get resource from repository apache
> > > (http://cvs.apache.org/repository)
> > > Downloading:
> > >
> > >
> http://dist.codehaus.org/org.apache.db.ddlutils/poms/ddlutils-1.0-20060223.pom
> > > [WARNING] Unable to get resource from repository codehaus
> > > (http://dist.codehaus.org)
> > > Downloading:
> > >
> > >
> http://repo.logicblaze.com/maven1/org.apache.db.ddlutils/poms/ddlutils-1.0-20060223.pom
> > > [WARNING] Unable to get resource from repository logicblaze
> > > (http://repo.logicblaze.com/maven1)
> > >
> > > and so on ...
> > > Maven seems to have problems with active-mq and its depencies, I know
> is
> > > not a problem of servicemix, but do you know a workaround?
> > >
> > > Another issue: writing my component I used xfire for web service
> > > runtime, wrapping it as a JBI component I had to import the following
> > > class: org.apache.servicemix.jsr181.xfire.JbiTransport, which is
> located
> > > in the jsr181 component. Do you think it could be moved to common? or
> am
> > > I doing something wrong?
> > >
> > > thanks
> > > Raffaele
> > >
> > >
> > >
> > >
> > > On Mon, 2006-03-13 at 17:28 +0100, Guillaume Nodet wrote:
> > > > On 3/13/06, Raffaele Spazzoli <[EMAIL PROTECTED]> wrote:
> > > > >
> > > > > I did as you said and it worked, thanks.
> > > > > There are still a couple of issue that I'd like to understand:
> > > > > 1. the SOAP-Http proxy service doesn't provide a wsdl. Do you
> think
> > > that
> > > > > could be possible to take the wsdl of the proxied service strip
> the
> > > jbi
> > > > > binding and put a SOAP-http binding?
> > > >
> > > >
> > > > Done. You should give it a try.  It does not currenly generate the
> > > binding
> > > > informations,
> > > > only the http or soap address for the endpoint.
> > > >
> > > > 2. I configured the routing using the xbean file:
> > > > > <http:endpoint service="im:VinciService"
> > > > >                            endpoint="imhttp:VinciService"
> > > > >                role="consumer"
> > > > >                locationURI="
> http://localhost:8192/Service/VinciService
> > > "
> > > > >                defaultMep="http://www.w3.org/2004/08/wsdl/in-out";
> > > > >                soap="true" />
> > > > > I'd like to do the same using the standard connection definitions
> of
> > > the
> > > > > jbi deployment descriptor of the service assembly. Does it make
> sense
> > > > > and is it supported in serivicemix?
> > > >
> > > >
> > > > Connections are now fully supported, but I'm not really sure how
> > > you  could
> > > > use them.
> > > > They have been rewritten last week.
> > > >
> > > > A connection defines that when a component will send a message to
> the
> > > > consumer
> > > > endpoint (or interface), it will be routed to the given provider
> > > endpoint.
> > > > The main goal
> > > > is to be able to define service units that are independant of the
> > > provider
> > > > endpoints.
> > > > These endpoints are thus defined in the service assembly with
> > > connections.
> > > >
> > > >
> > > > <connection>
> > > > >   <consumer endpoint-name="im:VinciServiceHttpPort"
> > > > > service-name="im:VinciService">
> > > > >   </consumer>
> > > > > <provider endpoint-name="im:VinciServiceJBIPort"
> > > > > service-name="im:VinciService">
> > > > >   </provider>
> > > > > </connection>
> > > > >
> > > > > If I try to do it servicemix complains that it can't find the
> cosumer
> > > > > service (the proxy), I believe it does is because the proxy
> service
> > > > > doesn't register a wsdl, so back to the previous point.
> > > > >
> > > > > About the service-common library I found it useful but not much
> > > > > documented, it took me a couple of days of code reading to
> understand
> > > > > what it could do for me.
> > > >
> > > >
> > > > Yeah, i know.  I will try to put write some doc in the following
> weeks.
> > > >
> > > > Last thing I suggest to add to the maven-servicemix-plugin a couple
> of
> > > goal
> > > > > to help the deploy of install zip and service assemblies.
> > > > > supposing to have a directory structure that mirrors the service
> > > assembly,
> > > > > I did the following scripts that could be a start:
> > > > >
> > > > >   <goal name="jbi:install" prereqs="jbi:jbi" description="install
> > > > > installer in deploy directory of esb">
> > > > >
> > > > >      <ant:echo>installing installer</ant:echo>
> > > > >      <ant:delete file="${maven.jbi.esb.dir}/install/${
> > > maven.jbi.final.name
> > > > > }"/>
> > > > >      <ant:copy file="${maven.build.dir}/${maven.jbi.final.name}"
> > > todir="${
> > > > > maven.jbi.esb.dir}/install" />
> > > > >
> > > > >   </goal>
> > > > >
> > > > >   <goal name="jbi:deploy"
> > > > >         prereqs="jbi:create-sa"
> > > > >         description="deploy the serice assembies">
> > > > >
> > > > >      <ant:echo>deploying sa</ant:echo>
> > > > >      <ant:delete file="${maven.jbi.esb.dir}/deploy/${
> jbi.assembly.name
> > > > > }.zip"/>
> > > > >      <ant:copy file="${basedir}/target/${jbi.assembly.name}.zip"
> > > todir="${
> > > > > maven.jbi.esb.dir}/deploy" />
> > > > >
> > > > >   </goal>
> > > > >
> > > > >   <goal name="jbi:create-sa" description="create the service
> > > assembly">
> > > > >         <j:set var="saname" value="${jbi.assembly.name}" />
> > > > >         <j:set var="keysaname" value="
> jbi.assembly.unitname.${saname}"
> > > />
> > > > >         <util:tokenize var="sus" delim=",">${context.getVariable
> > > > > (keysaname)}</util:tokenize>
> > > > >         <ant:mkdir dir="${basedir}/target/jbi_sa_${saname}" />
> > > > >         <j:forEach var="su" items="${sus}">
> > > > >         <log:info>generate service unit zip file for
> ${su}</log:info>
> > > > >                                 <ant:zip
> > > > > destfile="${basedir}/target/jbi_sa_${saname}/${su}.zip"
> > > > >                                 basedir="${jbi.assembly.dir}/${
> > > > > jbi.assembly.name}/${su}"/>
> > > > >                         </j:forEach>
> > > > >
> > > > >                         <ant:zip destfile="${basedir}/target/${
> > > > > jbi.assembly.name}.zip">
> > > > >                                 <ant:zipfileset dir="${
> > > jbi.assembly.dir
> > > > > }/${jbi.assembly.name}/META-INF" prefix="META-INF"/>
> > > > >                 <ant:zipfileset
> > > dir="${basedir}/target/jbi_sa_${saname}"
> > > > > includes="*.zip"/>
> > > > >                 </ant:zip>
> > > > >   </goal>
> > > >
> > > >
> > > > Good idea.
> > > > Thanks for the goals definitions ...
> > > >
> > > > Cheers,
> > > > Guillaume Nodet
> > > >
> > > > bye
> > > > > Raffaele
> > > > >
> > > > >
> > > > > On Thu, 2006-03-09 at 12:22 +0100, Guillaume Nodet wrote:
> > > > > > See comments inline
> > > > > >
> > > > > > On 3/9/06, Raffaele Spazzoli <[EMAIL PROTECTED]> wrote:
> > > > > > >
> > > > > > > I'm developing a binding component using the sericemix-common
> > > library
> > > > > > > and taking inspiration (i.e. coping :-) )from the jsr181
> > > component.
> > > > > >
> > > > > >
> > > > > > If you have concerns with the existing component (missing
> features,
> > > > > > bugs...),
> > > > > > please raise them.
> > > > > >
> > > > > > It works and when I generate the wsdl for my deployed service I
> > > obtain a
> > > > > > > jbi binding:
> > > > > > >
> > > > > > >   <wsdl:binding name="VinciServiceJBIBinding"
> > > > > > > type="tns:VinciServicePortType">
> > > > > > >     <wsdlsoap:binding style="document"
> > > > > > > transport="
> http://java.sun.com/xml/ns/jbi/binding/service+engine
> > > "/>
> > > > > > >     <wsdl:operation name="vinciOperation">
> > > > > > >       <wsdlsoap:operation soapAction=""/>
> > > > > > >       <wsdl:input name="vinciOperationRequest">
> > > > > > >         <wsdlsoap:body use="literal"/>
> > > > > > >       </wsdl:input>
> > > > > > >       <wsdl:output name="vinciOperationResponse">
> > > > > > >         <wsdlsoap:body use="literal"/>
> > > > > > >       </wsdl:output>
> > > > > > >     </wsdl:operation>
> > > > > > >   </wsdl:binding>
> > > > > > >   <wsdl:service name="VinciService">
> > > > > > >     <wsdl:port binding="tns:VinciServiceJBIBinding"
> > > > > > > name="VinciServiceJBIPort">
> > > > > > >       <wsdlsoap:address
> > > > > > > location="jbi://{
> http://vinci.test.iif.imolinfo.it}VinciService"/>
> > > > > > >     </wsdl:port>
> > > > > > >
> > > > > > > For what I understand (and is not much yet) of the jbi
> > > specification
> > > > > > > this is ok and means that my component is listening on the NMR
> > > message
> > > > > > > bus. Now I want to expose my service to external clients via
> SOAP
> > > > > > > binding (lets say SOAP over HTTP).
> > > > > > > I think this should be possible just configuring a SOAP
> endpoint
> > > to
> > > > > > > route the messages it receives to my jbi endpoint. I didn't
> find a
> > > > > > > standard way to do it. Is it possible and how?
> > > > > >
> > > > > >
> > > > > > The servicemix-http component can do this for you.
> > > > > > See soap-binding example in the distribution and the test cases
> for
> > > this
> > > > > > component.
> > > > > > You can deploy WSDL or simple xml describing the endpoints.
> > > > > > I hope we can provide some "automatic" way do create
> > > > > > a proxy endpoint on a binding component in the future.
> > > > > >
> > > > > > I was able to exposte my endpoint on a http trasport using the
> non
> > > > > > > standard jbi component provided by service mix adding this
> > > > > configuration
> > > > > > > to the servicemix.xml:
> > > > > > >
> > > > > > > <sm:activationSpec componentName="httpReceiver"
> > > > > > >
> > > > > > >
> > > > >
> > >
> service="foo:httpBinding"                                          
> endpoint="httpReceiver"
> > > > > > > destinationService="im:VinciService">
> > > > > > >   <sm:component>
> > > > > > >     <bean class="
> > > org.apache.servicemix.components.http.HttpConnector">
> > > > > > >        <property name="host" value="localhost"/>
> > > > > > >        <property name="port" value="8912"/>
> > > > > > >     </bean>
> > > > > > >   </sm:component>
> > > > > > > </sm:activationSpec>
> > > > > > >
> > > > > > > The problem is that this work only if I send to this endpoint
> just
> > > the
> > > > > > > content of the SOAP body i.e. I must delete the Envelope and
> the
> > > Body
> > > > > > > from the message. Probably this is what the jbi bindig
> requires.
> > > > > >
> > > > > >
> > > > > > If you use the servicemix-http component, you will be able to
> > > configure
> > > > > > if you want to use soap or not.
> > > > > > Else you may want to try the HttpSoapConnector instead.
> > > > > > Note that there is no reason why the soap enveloppe should be
> sent
> > > > > > inside the NMR.  Soap is a protocol and should be handled by the
> > > binding
> > > > > > component, not the service engine.  The HttpConnector does not
> care
> > > > > about
> > > > > > soap
> > > > > > and so will send the whole content of the message in the http
> > > request
> > > > > (and
> > > > > > same thing
> > > > > > the other way), whereas the HttpSoapConnector will add/remove
> the
> > > soap
> > > > > > enveloppe.
> > > > > >
> > > > > > Cheers,
> > > > > > Guillaume Nodet
> > > > > >
> > > > > > thank in advance
> > > > > > > Raffaele
> > > > > > >
> > > > > > >
> > > > > > >
> > > > >
> > > > >
> > >
> > >
>
>

Reply via email to