[jbossws-issues] [JBoss JIRA] (JBWS-3778) WS-Discovery and IPv6

R Searls (JIRA) issues at jboss.org
Wed Apr 2 11:07:13 EDT 2014


    [ https://issues.jboss.org/browse/JBWS-3778?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12958553#comment-12958553 ] 

R Searls commented on JBWS-3778:
--------------------------------

I do not believe this is a bug but expected behavior.  Section 4.4, Default Sending 
Algorithm in RFC 1933, "Transition Mechanisms for IPv6 Hosts and Routers" explains 
the cause of the initial java.net.SocketException that is thrown.[1]  Because this
is a IPv6 ONLY network the router has no record of any IPv4 addresses, even the
multicast address,239.255.255.250 is unknown.  The router has algorithms for destination 
address lookup.  When an address can not be resolve, the router must treat it as 
"unreachable", hence the SocketException.

There is no clean solution to this issue because there is no way for an application 
to know if the network environment in which it is running is a mixed node (IPv4/IPv6) 
network and the thrown error indicates a true failure in the env or if the app is 
running in a single node type (IPv6 only nodes or UPv4 only nodes) network and the 
failure is expected.

[4] http://tools.ietf.org/html/rfc1933

                
> WS-Discovery and IPv6
> ---------------------
>
>                 Key: JBWS-3778
>                 URL: https://issues.jboss.org/browse/JBWS-3778
>             Project: JBoss Web Services
>          Issue Type: Bug
>      Security Level: Public(Everyone can see) 
>          Components: jbossws-cxf, jbossws-integration
>            Reporter: Alessio Soldano
>            Assignee: R Searls
>             Fix For: jbossws-cxf-5.0
>
>
> Apache CXF WSDiscoveryServiceImpl does
> {code}
> udpEndpoint.publish("soap.udp://239.255.255.250:3702");
> {code}
> which is fine as long as an IPv4 network is available.
> This can lead to the following exception when on a pure IPv6 network:
> {noformat}
> 06:25:53,342 WARNING [org.apache.cxf.ws.discovery.WSDiscoveryService] (MSC service thread 1-2) Could not start WS-Discovery Service.: javax.xml.ws.WebServiceException: java.lang.RuntimeException: java.net.SocketException: No such device
> 	at org.apache.cxf.jaxws.EndpointImpl.doPublish(EndpointImpl.java:371) [cxf-rt-frontend-jaxws-2.7.10.redhat-1.jar:2.7.10.redhat-1]
> 	at org.apache.cxf.jaxws.EndpointImpl.publish(EndpointImpl.java:251) [cxf-rt-frontend-jaxws-2.7.10.redhat-1.jar:2.7.10.redhat-1]
> 	at org.jboss.wsf.stack.cxf.client.ProviderImpl$DelegateEndpointImpl.publish(ProviderImpl.java:421) [jbossws-cxf-client-4.3.0.Final.jar:4.3.0.Final]
> 	at org.apache.cxf.ws.discovery.internal.WSDiscoveryServiceImpl.startup(WSDiscoveryServiceImpl.java:247) [cxf-services-ws-discovery-api-2.7.10.redhat-1.jar:2.7.10.redhat-1]
> 	at org.apache.cxf.ws.discovery.internal.WSDiscoveryServiceImpl.serverStarted(WSDiscoveryServiceImpl.java:153) [cxf-services-ws-discovery-api-2.7.10.redhat-1.jar:2.7.10.redhat-1]
> 	at org.apache.cxf.ws.discovery.listeners.WSDiscoveryServerListener.startServer(WSDiscoveryServerListener.java:73) [cxf-services-ws-discovery-api-2.7.10.redhat-1.jar:2.7.10.redhat-1]
> 	at org.apache.cxf.bus.managers.ServerLifeCycleManagerImpl.startServer(ServerLifeCycleManagerImpl.java:61) [cxf-rt-core-2.7.10.redhat-1.jar:2.7.10.redhat-1]
> 	at org.apache.cxf.endpoint.ServerImpl.start(ServerImpl.java:146) [cxf-api-2.7.10.redhat-1.jar:2.7.10.redhat-1]
> 	at org.apache.cxf.jaxws.EndpointImpl.doPublish(EndpointImpl.java:362) [cxf-rt-frontend-jaxws-2.7.10.redhat-1.jar:2.7.10.redhat-1]
> 	at org.jboss.wsf.stack.cxf.deployment.EndpointImpl.doPublish(EndpointImpl.java:66) [jbossws-cxf-server-4.3.0.Final.jar:4.3.0.Final]
> 	at org.apache.cxf.jaxws.EndpointImpl.publish(EndpointImpl.java:251) [cxf-rt-frontend-jaxws-2.7.10.redhat-1.jar:2.7.10.redhat-1]
> 	at org.apache.cxf.jaxws.EndpointImpl.publish(EndpointImpl.java:539) [cxf-rt-frontend-jaxws-2.7.10.redhat-1.jar:2.7.10.redhat-1]
> 	at org.jboss.wsf.stack.cxf.configuration.NonSpringBusHolder.configure(NonSpringBusHolder.java:118) [jbossws-cxf-server-4.3.0.Final.jar:4.3.0.Final]
> 	at org.jboss.wsf.stack.cxf.deployment.aspect.BusDeploymentAspect.startDeploymentBus(BusDeploymentAspect.java:137) [jbossws-cxf-server-4.3.0.Final.jar:4.3.0.Final]
> 	at org.jboss.wsf.stack.cxf.deployment.aspect.BusDeploymentAspect.start(BusDeploymentAspect.java:69) [jbossws-cxf-server-4.3.0.Final.jar:4.3.0.Final]
> 	at org.jboss.as.webservices.deployers.AspectDeploymentProcessor.deploy(AspectDeploymentProcessor.java:74) [jboss-as-webservices-server-integration-7.4.0.Final-redhat-6.jar:7.4.0.Final-redhat-6]
> 	at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:159)
> 	at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1980)
> 	at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1913)
> 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [rt.jar:1.8.0]
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [rt.jar:1.8.0]
> 	at java.lang.Thread.run(Thread.java:744) [rt.jar:1.8.0]
> Caused by: java.lang.RuntimeException: java.net.SocketException: No such device
> 	at org.jboss.wsf.stack.cxf.addons.transports.udp.UDPDestination.activate(UDPDestination.java:201) [jbossws-cxf-transports-udp-4.3.0.Final.jar:4.3.0.Final]
> 	at org.apache.cxf.transport.AbstractObservable.setMessageObserver(AbstractObservable.java:49) [cxf-api-2.7.10.redhat-1.jar:2.7.10.redhat-1]
> 	at org.apache.cxf.binding.AbstractBaseBindingFactory.addListener(AbstractBaseBindingFactory.java:95) [cxf-api-2.7.10.redhat-1.jar:2.7.10.redhat-1]
> 	at org.apache.cxf.binding.soap.SoapBindingFactory.addListener(SoapBindingFactory.java:893) [cxf-rt-bindings-soap-2.7.10.redhat-1.jar:2.7.10.redhat-1]
> 	at org.apache.cxf.endpoint.ServerImpl.start(ServerImpl.java:131) [cxf-api-2.7.10.redhat-1.jar:2.7.10.redhat-1]
> 	at org.apache.cxf.jaxws.EndpointImpl.doPublish(EndpointImpl.java:362) [cxf-rt-frontend-jaxws-2.7.10.redhat-1.jar:2.7.10.redhat-1]
> 	... 21 more
> Caused by: java.net.SocketException: No such device
> 	at java.net.PlainDatagramSocketImpl.join(Native Method) [rt.jar:1.8.0]
> 	at java.net.AbstractPlainDatagramSocketImpl.join(AbstractPlainDatagramSocketImpl.java:178) [rt.jar:1.8.0]
> 	at java.net.MulticastSocket.joinGroup(MulticastSocket.java:323) [rt.jar:1.8.0]
> 	at org.jboss.wsf.stack.cxf.addons.transports.udp.UDPDestination.activate(UDPDestination.java:185) [jbossws-cxf-transports-udp-4.3.0.Final.jar:4.3.0.Final]
> 	... 26 more
> {noformat}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira



More information about the jbossws-issues mailing list