Uploaded image for project: 'JBoss Enterprise Application Platform'
  1. JBoss Enterprise Application Platform
  2. JBEAP-5441

(7.0.z) WS-Discovery doesn't work in IPv6-only network

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • Major
    • 7.0.2.CR1, 7.0.2.GA
    • 7.0.0.GA
    • Web Services
    • None
    • Hide

      Disable IPv4 stack and enable IPv6 for loopback on your testing machine and run WS-D test from jbossws-cxf testsuite:

      mvn -Pwildfly1000,testsuite -Dtest=WSDiscoveryTestCase -Dserver.home=/path/to/eap -Dipv6 -Djboss.bind.address=[::1]
      
      Show
      Disable IPv4 stack and enable IPv6 for loopback on your testing machine and run WS-D test from jbossws-cxf testsuite: mvn -Pwildfly1000,testsuite -Dtest=WSDiscoveryTestCase -Dserver.home=/path/to/eap -Dipv6 -Djboss.bind.address=[::1]
    • EAP 7.0.2

    Description

      Currently, WS-Discovery at EAP doesn't work in IPv6-only network.

      The cause of this is that CXF implementation has hardcoded IPv4 multicast address, see https://issues.apache.org/jira/browse/CXF-6172.

      It can work in dualstack network, when server is running with IPv6 address and WS discovering is done via IPv4 multicast. However, it should work with IPv6 too http://docs.oasis-open.org/ws-dd/discovery/1.1/os/wsdd-discovery-1.1-spec-os.html#_Toc234231817.

      Server log:

      [0m[0m05:01:02,892 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-2) WFLYSRV0027: Starting deployment of "jaxws-samples-wsdd.war" (runtime-name: "jaxws-samples-wsdd.war")
      [0m[0m05:01:02,975 INFO  [org.jboss.ws.cxf.metadata] (MSC service thread 1-3) JBWS024061: Adding service endpoint metadata: id=org.jboss.test.ws.jaxws.samples.wsdd.ServiceImpl
       address=http://[::1]:8080/jaxws-samples-wsdd/WSDDService
       implementor=org.jboss.test.ws.jaxws.samples.wsdd.ServiceImpl
       serviceName={http://www.jboss.org/jbossws/ws-extensions/wsdd}WSDDService
       portName={http://www.jboss.org/jbossws/ws-extensions/wsdd}WSDDPort
       annotationWsdlLocation=null
       wsdlLocationOverride=null
       mtomEnabled=false
      [0m[0m05:01:02,998 INFO  [org.apache.cxf.wsdl.service.factory.ReflectionServiceFactoryBean] (MSC service thread 1-3) Creating Service {http://www.jboss.org/jbossws/ws-extensions/wsdd}WSDDService from class org.jboss.test.ws.jaxws.samples.wsdd.ServiceIface
      [0m[0m05:01:03,029 INFO  [org.apache.cxf.endpoint.ServerImpl] (MSC service thread 1-3) Setting the server's publish address to be http://[::1]:8080/jaxws-samples-wsdd/WSDDService
      [0m[0m05:01:03,328 INFO  [org.apache.cxf.wsdl.service.factory.ReflectionServiceFactoryBean] (MSC service thread 1-3) Creating Service {http://docs.oasis-open.org/ws-dd/ns/discovery/2009/01}Discovery from WSDL: classpath:/org/apache/cxf/ws/discovery/wsdl/wsdd-discovery-1.1-wsdl-os.wsdl
      [0m[0m05:01:03,476 INFO  [org.apache.cxf.endpoint.ServerImpl] (MSC service thread 1-3) Setting the server's publish address to be soap.udp://239.255.255.250:3702
      [0m[31m05:01:03,486 ERROR [stderr] (MSC service thread 1-3) java.net.SocketException: No such device
      [0m[31m05:01:03,489 ERROR [stderr] (MSC service thread 1-3) 	at java.net.PlainDatagramSocketImpl.join(Native Method)
      [0m[31m05:01:03,490 ERROR [stderr] (MSC service thread 1-3) 	at java.net.AbstractPlainDatagramSocketImpl.join(AbstractPlainDatagramSocketImpl.java:179)
      [0m[31m05:01:03,492 ERROR [stderr] (MSC service thread 1-3) 	at java.net.MulticastSocket.joinGroup(MulticastSocket.java:323)
      [0m[31m05:01:03,493 ERROR [stderr] (MSC service thread 1-3) 	at org.jboss.wsf.stack.cxf.addons.transports.udp.UDPDestination.activate(UDPDestination.java:185)
      [0m[31m05:01:03,495 ERROR [stderr] (MSC service thread 1-3) 	at org.apache.cxf.transport.AbstractObservable.setMessageObserver(AbstractObservable.java:53)
      [0m[31m05:01:03,497 ERROR [stderr] (MSC service thread 1-3) 	at org.apache.cxf.binding.AbstractBindingFactory.addListener(AbstractBindingFactory.java:95)
      [0m[31m05:01:03,499 ERROR [stderr] (MSC service thread 1-3) 	at org.apache.cxf.binding.soap.SoapBindingFactory.addListener(SoapBindingFactory.java:895)
      [0m[31m05:01:03,501 ERROR [stderr] (MSC service thread 1-3) 	at org.apache.cxf.endpoint.ServerImpl.start(ServerImpl.java:123)
      [0m[31m05:01:03,502 ERROR [stderr] (MSC service thread 1-3) 	at org.apache.cxf.jaxws.EndpointImpl.doPublish(EndpointImpl.java:366)
      [0m[31m05:01:03,504 ERROR [stderr] (MSC service thread 1-3) 	at org.apache.cxf.jaxws.EndpointImpl.publish(EndpointImpl.java:255)
      [0m[31m05:01:03,506 ERROR [stderr] (MSC service thread 1-3) 	at org.apache.cxf.ws.discovery.internal.WSDiscoveryServiceImpl.startup(WSDiscoveryServiceImpl.java:248)
      [0m[31m05:01:03,508 ERROR [stderr] (MSC service thread 1-3) 	at org.apache.cxf.ws.discovery.internal.WSDiscoveryServiceImpl.serverStarted(WSDiscoveryServiceImpl.java:154)
      [0m[31m05:01:03,512 ERROR [stderr] (MSC service thread 1-3) 	at org.apache.cxf.ws.discovery.listeners.WSDiscoveryServerListener.startServer(WSDiscoveryServerListener.java:73)
      [0m[31m05:01:03,515 ERROR [stderr] (MSC service thread 1-3) 	at org.apache.cxf.bus.managers.ServerLifeCycleManagerImpl.startServer(ServerLifeCycleManagerImpl.java:61)
      [0m[31m05:01:03,519 ERROR [stderr] (MSC service thread 1-3) 	at org.apache.cxf.endpoint.ServerImpl.start(ServerImpl.java:137)
      [0m[31m05:01:03,521 ERROR [stderr] (MSC service thread 1-3) 	at org.apache.cxf.jaxws.EndpointImpl.doPublish(EndpointImpl.java:366)
      [0m[31m05:01:03,524 ERROR [stderr] (MSC service thread 1-3) 	at org.jboss.wsf.stack.cxf.deployment.EndpointImpl.doPublish(EndpointImpl.java:79)
      [0m[31m05:01:03,527 ERROR [stderr] (MSC service thread 1-3) 	at org.apache.cxf.jaxws.EndpointImpl.publish(EndpointImpl.java:255)
      [0m[31m05:01:03,530 ERROR [stderr] (MSC service thread 1-3) 	at org.apache.cxf.jaxws.EndpointImpl.publish(EndpointImpl.java:543)
      [0m[31m05:01:03,532 ERROR [stderr] (MSC service thread 1-3) 	at org.jboss.wsf.stack.cxf.configuration.BusHolder.configure(BusHolder.java:231)
      [0m[31m05:01:03,535 ERROR [stderr] (MSC service thread 1-3) 	at org.jboss.wsf.stack.cxf.deployment.aspect.BusDeploymentAspect.startDeploymentBus(BusDeploymentAspect.java:97)
      [0m[31m05:01:03,539 ERROR [stderr] (MSC service thread 1-3) 	at org.jboss.wsf.stack.cxf.deployment.aspect.BusDeploymentAspect.start(BusDeploymentAspect.java:59)
      [0m[31m05:01:03,542 ERROR [stderr] (MSC service thread 1-3) 	at org.jboss.as.webservices.deployers.AspectDeploymentProcessor.deploy(AspectDeploymentProcessor.java:73)
      [0m[31m05:01:03,545 ERROR [stderr] (MSC service thread 1-3) 	at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:147)
      [0m[31m05:01:03,548 ERROR [stderr] (MSC service thread 1-3) 	at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1948)
      [0m[31m05:01:03,553 ERROR [stderr] (MSC service thread 1-3) 	at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1881)
      [0m[31m05:01:03,556 ERROR [stderr] (MSC service thread 1-3) 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
      [0m[31m05:01:03,558 ERROR [stderr] (MSC service thread 1-3) 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
      [0m[31m05:01:03,559 ERROR [stderr] (MSC service thread 1-3) 	at java.lang.Thread.run(Thread.java:745)
      [0m[33m05:01:03,560 WARNING [org.apache.cxf.ws.discovery.WSDiscoveryService] (MSC service thread 1-3) 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:375)
      	at org.apache.cxf.jaxws.EndpointImpl.publish(EndpointImpl.java:255)
      	at org.apache.cxf.ws.discovery.internal.WSDiscoveryServiceImpl.startup(WSDiscoveryServiceImpl.java:248)
      	at org.apache.cxf.ws.discovery.internal.WSDiscoveryServiceImpl.serverStarted(WSDiscoveryServiceImpl.java:154)
      	at org.apache.cxf.ws.discovery.listeners.WSDiscoveryServerListener.startServer(WSDiscoveryServerListener.java:73)
      	at org.apache.cxf.bus.managers.ServerLifeCycleManagerImpl.startServer(ServerLifeCycleManagerImpl.java:61)
      	at org.apache.cxf.endpoint.ServerImpl.start(ServerImpl.java:137)
      	at org.apache.cxf.jaxws.EndpointImpl.doPublish(EndpointImpl.java:366)
      	at org.jboss.wsf.stack.cxf.deployment.EndpointImpl.doPublish(EndpointImpl.java:79)
      	at org.apache.cxf.jaxws.EndpointImpl.publish(EndpointImpl.java:255)
      	at org.apache.cxf.jaxws.EndpointImpl.publish(EndpointImpl.java:543)
      	at org.jboss.wsf.stack.cxf.configuration.BusHolder.configure(BusHolder.java:231)
      	at org.jboss.wsf.stack.cxf.deployment.aspect.BusDeploymentAspect.startDeploymentBus(BusDeploymentAspect.java:97)
      	at org.jboss.wsf.stack.cxf.deployment.aspect.BusDeploymentAspect.start(BusDeploymentAspect.java:59)
      	at org.jboss.as.webservices.deployers.AspectDeploymentProcessor.deploy(AspectDeploymentProcessor.java:73)
      	at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:147)
      	at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1948)
      	at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1881)
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
      	at java.lang.Thread.run(Thread.java:745)
      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)
      	at org.apache.cxf.transport.AbstractObservable.setMessageObserver(AbstractObservable.java:53)
      	at org.apache.cxf.binding.AbstractBindingFactory.addListener(AbstractBindingFactory.java:95)
      	at org.apache.cxf.binding.soap.SoapBindingFactory.addListener(SoapBindingFactory.java:895)
      	at org.apache.cxf.endpoint.ServerImpl.start(ServerImpl.java:123)
      	at org.apache.cxf.jaxws.EndpointImpl.doPublish(EndpointImpl.java:366)
      	... 20 more
      Caused by: java.net.SocketException: No such device
      	at java.net.PlainDatagramSocketImpl.join(Native Method)
      	at java.net.AbstractPlainDatagramSocketImpl.join(AbstractPlainDatagramSocketImpl.java:179)
      	at java.net.MulticastSocket.joinGroup(MulticastSocket.java:323)
      	at org.jboss.wsf.stack.cxf.addons.transports.udp.UDPDestination.activate(UDPDestination.java:185)
      	... 25 more
      

      Attachments

        Issue Links

          Activity

            People

              rhn-engineering-ema Jim Ma
              jbliznak@redhat.com Jan Blizňák
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: