Remote ServiceInvoker Troubles -
slimytadpole Jul 14, 2010 11:43 AMI have a set of services available in a JBoss ESB (4.8) deployment. I use ServiceInvoker to inject messages on the ESB, and it workes without a hitch. I also have a client application, run from a batch file in another VM, that must be able to send messages to those services. It also uses ServiceInvoker. Now, this used to work in JBoss 4 with an ancient version of JBossESB.
I'm getting:
{code}
org.jboss.soa.esb.listeners.message.MessageDeliverException: javax.naming.NameNotFoundException: InquiryService not bound
at org.jboss.soa.esb.client.ServiceInvoker.loadServiceClusterInfo(ServiceInvoker.java:545)
at org.jboss.soa.esb.client.ServiceInvoker.<init>(ServiceInvoker.java:174)
at org.jboss.soa.esb.client.ServiceInvoker.<init>(ServiceInvoker.java:155)
at org.jboss.soa.esb.client.ServiceInvoker.<init>(ServiceInvoker.java:197)
at mil.af.rl.phoenix.ent.channel.esb.information.WSNDeliveryServiceInvokerInformationOutputChannel.connect(WSNDeliveryServiceInvokerInformationOutputChannel.java:109)
at mil.af.rl.phoenix.service.channel.manager.BaseChannelManager.addOutputChannel(BaseChannelManager.java:174)
at mil.af.rl.phoenix.service.channel.manager.BaseChannelManager.addOutputChannel(BaseChannelManager.java:137)
at mil.af.rl.phoenix.ent.repository.service.EPhoenixRepositoryService.start(EPhoenixRepositoryService.java:88)
at mil.af.rl.phoenix.service.managers.ServiceManager.start(ServiceManager.java:163)
at mil.af.rl.phoenix.javaservicecontainer.JavaServiceContainer.startServices(JavaServiceContainer.java:289)
at mil.af.rl.phoenix.ent.repository.Repository.initialize(Repository.java:167)
at mil.af.rl.phoenix.ent.repository.RepositoryLauncher.main(RepositoryLauncher.java:41)
Caused by: org.jboss.soa.esb.services.registry.RegistryException: javax.naming.NameNotFoundException: InquiryService not bound
*SNIP!*
{code}
Now, this issue has been addressed a few time in these forums, but none of the solutions are working for me. I've tried to address all of the ususal culprits.
Here are the relevant sections of some of my configuration...
jbossesb-properties.xml (client-side):
{code:xml}
<properties name="registry">
<property name="org.jboss.soa.esb.scout.proxy.transportClass"
value="org.apache.ws.scout.transport.RMITransport"/>
<property name="org.jboss.soa.esb.registry.lifeCycleManagerURI"
value="jnp://localhost:1099/PublishService?org.apache.juddi.registry.rmi.Publish#publish" />
<property name="org.jboss.soa.esb.registry.queryManagerURI"
value="jnp://localhost:1099/InquiryService?org.apache.juddi.registry.rmi.Inquiry#inquire"/>
<property name="org.jboss.soa.esb.registry.securityManagerURI"
value="org.apache.juddi.v3.client.transport.wrapper.UDDISecurityService#secure"/>
<property name="org.jboss.soa.esb.registry.implementationClass" value="org.jboss.internal.soa.esb.services.registry.JAXRRegistryImpl"/>
<property name="org.jboss.soa.esb.registry.factoryClass" value="org.apache.ws.scout.registry.ConnectionFactoryImpl"/>
<property name="org.jboss.soa.esb.registry.user" value="root"/>
<property name="org.jboss.soa.esb.registry.password" value="root"/>
<property name="org.jboss.soa.esb.scout.proxy.uddiVersion" value="3.0"/>
<property name="org.jboss.soa.esb.scout.proxy.uddiNameSpace" value="urn:uddi-org:api_v3"/>
<!-- specify the interceptors, in order -->
<property name="org.jboss.soa.esb.registry.interceptors" value="org.jboss.internal.soa.esb.services.registry.InVMRegistryInterceptor"/>
{code}
jbossesb-properties.xml (server-side):
{code:xml}
<properties name="registry">
<property name="org.jboss.soa.esb.scout.proxy.transportClass"
value="org.apache.ws.scout.transport.LocalTransport"/>
<property name="org.jboss.soa.esb.registry.queryManagerURI"
value="org.apache.juddi.v3.client.transport.wrapper.UDDIInquiryService#inquire"/>
<property name="org.jboss.soa.esb.registry.lifeCycleManagerURI"
value="org.apache.juddi.v3.client.transport.wrapper.UDDIPublicationService#publish"/>
<property name="org.jboss.soa.esb.registry.securityManagerURI"
value="org.apache.juddi.v3.client.transport.wrapper.UDDISecurityService#secure"/>
<property name="org.jboss.soa.esb.registry.implementationClass" value="org.jboss.internal.soa.esb.services.registry.JAXRRegistryImpl"/>
<property name="org.jboss.soa.esb.registry.factoryClass" value="org.apache.ws.scout.registry.ConnectionFactoryImpl"/>
<property name="org.jboss.soa.esb.registry.user" value="root"/>
<property name="org.jboss.soa.esb.registry.password" value="root"/>
<property name="org.jboss.soa.esb.scout.proxy.uddiVersion" value="3.0"/>
<property name="org.jboss.soa.esb.scout.proxy.uddiNameSpace" value="urn:uddi-org:api_v3"/>
<!-- specify the interceptors, in order -->
<property name="org.jboss.soa.esb.registry.interceptors" value="org.jboss.internal.soa.esb.services.registry.InVMRegistryInterceptor"/>
{code}
META-INF/uddi.xml (client-side):
{code:xml}
<uddi>
<reloadDelay>5000</reloadDelay>
<manager name="test-manager">
<nodes>
<node>
<!-- required 'default' node -->
<name>default</name>
<description>Main jUDDI node</description>
<properties>
<property name="serverName" value="localhost" />
<property name="serverPort" value="8880" />
</properties>
<!-- RMI Transport Settings -->
<proxyTransport>org.jboss.internal.soa.esb.registry.client.JuddiRMITransport</proxyTransport>
<custodyTransferUrl>/juddiv3/UDDICustodyTransferService</custodyTransferUrl>
<inquiryUrl>/juddiv3/UDDIInquiryService</inquiryUrl>
<publishUrl>/juddiv3/UDDIPublicationService</publishUrl>
<securityUrl>/juddiv3/UDDISecurityService</securityUrl>
<subscriptionUrl>/juddiv3/UDDISubscriptionService</subscriptionUrl>
<subscriptionListenerUrl>/juddiv3/UDDISubscriptionListenerService</subscriptionListenerUrl>
<juddiApiUrl>/juddiv3/JUDDIApiService</juddiApiUrl>
<javaNamingFactoryInitial>org.jnp.interfaces.NamingContextFactory</javaNamingFactoryInitial>
<javaNamingFactoryUrlPkgs>org.jboss.naming</javaNamingFactoryUrlPkgs>
<javaNamingProviderUrl>jnp://localhost:1099</javaNamingProviderUrl>
</node>
</nodes>
</manager>
</uddi>
{code}
My classpath includes the following jars, taken from the "Configuration for a remote ServiceInvoker" section for the JBoss ESB 4.8 Programmers Guide. However, that I had to make some substitutions. Some specific jars, called for by the Programmer's Guide, were not included with JBoss. So I substituted what I *think* are the correct jars for the recent version of JBoss. Original jars (per the Programmer's Guide) are in parenthesis.
{code}
log4j.jar (log4j-1.2.14.jar)
commons-codec-1.3.jar
commons-configuration-1.5.jar
commons-lang-2.3.jar
commons-logging.jar (commons-logging-1.1.jar)
dom4j.jar
javassist.jar (javassist-3.6.0.GA.jar)
jboss-aop-jdk50.jar (jboss-aop-jdk50-1.5.6.GA.jar)
jbossesb-config-model-1.0.1.jar
jbossesb-rosetta.jar
jboss-messaging-client.jar
jboss-remoting.jar
jbossts-common.jar
juddi-client-3.0.1.jar (juddi-client-3.0.1.aop.jar)
juddi-core-3.0.1.jar
scout.jar (scout-1.2.0.aop.jar)
stax-api-1.0.1.jar
stax-ex.jar (stax.jar)
trove.jar
uddi-ws-3.0.1.jar
wstx-asl-3.2.8.jar (wstx-asl-3.2.0.jar)
xbean-2.2.0.jar
xercesImpl-2.8.0.jar
jbossall-client.jar
{code}
Also, I have the above-mentioned META-INF/uddi.xml and jbossesb-properties.xml in the classpath.
I *think* that's pretty much everything I have. I can post client code, if need be, but I'd bet my lunch this is a configuration issue.
Edit: Sorry for the lack of formatting. My {code} markups don't seem to be working.