Many thanks: your suggestion worked. As your post implied, the SU identified in my post as SUb, which used both bean:endpoint and jsr181:proxy elements, was targeted as servicemix-bean. When I left it targeted to that component, removing the reference to the context bean worked. Alternatively, when I kept the reference to the context bean and targeted the SU to the servicemix-jsr181 component, the problems were also no longer apparent.
This has made me realise a lack of understanding on my part of the significance of "targeting" a service unit to a particular component (such as servicemix-jsr181) and merely using elements from that component, such as jsr181:proxy. Can you please clarify? Is it an acceptable practice to include in a SU, elements which are not targeted at the matching component, such as I have done with the jsr181 proxy? Separately, I wonder if you could comment on the soundness of the approach I'm using to translate an RSS feed into calls on a service class which is also to be available as a web service? Is there a better/more appropriate way to do it. Regards, Callum. gnodet wrote: > > If you want to use jsr181 proxy from a SU not targeted at > servicemix-jsr181, > you > can not use the #context reference. The #jbi reference will not work > either. > Fortunately. if you don't specify any of these, the proxy factory will try > to find > the ClientFactory in the JNDI context and should be able to create a > client > as needed. > So, let's try with: > > <bean id="myClientBean" class="com.mycompany.MyClientBean"> > <property name="myService"> > <jsr181:proxy service="myns:MyService" type=" > com.mycompany.MyService" /> > </property> > </bean> > > > > On 5/21/07, callum <[EMAIL PROTECTED]> wrote: >> >> >> Thanks for the assistance. >> >> Perhaps I can just clarify what I'm doing and then you can indicate >> whether >> or not the context bean should be available. >> >> I create a service assembly containing a number of service units. In the >> xbean.xml file for one of those service units (call it SUa) exposes a >> pojo >> as a jsr 181 endpoint using a fragment of the following form (this is >> used >> to expose it as a web service, but config for this is not relevant): >> >> <jsr181:endpoint service="myns:MyService" >> pojoClass="com.mycompany.MyService" style="document" >> /> >> >> A second service unit (call it SUb), requires access to that endpoint, >> and >> it would be convenient if I could simply use a pojo proxy which would >> allow >> me to call java methods and have them translated into NMR messages. Will >> the jsr 181 proxy allow me to do this? To that end I include the >> following >> fragment in the xbean.xml file for the second sevice unit: >> >> <bean id="myClientBean" class="com.mycompany.MyClientBean"> >> <property name="myService"> >> <jsr181:proxy service="myns:MyService" >> context="#context" >> type="com.mycompany.MyService" /> >> </property> >> </bean> >> >> Once the service assembly has been packaged as a jar, I copy it to >> $SERVICEMIX_HOME/deploy. I then call $SERVICEMIX_HOME/bin/servicemix >> $SERVICEMIX_HOME/conf/servicemix.xml. >> >> Under these circumstances should the context bean be available to my >> service >> unit? >> >> Am I using the jsr 181 proxy correctly? >> >> Thanks in advance, >> Callum. >> >> >> gnodet wrote: >> > >> > The context bean will only be created when deploying in a SU. >> > It won't be available from the main configuration file. >> > In such a case, you can use a reference to the jbi container >> > as you suggested (container="#jbi"). >> > >> > On 5/21/07, callum <[EMAIL PROTECTED]> wrote: >> >> >> >> >> >> I'm having trouble configuring a jsr181 proxy, with the error messages >> >> indicating that the required context bean cannot be found. >> >> >> >> I include a clause such as the following in the SU configuration >> >> xbean.xml >> >> file, then startup Servicemix 3.1 (using "./bin/servicemix >> >> ./conf/servicemix.xml"). Deployment yields a warning that no bean >> called >> >> "context" can be found. >> >> >> >> <jsr181:proxy id="myId" context="#context" >> >> service="myns:myService" type="com.mycompany.myproject.MyClass"/> >> >> >> >> I have read posts that indicate that the context bean is automatically >> >> created when the SU is deployed. Is this true always? Does it make a >> >> difference if servicemix is executed as a standalone app, or itself >> >> deployed >> >> within a web container? >> >> >> >> In the ./conf/servicemix.xml file, the jbi container configuration is >> >> identified by "#jbi". I did wonder if using a clause such as this >> might >> >> be >> >> more appropriate: >> >> >> >> <jsr181:proxy id="myId" container="#jbi" >> >> service="myns:myService" type="com.mycompany.myproject.MyClass"/> >> >> >> >> I have tried both of these without success. >> >> >> >> Does the version make a difference? If it doesn't work in 3.1 does it >> >> work >> >> in the latest version from the repository? >> >> >> >> Regards, >> >> Callum. >> >> -- >> >> View this message in context: >> >> http://www.nabble.com/Jsr181-proxy-tf3788321s12049.html#a10713260 >> >> Sent from the ServiceMix - User mailing list archive at Nabble.com. >> >> >> >> >> > >> > >> > -- >> > Cheers, >> > Guillaume Nodet >> > ------------------------ >> > Principal Engineer, IONA >> > Blog: http://gnodet.blogspot.com/ >> > >> > >> >> -- >> View this message in context: >> http://www.nabble.com/Jsr181-proxy-tf3788321s12049.html#a10715663 >> Sent from the ServiceMix - User mailing list archive at Nabble.com. >> >> > > > -- > Cheers, > Guillaume Nodet > ------------------------ > Principal Engineer, IONA > Blog: http://gnodet.blogspot.com/ > > -- View this message in context: http://www.nabble.com/Jsr181-proxy-tf3788321s12049.html#a10717897 Sent from the ServiceMix - User mailing list archive at Nabble.com.
