-
Bug
-
Resolution: Done
-
Major
-
EAP_EWP 5.2.0
-
JBoss Enterprise Application 5.2.0
-
-
-
Documented as Resolved Issue
-
NEW
If you define two web services with the same serviceName but different endpointInterface, targetNamespace and portName, you get the error org.jboss.ws.WSException: Cannot find port in wsdl:
I've done some digging and this is because of the changes introduced in JBPAPP-9520 and possibly JBPAPP-8018. The issue is that the because the temp file process has been improved so that now only one temp WSDL is created per WS. This has an affect on how the method replaceAddressLocation works. The first WS is processed fine, a temp WSDL is created. When the second WS is processed and it's definitions are added to the wsMetaData map using the tmp file as the key, it isn't added as the previous WS file already exists (in fact the method to add it isn't even called). So when we fetch the WSDLDefinitions, the old wsMetaData is returned. A check in MetaDataBuilder.java checks if the wsdlPortName matches the portname currently being processed and this fails causing the error we see.
A workaround would be to use wsdlLocation and include them in your application, however this causes a hang in JBoss after the services have been deployed with the WARN below
10:31:45,463 WARN [JBossEntityResolver] Trying to resolve systemId as a non-file URL: http://127.0.0.1:8080/DuplicateServices/HelloWorld?wsdl&resource=HelloWorldInterface_PortType2303785186919836228.wsdl
- relates to
-
JBPAPP-9520 Change temporary WSDL and XSD file names in JBossWS
- Closed