2 Replies Latest reply on Mar 10, 2008 8:02 AM by rknaik

    Info needed on Web Services using JBossESB

    rknaik

      Hello,
      I have created web service by following couple of examples provided within ESB's quickstarts directory.
      I have got both web service producer and consumer that consumes this web service running on a single machine.

      Now what i want to do is to run web service producer on one machine and consumer on the other machine so that they can communicate over a single esb channel.

      How do i do this ? I am quite new to this area and correct me if i have gone wrong somewhere ?

      Thanks
      R.Naik

        • 1. Re: Info needed on Web Services using JBossESB
          tfennelly

          Well it sounds like you've done the difficult part :-)

          To make them work across 2 machines you'll need to do the following:

          1. Make sure the webservice endpoint address (e.g. the jbr-provider "host") contains the physical address of the machine i.e. the IP or DNS name of the machine and not "localhost".

          2. Modify the "wsdl" property on the SOAPClient to point to the other machine hosting the webservice.

          Try that.

          • 2. Re: Info needed on Web Services using JBossESB
            rknaik

            Hi,
            First of all let me thank you for the reply.
            As you said i entered proper machine details within jboss-esb.xml for web service producer.

            Web service producer:
            ==============

            The machines name where the web service hosted is : ie10dtcgs4ks1s
            And accordingly its jboss-esb.xml file contents are as follows

            <?xml version = "1.0" encoding = "UTF-8"?>



            <jms-provider name="JBossMQ"
            connection-factory="ConnectionFactory"
            jndi-context-factory="org.jnp.interfaces.NamingContextFactory"
            jndi-URL="ie10dtcgs4k1s">
            <jms-bus busid="quickstartEsbChannel">
            <jms-message-filter dest-type="QUEUE"
            dest-name="queue/quickstart_webservice_consumer1_esb" />
            </jms-bus>
            </jms-provider>





            <jms-listener name="JMS-ESBListener"
            busidref="quickstartEsbChannel" maxThreads="1" />

















            Web service consumer:
            ===============
            Now the consumer is running in different machine and in its jboss-esb.xml file i have provided web service producer's m/c details so that it can retrieve data from web service hosted producer machine.

            But when i tried running the consumer i got following errors :(


            [java] 17:24:09,359 DEBUG [main][NamingContext] Failed to connect to ie10dtcgs4k1s:8080
            [java] javax.naming.CommunicationException: Failed to retrieve stub from server ie10dtcgs4k1s:8080 [Root exception
            is java.io.EOFException]
            [java] at org.jnp.interfaces.NamingContext.getServer(NamingContext.java:263)
            [java] at org.jnp.interfaces.NamingContext.checkRef(NamingContext.java:1387)
            [java] at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:596)
            [java] at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:589)
            [java] at javax.naming.InitialContext.lookup(InitialContext.java:351)
            [java] at org.apache.ws.scout.transport.RMITransport.send(RMITransport.java:80)
            [java] at org.apache.ws.scout.registry.RegistryImpl.execute(RegistryImpl.java:271)
            [java] at org.apache.ws.scout.registry.RegistryImpl.findTModel(RegistryImpl.java:793)
            [java] at org.apache.ws.scout.registry.BusinessQueryManagerImpl.findClassificationSchemeByName(BusinessQueryMan
            agerImpl.java:440)
            [java] at org.jboss.internal.soa.esb.services.registry.JAXRRegistryImpl.findService(JAXRRegistryImpl.java:488)
            [java] at org.jboss.internal.soa.esb.services.registry.JAXRRegistryImpl.findEPRs(JAXRRegistryImpl.java:338)
            [java] at org.jboss.soa.esb.listeners.RegistryUtil.getEprs(RegistryUtil.java:216)
            [java] at org.jboss.soa.esb.client.ServiceInvoker.loadServiceClusterInfo(ServiceInvoker.java:351)
            [java] at org.jboss.soa.esb.client.ServiceInvoker.(ServiceInvoker.java:114)
            [java] at org.jboss.soa.esb.client.ServiceInvoker.(ServiceInvoker.java:137)
            [java] at org.jboss.soa.esb.samples.quickstart.webservice_consumer1.test.SendEsbMessage.sendMessage(SendEsbMess
            age.java:42)
            [java] at org.jboss.soa.esb.samples.quickstart.webservice_consumer1.test.SendEsbMessage.main(SendEsbMessage.jav
            a:61)
            [java] Caused by: java.io.EOFException
            [java] at java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2228)
            [java] at java.io.ObjectInputStream$BlockDataInputStream.readShort(ObjectInputStream.java:2694)
            [java] at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:761)
            [java] at java.io.ObjectInputStream.(ObjectInputStream.java:277)
            [java] at org.jnp.interfaces.NamingContext.getServer(NamingContext.java:250)
            [java] ... 16 more
            [java] javax.naming.CommunicationException: Could not obtain connection to any of these urls: ie10dtcgs4k1s:8080 an
            d discovery failed with error: javax.naming.CommunicationException: Receive timed out [Root exception is java.net.Socket
            TimeoutException: Receive timed out] [Root exception is javax.naming.CommunicationException: Failed to retrieve stub fro
            m server ie10dtcgs4k1s:8080 [Root exception is java.io.EOFException]]
            [java] at org.apache.ws.scout.transport.RMITransport.send(RMITransport.java:91)
            [java] at org.apache.ws.scout.registry.RegistryImpl.execute(RegistryImpl.java:271)
            [java] at org.apache.ws.scout.registry.RegistryImpl.findTModel(RegistryImpl.java:793)
            [java] at org.apache.ws.scout.registry.BusinessQueryManagerImpl.findClassificationSchemeByName(BusinessQueryMan
            agerImpl.java:440)
            [java] at org.jboss.internal.soa.esb.services.registry.JAXRRegistryImpl.findService(JAXRRegistryImpl.java:488)
            [java] at org.jboss.internal.soa.esb.services.registry.JAXRRegistryImpl.findEPRs(JAXRRegistryImpl.java:338)
            [java] at org.jboss.soa.esb.listeners.RegistryUtil.getEprs(RegistryUtil.java:216)
            [java] at org.jboss.soa.esb.client.ServiceInvoker.loadServiceClusterInfo(ServiceInvoker.java:351)
            [java] at org.jboss.soa.esb.client.ServiceInvoker.(ServiceInvoker.java:114)
            [java] at org.jboss.soa.esb.client.ServiceInvoker.(ServiceInvoker.java:137)
            [java] at org.jboss.soa.esb.samples.quickstart.webservice_consumer1.test.SendEsbMessage.sendMessage(SendEsbMess
            age.java:42)
            [java] at org.jboss.soa.esb.samples.quickstart.webservice_consumer1.test.SendEsbMessage.main(SendEsbMessage.jav
            a:61)


            Please help me