Hide Forgot
Date of First Response: 2010-02-04 09:51:39 project_key: SOA If we try to retrieve any service with the jUDDI client via JAXWSTransport we get the following Exception: Cannot obtain wsdl service: {urn:uddi-org:v3_service}UDDI_Security_Port we have [{urn:uddi-org:v3_service}UDDI_Service] org.jboss.ws.metadata.builder.jaxws.JAXWSClientMetaDataBuilder.buildMetaDataInternal(JAXWSClientMetaDataBuilder.java:137) at org.jboss.ws.metadata.builder.jaxws.JAXWSClientMetaDataBuilder.buildMetaData(JAXWSClientMetaDataBuilder.java:86) at org.jboss.ws.core.jaxws.spi.ServiceDelegateImpl.<init>(ServiceDelegateImpl.java:137) at org.jboss.ws.core.jaxws.spi.ProviderImpl.createServiceDelegate(ProviderImpl.java:63) at javax.xml.ws.Service.<init>(Service.java:79) at javax.xml.ws.Service.create(Service.java:96) at org.jboss.soa.esb.qa.tests.failover.soa5.juddiv3.tmp.SubscriptionTest.testServiceRetrievalOriginal(SubscriptionTest.java:82) 23 lines not shown. This is most probably caused due to the content of the published WSDL documents. HOW-TO REPRODUCE: --------------------------------- POSSIBILITY A: 1) use attached quickstart POSSIBILITY B: 1) configure a cluster with 2 intances. 2) add a node to client config on instance 1 which points to instance 2. Use JAXWSTransport 3) repeat step 2) on instance 2 - node must point to instance 1 5) add clerks to juddi client config on instance 1 and instace 2. 6) run both instances and check subscriptions in juddi console. WORKAROUND ----------------------- The services in question may be obtained like this: QName portName = new QName("urn:uddi-org:v3_service", "UDDI_Security_Port"); // This is used by jUDDI client //QName qName = new QName("urn:uddi-org:v3_service", "UDDI_Sercurity_Port"); QName serviceName = new QName("urn:uddi-org:v3_service", "UDDI_Service"); Service service = Service.create(new URL("http://127.0.0.1:8080/juddiv3/services/subscription?wsdl"), serviceName); UDDISecurityPortType securityService = (UDDISecurityPortType) service.getPort(portName, UDDISecurityPortType.class);
Attachment: Added: juddi-quickstart.zip
The wsdl defines everything as a port within the UDDI_Service
Well one thing. I went over all the getUDDI***Service() methods and getSecurityService throws Fatal Error] :-1:-1: Premature end of file. [testng] org.apache.juddi.v3.client.transport.TransportException: javax.wsdl.WSDLException: WSDLException (at /definitions/import[1]): faultCode=PARSER_ERROR: Problem parsing 'http://127.0.0.1:8080/juddiv3/services/security?wsdl&resource=uddi_vs_v3_binding.wsdl'.: org.xml.sax.SAXParseException: Premature end of file. I'm not sure why though. The WSDL looks fine.
Link: Added: This issue depends JBESB-3174
Attachment: Added: juddiv3.war
Attachment: Removed: juddiv3.war
Has to rejig all the WSDL to get the juddi uddi-tck tests to read, the shipped wsdl does not appear to be correct. The only failing test seems to be the following Running org.apache.juddi.v3.tck.UDDI_090_SubscriptionListenerIntegrationTest Going to read from file: /home/kevin/juddi/juddiv3/uddi-tck/temp/uddiclient.log java.io.FileNotFoundException: /home/kevin/juddi/juddiv3/uddi-tck/temp/uddiclient.log (No such file or directory) but this appears to be an issue with a drop file not existing rather than the WS part of the test. Not sure if this is a test issue or an indication of other problems.
Updated in ESB codebase, will be in next merge.
Verified on CR1.
Link: Added: This issue related SOA-2425