javaee / metro-wsit

https://javaee.github.io/metro-wsit/
Other
9 stars 24 forks source link

Multiple wsdls bundled in one war file cause run time mex fail. #232

Closed glassfishrobot closed 17 years ago

glassfishrobot commented 17 years ago

If more than one services bundled in one war file, then the runtime MEX call wiil get all the WSDLs returned and only one of them is processed. This caused failure for JAVAONE demo where the following is throwed for dispatch client with run time mex address of the STS:

Caused by: javax.xml.ws.WebServiceException:

{http://tempuri.org/}

SecurityTokenService is not a valid service. Valid ser vices are:

{http://example.org/wholesaler}

WholesaleService

This is because the service wsdl is returned by mex run time instead the sts wsdl.

Environment

Operating System: All Platform: All

Affected Versions

[current]

glassfishrobot commented 17 years ago

Reported by jdg6688@java.net

glassfishrobot commented 17 years ago

vivekp@java.net said: Assigning to Jitu.

glassfishrobot commented 17 years ago

bbissett@java.net said: I'm just curious about the issue. It sounds like mex is doing what it's supposed to at the basic level – there's no way in a mex Get call to specify the information you'd like returned. So an endpoint should return all its metadata when responding to the request.

Is the root issue that the request is going to an endpoint address instead of an sts address, or is it that the endpoint is returning both an endpoint wsdl and an sts wsdl (if that question makes sense)? I can't tell exactly from the output, but it looks in essence like the dispatch object was created with one endpoint (wholesale service) and then is seeing another one (sts) when the call is made.

glassfishrobot commented 17 years ago

jdg6688@java.net said: The dispatch call is to the STS endpoint. Both the wsdls for the service and the sts are returned in the response and the wsdl for the service is picked.

glassfishrobot commented 17 years ago

jitu@java.net said: If a war file contains multiple WSDL/XSDs, a mex request for endpoint1 could also include WSDL/XSD for endpoint2. This is fixed by finding the transitive closure of the documents for each endpoint. WSEndpoint.getServiceDefinition() will give only that endpoint's documents. This means some customization files may require to be changed since previously the mapping is based on the entire war. This is not a big change(for e.g ?xsd=3 to ?xsd=2)

glassfishrobot commented 17 years ago

jitu@java.net said: EndpointFactory, SDDocumentImpl is changed to find a set of documents required for Endpoint.

glassfishrobot commented 17 years ago

jdg6688@java.net said: Verified

glassfishrobot commented 17 years ago

mmatula@java.net said: This issue was fixed before we created 1.0 branch, so the fix is in 1.0 -> setting target milestone to say so.

glassfishrobot commented 17 years ago

Was assigned to jitu@java.net

glassfishrobot commented 7 years ago

This issue was imported from java.net JIRA WSIT-232

glassfishrobot commented 17 years ago

Marked as fixed on Tuesday, November 13th 2007, 11:46:28 pm