You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by dk...@apache.org on 2012/08/16 23:05:22 UTC
svn commit: r1374057 -
/cxf/trunk/services/ws-discovery/ws-discovery-api/src/main/java/org/apache/cxf/ws/discovery/WSDiscoveryClient.java
Author: dkulp
Date: Thu Aug 16 21:05:21 2012
New Revision: 1374057
URL: http://svn.apache.org/viewvc?rev=1374057&view=rev
Log:
Make sure the correct "To" address is used in the ws-addressing header
Modified:
cxf/trunk/services/ws-discovery/ws-discovery-api/src/main/java/org/apache/cxf/ws/discovery/WSDiscoveryClient.java
Modified: cxf/trunk/services/ws-discovery/ws-discovery-api/src/main/java/org/apache/cxf/ws/discovery/WSDiscoveryClient.java
URL: http://svn.apache.org/viewvc/cxf/trunk/services/ws-discovery/ws-discovery-api/src/main/java/org/apache/cxf/ws/discovery/WSDiscoveryClient.java?rev=1374057&r1=1374056&r2=1374057&view=diff
==============================================================================
--- cxf/trunk/services/ws-discovery/ws-discovery-api/src/main/java/org/apache/cxf/ws/discovery/WSDiscoveryClient.java (original)
+++ cxf/trunk/services/ws-discovery/ws-discovery-api/src/main/java/org/apache/cxf/ws/discovery/WSDiscoveryClient.java Thu Aug 16 21:05:21 2012
@@ -24,12 +24,18 @@ import java.io.IOException;
import javax.xml.transform.dom.DOMResult;
import javax.xml.transform.dom.DOMSource;
+import javax.xml.ws.BindingProvider;
import javax.xml.ws.EndpointReference;
import javax.xml.ws.soap.SOAPBinding;
import javax.xml.ws.wsaddressing.W3CEndpointReference;
import org.apache.cxf.Bus;
import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;
+import org.apache.cxf.ws.addressing.AddressingProperties;
+import org.apache.cxf.ws.addressing.AttributedURIType;
+import org.apache.cxf.ws.addressing.EndpointReferenceType;
+import org.apache.cxf.ws.addressing.JAXWSAConstants;
+import org.apache.cxf.ws.addressing.impl.AddressingPropertiesImpl;
import org.apache.cxf.ws.discovery.wsdl.ByeType;
import org.apache.cxf.ws.discovery.wsdl.DiscoveryProxy;
import org.apache.cxf.ws.discovery.wsdl.HelloType;
@@ -45,7 +51,7 @@ public class WSDiscoveryClient implement
public WSDiscoveryClient() {
}
- private synchronized DiscoveryProxy getClient() {
+ private synchronized DiscoveryProxy getClientInternal() {
if (client == null) {
JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
if (bus != null) {
@@ -54,9 +60,27 @@ public class WSDiscoveryClient implement
factory.setBindingId(SOAPBinding.SOAP12HTTP_BINDING);
factory.setAddress(address);
client = factory.create(DiscoveryProxy.class);
+ ((BindingProvider)client).getRequestContext()
+ .put("thread.local.request.context", Boolean.TRUE);
}
return client;
}
+
+ private DiscoveryProxy getClient() {
+ DiscoveryProxy c = getClientInternal();
+
+ EndpointReferenceType to = new EndpointReferenceType();
+ AddressingProperties addrProperties = new AddressingPropertiesImpl();
+ AttributedURIType epr = new AttributedURIType();
+ epr.setValue("urn:docs-oasis-open-org:ws-dd:ns:discovery:2009:01");
+ to.setAddress(epr);
+ addrProperties.setTo(to);
+
+ ((BindingProvider)c).getRequestContext()
+ .put(JAXWSAConstants.CLIENT_ADDRESSING_PROPERTIES, addrProperties);
+ return c;
+ }
+
public synchronized void close() throws IOException {
if (client != null) {
((Closeable)client).close();
@@ -72,6 +96,7 @@ public class WSDiscoveryClient implement
DiscoveryProxy c = getClient();
c.helloOp(hello);
}
+
public void register(EndpointReference ert) {
HelloType hello = new HelloType();
hello.setEndpointReference(toW3CEndpointReference(ert));