Hi All,

 

I am working on a web service which acts as a client as well as server.

I am trying to deploy two instances of this web service on separate servers
and try and setup a communication link between them.

 

On M/C-1 I have installed axis2 1.3 under JBoss 4.2.2 and have deployed my
web service.

On M/C-2 I have installed a standalone axis2 1.3 server and have my service
deployed there.

Both deployments are successful and no error/exception is seen.

 

I have a client running on M/C-3, this is a simple java program to call my
webservice deployed on M/C-1 which will in turn call the webservice on
M/C-2.

Webservice on M/C-2 returns some data through callback to M/C-1 which in
turn does performs some database related task based on the response
received.

 

When I invoke the client to kick off the communication process by invoking
WS on M/C-1

 

Following exception is seen on M/C-1 (Axis2 1.3 under JBoss 4.2.2)

[ERROR] Received an internal server error : Internal Server Error

Exception in thread "HttpCoreNIOSender"

java.lang.NullPointerException

     at
org.apache.axis2.transport.nhttp.ClientHandler.inputReady(ClientHandler.java
:236)

     at
org.apache.axis2.transport.nhttp.LoggingNHttpClientHandler.inputReady(Loggin
gNHttpClientHandler.java:113)

     at
org.apache.http.impl.nio.DefaultNHttpClientConnection.consumeInput(DefaultNH
ttpClientConnection.java:111)

     at
org.apache.axis2.transport.nhttp.PlainClientIOEventDispatch.inputReady(Plain
ClientIOEventDispatch.java:71)

     at
org.apache.http.impl.nio.reactor.BaseIOReactor.readable(BaseIOReactor.java:6
8)

     at
org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvent(AbstractIORe
actor.java:160)

     at
org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvents(AbstractIOR
eactor.java:145)

     at
org.apache.http.impl.nio.reactor.AbstractIOReactor.execute(AbstractIOReactor
.java:127)

     at
org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor$Worker.run(Abs
tractMultiworkerIOReactor.java:162)

     at java.lang.Thread.run(Thread.java:595)

 

 

And following exception is seen on M/C-2 (Axis2 1.3 Standalone server)

[ERROR] Error processing POST request

org.apache.axis2.AxisFault: The endpoint reference (EPR) for the Operation
not found is http://192.168.1.28:9000/axis2/services/Service2 and the WSA
Action = null

        at
org.apache.axis2.engine.DispatchPhase.checkPostConditions(DispatchPhase.java
:86)

        at org.apache.axis2.engine.Phase.invoke(Phase.java:308)

        at org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:212)

        at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:132)

        at
org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HT
TPTransportUtils.java:275)

        at
org.apache.axis2.transport.nhttp.ServerWorker.processPost(ServerWorker.java:
207)

        at
org.apache.axis2.transport.nhttp.ServerWorker.run(ServerWorker.java:171)

        at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run
Task(ThreadPoolExecutor.java:665)

        at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run
(ThreadPoolExecutor.java:690)

        at java.lang.Thread.run(Thread.java:595)

 

If I replace M/C-1 setup with one similar to on M/C-2 i.e. if I use Axis2
standalone server in place of one Axis2 in JBoss, then everything starts
working fine, without any exception or anything.

 

To configure JBoss I have made following changes to server.xml in
jb0ss-web.deployer: 

<Connector port="8080" address="${jboss.bind.address}"    

         maxThreads="250" maxHttpHeaderSize="8192"

         emptySessionPath="true"
protocol="org.apache.coyote.http11.Http11NioProtocol"

         enableLookups="false" redirectPort="443" acceptCount="100"

         connectionTimeout="20000" disableUploadTimeout="true" />

 

 

To Configure Axis2 I have made following changes to Axis2.xml:

<transportReceiver name="http"
class="org.apache.axis2.transport.nhttp.HttpCoreNIOListener">

                <parameter name="port" locked="false">9000</parameter>

                <parameter name="non-blocking"
locked="false">true</parameter>

    </transportReceiver>

 

 

To demonstrate this issue I have created a sample webserice and client, and
have attached the source files for same.

 

Using the sample:

1.      Download the sample and unzip it. 
2.      Place Axis2 1.3 and its supporting jars in the lib folder
3.      Deploying webservice 

a.      To build web service archive use command *ant create.sample.dist*
from the unzipped folder. 
b.      sampleService.aar will be created in the DIST directory. 
c.      To deploy this web service, place the sampleService.aar file in
"repository/service" folder of Axis2 

4.      Invoking client 

a.      Build the web service if not already built. 
b.      Use command "script/ExecuteClient.sh" or "script/ExecuteClient.bat"
$param1 $param2 

                                                              i.      Where,
$param1 = <IP>:<port> system hosting service 1

                                                            ii.      And,
$param2 = <IP>:<port> system hosting service 2

 

I have been fighting to get through this for quite a long time, please help
me resolve this.

 

Thanks,

-Salman

Attachment: WSProxySample.rar
Description: Binary data

Reply via email to