[ 
https://issues.apache.org/jira/browse/AXIS2-3647?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12582771#action_12582771
 ] 

Nikhil Thaker commented on AXIS2-3647:
--------------------------------------

After recreating the problem and analyzing it further, the issue is related to 
instantiatian of response listener on every client invocation. The JAXWS 
service delegete creates configuration context on every invocation there by 
spawning a new SimpleHttpServer during each client invocation. Thus the 
ServerSocket opened by previous instance of SimpleHttpServer conflicts with the 
new instance causing the java.net.BindException. I have also noticed that the 
SimpleHttpServer is spawned during invocation of warBasedAxisConfigurator. I am 
attaching the stack trace that shows spawning of SimpleHttpServer in both cases:
1) Stack trace that creates SimpleHttpServer using WarBasedAxisConfigurator
        at 
org.apache.axis2.transport.http.SimpleHTTPServer.<init>(SimpleHTTPServer.java:81)
        at java.lang.Class.newInstanceImpl(Native Method)
        at java.lang.Class.newInstance(Class.java:1300)
        at 
org.apache.axis2.deployment.AxisConfigBuilder.processTransportReceivers(AxisConfigBuilder.java:581)
        at 
org.apache.axis2.deployment.AxisConfigBuilder.populateConfig(AxisConfigBuilder.java:125)
        at 
org.apache.axis2.deployment.DeploymentEngine.populateAxisConfiguration(DeploymentEngine.java:641)
        at 
org.apache.axis2.deployment.WarBasedAxisConfigurator.<init>(WarBasedAxisConfigurator.java:157)
        at 
org.apache.axis2.transport.http.AxisServlet.initConfigContext(AxisServlet.java:511)
        at 
org.apache.axis2.transport.http.AxisServlet.init(AxisServlet.java:431)
        at 
org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1161)
        at 
org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:981)
        at 
org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4058)
        at 
org.apache.catalina.core.StandardContext.start(StandardContext.java:4364)
        at 
org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
        at 
org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)
        at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:829)
        at 
org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:718)
        at 
org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:490)
        at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1147)
        at 
org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
        at 
org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
        at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
        at 
org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
        at 
org.apache.catalina.core.StandardService.start(StandardService.java:516)
        at 
org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
        at org.apache.catalina.startup.Catalina.start(Catalina.java:578)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:79)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:618)
        at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)

2) This is the trace that is created when Jaxws call to 
createConfigurationContext spawn SimpleHttpServer at every client invocation
        at 
org.apache.axis2.transport.http.SimpleHTTPServer.<init>(SimpleHTTPServer.java:81)
        at java.lang.Class.newInstanceImpl(Native Method)
        at java.lang.Class.newInstance(Class.java:1300)
        at 
org.apache.axis2.deployment.AxisConfigBuilder.processTransportReceivers(AxisConfigBuilder.java:581)
        at 
org.apache.axis2.deployment.AxisConfigBuilder.populateConfig(AxisConfigBuilder.java:125)
        at 
org.apache.axis2.deployment.DeploymentEngine.populateAxisConfiguration(DeploymentEngine.java:641)
        at 
org.apache.axis2.deployment.FileSystemConfigurator.getAxisConfiguration(FileSystemConfigurator.java:116)
        at 
org.apache.axis2.context.ConfigurationContextFactory.createConfigurationContext(ConfigurationContextFactory.java:68)
        at 
org.apache.axis2.context.ConfigurationContextFactory.createConfigurationContextFromFileSystem(ConfigurationContextFactory.java:184)
        at 
org.apache.axis2.jaxws.ClientConfigurationFactory.getClientConfigurationContext(ClientConfigurationFactory.java:116)
        at 
org.apache.axis2.jaxws.description.impl.DescriptionFactoryImpl.createServiceDescription(DescriptionFactoryImpl.java:89)
        at 
org.apache.axis2.jaxws.description.impl.DescriptionFactoryImpl.createServiceDescription(DescriptionFactoryImpl.java:76)
        at 
org.apache.axis2.jaxws.description.DescriptionFactory.createServiceDescription(DescriptionFactory.java:75)
        at 
org.apache.axis2.jaxws.spi.ServiceDelegate.<init>(ServiceDelegate.java:208)
        at 
org.apache.axis2.jaxws.spi.Provider.createServiceDelegate(Provider.java:59)
        at javax.xml.ws.Service.<init>(Service.java:36)
        at 
org.apache.axis2.jaxws.samples.client.echo.EchoService.<init>(EchoService.java:46)
        at 
org.apache.axis2.jaxws.samples.client.echo.EchoServicePortProxy$Descriptor.<init>(EchoServicePortProxy.java:49)
        at 
org.apache.axis2.jaxws.samples.client.echo.EchoServicePortProxy.<init>(EchoServicePortProxy.java:96)
        at 
org.apache.axis2.jaxws.samples.client.SampleClient.buildAsync(SampleClient.java:320)
        at 
org.apache.axis2.jaxws.samples.servlet.EchoPingSampleServlet.processRequest(EchoPingSampleServlet.java:136)
        at 
org.apache.axis2.jaxws.samples.servlet.EchoPingSampleServlet.doPost(EchoPingSampleServlet.java:66)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
        at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
        at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
        at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
        at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
        at 
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
        at 
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
        at 
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
        at java.lang.Thread.run(Thread.java:810)

I think the correct solution here for a war based application is to have a 
AsyncResponseServlet that would act as a async response listener. We should 
elemenate use of SimpleHttpServer except in a thinclient environment.


> JAXWS Sample - Asynchronous Echo with Async Communication doesn't work
> ----------------------------------------------------------------------
>
>                 Key: AXIS2-3647
>                 URL: https://issues.apache.org/jira/browse/AXIS2-3647
>             Project: Axis 2.0 (Axis2)
>          Issue Type: Bug
>          Components: jaxws
>            Reporter: Davanum Srinivas
>            Assignee: Roy A. Wood Jr.
>            Priority: Blocker
>             Fix For: 1.4
>
>
> Deploy the jaxws-samples war into tomcat, point your browser to 
> http://yourhost:port/jaxws-samples/demoEchoPing and try the "Asynchronous 
> Echo with Async Communication" scenario.
> thanks,
> dims

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to