[
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]