Hello, I am trying to consume a webservice; since in the end many webservices will be consumed, I am using the Dispatch interface. Since I will not know the effective webservices that are going to be consumed I cannot declare the spring beans beforehand. The webservice declares policies that require STS tokens. The STS defines a MEX (MetaDataExchange).
The basic consumer: Service s = Service.create($WSDL-URL, $QName); Dispatch<> d = s.createDispatch($service-name, $jaxb-context, PAYLOAD); Map<> wss4jProps = createWSS4JProps(); // with username, pwd, certificates, encrypt, sign config ((DispatchImpl<>)d).getClient().getEndpoint().getOutInterceptors().add(new WSS4JOutInterceptor(wss4jProps); d.invoke($request-message); My questions: 1) when creating the service and dispatch objects, all referenced xsd schemas are resolved and loaded. However, by logging the made requests (in ProxySelector), I see that the same xsd get loaded repeatedly. Should they not be cached? 2) The created service itself is a SOAP12 endpoint; however, the MEX endpoint instantiated through STSClient uses SOAP11. The server expects SOAP12 and fails if requested by SOAP11. How do I force the MEX call to use SOAP12 instead of SOAP11? 3) Although the MEX request fails, the invocation continues to call the STS. Since STSClient creates a new Endpoint, my wss4j settings on the Dispatch have no effect. How can I make the STSClient Endpoint inherit its Dispatch's wss4j settings? Or how can I identify the created Endpoint in a ClientLifecycleListener to repeat the wss4j settings? 4) Within the wss4j settings I also include Keystore information. Because most of the information comes from the application, I am going to preconfigure a Crypto object by SIG_PROP_REF_ID, which contains the name of a context property. Which one is the effective context to add the Crypto object to for the implicit STSClient Endpoint request? Thanks in advance, Dieter
