Author: barrettj
Date: Fri Feb 11 17:11:59 2011
New Revision: 1069898
URL: http://svn.apache.org/viewvc?rev=1069898&view=rev
Log:
AXIS2-4948
Patch contributed by Katherine Sanders. Wrong WSDL location returned by
BindingProvider; was using the local filesystem path instead of the endpoint
URL.
Modified:
axis/axis2/java/core/trunk/modules/jaxws-integration/test-resources/wsdl/resourceinjection.wsdl
axis/axis2/java/core/trunk/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/ResourceInjectionTests.java
axis/axis2/java/core/trunk/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/resourceinjection/META-INF/resourceinjection.wsdl
axis/axis2/java/core/trunk/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/resourceinjection/ResourceInjectionPortTypeImpl.java
axis/axis2/java/core/trunk/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/resourceinjection/sei/ResourceInjectionPortType.java
axis/axis2/java/core/trunk/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/resourceinjection/sei/ResourceInjectionService.java
axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/BindingProvider.java
axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/addressing/factory/impl/Axis2EndpointReferenceFactoryImpl.java
axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/context/WebServiceContextImpl.java
Modified:
axis/axis2/java/core/trunk/modules/jaxws-integration/test-resources/wsdl/resourceinjection.wsdl
URL:
http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/jaxws-integration/test-resources/wsdl/resourceinjection.wsdl?rev=1069898&r1=1069897&r2=1069898&view=diff
==============================================================================
---
axis/axis2/java/core/trunk/modules/jaxws-integration/test-resources/wsdl/resourceinjection.wsdl
(original)
+++
axis/axis2/java/core/trunk/modules/jaxws-integration/test-resources/wsdl/resourceinjection.wsdl
Fri Feb 11 17:11:59 2011
@@ -19,9 +19,9 @@
~ under the License.
-->
-<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:tns="http://resourceinjection.sample.test.org"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" name="ResourceInjection"
targetNamespace="http://resourceinjection.sample.test.org">
+<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:tns="http://resourceinjection.sample.jaxws.axis2.apache.org"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" name="ResourceInjection"
targetNamespace="http://resourceinjection.sample.jaxws.axis2.apache.org">
<wsdl:types>
- <xsd:schema targetNamespace="http://resourceinjection.sample.test.org"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <xsd:schema
targetNamespace="http://resourceinjection.sample.jaxws.axis2.apache.org"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="echoResponse">
<xsd:complexType>
<xsd:sequence>
@@ -53,7 +53,7 @@
<wsdl:binding name="ResourceInjectionBinding"
type="tns:ResourceInjectionPortType">
<soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="echo">
- <soap:operation
soapAction="http://resourceinjection.sample.test.org/NewOperation"/>
+ <soap:operation
soapAction="http://resourceinjection.sample.jaxws.axis2.apache.org/NewOperation"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
Modified:
axis/axis2/java/core/trunk/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/ResourceInjectionTests.java
URL:
http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/ResourceInjectionTests.java?rev=1069898&r1=1069897&r2=1069898&view=diff
==============================================================================
---
axis/axis2/java/core/trunk/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/ResourceInjectionTests.java
(original)
+++
axis/axis2/java/core/trunk/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/ResourceInjectionTests.java
Fri Feb 11 17:11:59 2011
@@ -19,14 +19,15 @@
package org.apache.axis2.jaxws.sample;
+import javax.xml.ws.BindingProvider;
+
import junit.framework.Test;
import junit.framework.TestSuite;
+
import org.apache.axis2.jaxws.framework.AbstractTestCase;
import
org.apache.axis2.jaxws.sample.resourceinjection.sei.ResourceInjectionPortType;
import
org.apache.axis2.jaxws.sample.resourceinjection.sei.ResourceInjectionService;
-import javax.xml.ws.BindingProvider;
-
public class ResourceInjectionTests extends AbstractTestCase {
String axisEndpoint =
"http://localhost:6060/axis2/services/ResourceInjectionService.ResourceInjectionPortTypeImplPort";
@@ -66,4 +67,30 @@ public class ResourceInjectionTests exte
}
+ /*
+ * TODO: This test is currently disabled. The path tested assumes the
webcontainer will
+ * receive the request for <EPR_address>/?wsdl and redirect appropriately
to either
+ * the on-disk WSDL or, if an on-disk WSDL does not exist, a generated
WSDL. The
+ * Axis2 test webserver/webcontainer has no such ability currently. To
support this,
+ * the test SimpleServer would have to be coded to detect inbound requests
appended with
+ * /?wsdl and redirect accordingly.
+ *
+ * See:
jaxws/src/org/apache/axis2/jaxws/context/WebServiceContextImpl.java line 146
+ */
+ public void _testResourceInjectionEndpointReference() {
+ ResourceInjectionPortType proxy = getProxy();
+ String response = proxy.testInjection("epr");
+ assertTrue("The response was null", response != null);
+ assertTrue("The response was not succesful: " + response, response
+ .indexOf("SUCCESS") >= 0);
+
+ // Make sure the EPR contains the fields we expect
+ assertTrue("The EPR did not contain EndpointReference", response
+ .indexOf("EndpointReference") >= 0);
+ assertTrue("The EPR did not contain ServiceName", response
+ .indexOf("ServiceName") >= 0);
+ assertTrue("The EPR did not contain wsdlLocation", response
+ .indexOf("wsdlLocation") >= 0);
+ }
+
}
Modified:
axis/axis2/java/core/trunk/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/resourceinjection/META-INF/resourceinjection.wsdl
URL:
http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/resourceinjection/META-INF/resourceinjection.wsdl?rev=1069898&r1=1069897&r2=1069898&view=diff
==============================================================================
---
axis/axis2/java/core/trunk/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/resourceinjection/META-INF/resourceinjection.wsdl
(original)
+++
axis/axis2/java/core/trunk/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/resourceinjection/META-INF/resourceinjection.wsdl
Fri Feb 11 17:11:59 2011
@@ -19,9 +19,9 @@
~ under the License.
-->
-<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:tns="http://resourceinjection.sample.test.org"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="ResourceInjection"
targetNamespace="http://resourceinjection.sample.test.org">
+<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:tns="http://resourceinjection.sample.jaxws.axis2.apache.org"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="ResourceInjection"
targetNamespace="http://resourceinjection.sample.jaxws.axis2.apache.org">
<wsdl:types>
- <xsd:schema targetNamespace="http://resourceinjection.sample.test.org"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <xsd:schema
targetNamespace="http://resourceinjection.sample.jaxws.axis2.apache.org"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="testInjectionResponse">
<xsd:complexType>
<xsd:sequence>
@@ -53,7 +53,7 @@
<wsdl:binding name="ResourceInjectionBinding"
type="tns:ResourceInjectionPortType">
<soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="testInjection">
- <soap:operation
soapAction="http://resourceinjection.sample.test.org/testInjection"/>
+ <soap:operation
soapAction="http://resourceinjection.sample.jaxws.axis2.apache.org/testInjection"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
@@ -67,4 +67,4 @@
<soap:address
location="http://localhost:6060/axis2/services/ResourceInjectionService"/>
</wsdl:port>
</wsdl:service>
-</wsdl:definitions>
\ No newline at end of file
+</wsdl:definitions>
Modified:
axis/axis2/java/core/trunk/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/resourceinjection/ResourceInjectionPortTypeImpl.java
URL:
http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/resourceinjection/ResourceInjectionPortTypeImpl.java?rev=1069898&r1=1069897&r2=1069898&view=diff
==============================================================================
---
axis/axis2/java/core/trunk/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/resourceinjection/ResourceInjectionPortTypeImpl.java
(original)
+++
axis/axis2/java/core/trunk/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/resourceinjection/ResourceInjectionPortTypeImpl.java
Fri Feb 11 17:11:59 2011
@@ -28,6 +28,7 @@ import javax.annotation.PreDestroy;
import javax.annotation.Resource;
import javax.jws.WebService;
import javax.xml.namespace.QName;
+import javax.xml.ws.EndpointReference;
import javax.xml.ws.WebServiceContext;
import javax.xml.ws.handler.MessageContext;
@@ -36,6 +37,7 @@ import javax.xml.ws.handler.MessageConte
*
*/
@WebService(serviceName="ResourceInjectionService",
+ wsdlLocation="META-INF/resourceinjection.wsdl",
endpointInterface="org.apache.axis2.jaxws.sample.resourceinjection.sei.ResourceInjectionPortType")
public class ResourceInjectionPortTypeImpl implements
ResourceInjectionPortType {
@@ -50,10 +52,29 @@ import javax.xml.ws.handler.MessageConte
*/
public String testInjection(String arg) {
-
if (ctx == null) {
return "FAILURE: The WebServiceContext was not set";
}
+
+ if ("sample".equals(arg)) {
+ return basicInjectionTest();
+ } else if ("epr".equals(arg)) {
+ return eprInjectionTest();
+ } else {
+ return "FAILURE: Unexpected test type " + arg;
+ }
+ }
+
+ private String eprInjectionTest() {
+ EndpointReference epr = ctx.getEndpointReference();
+
+ if (epr == null) {
+ return "FAILURE: The context did not return and endpoint
reference";
+ }
+ return "SUCCESS: " + epr.toString();
+ }
+
+ private String basicInjectionTest() {
MessageContext msgContext = ctx.getMessageContext();
if (msgContext == null) {
Modified:
axis/axis2/java/core/trunk/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/resourceinjection/sei/ResourceInjectionPortType.java
URL:
http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/resourceinjection/sei/ResourceInjectionPortType.java?rev=1069898&r1=1069897&r2=1069898&view=diff
==============================================================================
---
axis/axis2/java/core/trunk/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/resourceinjection/sei/ResourceInjectionPortType.java
(original)
+++
axis/axis2/java/core/trunk/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/resourceinjection/sei/ResourceInjectionPortType.java
Fri Feb 11 17:11:59 2011
@@ -27,7 +27,7 @@ import javax.jws.WebService;
import javax.xml.ws.RequestWrapper;
import javax.xml.ws.ResponseWrapper;
-@WebService(name = "ResourceInjectionPortType", targetNamespace =
"http://resourceinjection.sample.test.org")
+@WebService(name = "ResourceInjectionPortType", targetNamespace =
"http://resourceinjection.sample.jaxws.axis2.apache.org")
public interface ResourceInjectionPortType {
@@ -37,10 +37,10 @@ public interface ResourceInjectionPortTy
* @return
* returns java.lang.String
*/
- @WebMethod(action =
"http://resourceinjection.sample.test.org/NewOperation")
+ @WebMethod(action =
"http://resourceinjection.sample.jaxws.axis2.apache.org/NewOperation")
@WebResult(name = "response", targetNamespace = "")
- @RequestWrapper(localName = "testInjection", targetNamespace =
"http://resourceinjection.sample.test.org", className =
"org.test.sample.resourceinjection.TestInjection")
- @ResponseWrapper(localName = "testInjectionResponse", targetNamespace =
"http://resourceinjection.sample.test.org", className =
"org.test.sample.resourceinjection.TestInjectionResponse")
+ @RequestWrapper(localName = "testInjection", targetNamespace =
"http://resourceinjection.sample.jaxws.axis2.apache.org", className =
"org.apache.axis2.jaxws.sample.resourceinjection.TestInjection")
+ @ResponseWrapper(localName = "testInjectionResponse", targetNamespace =
"http://resourceinjection.sample.jaxws.axis2.apache.org", className =
"org.apache.axis2.jaxws.sample.resourceinjection.TestInjectionResponse")
public String testInjection(
@WebParam(name = "arg", targetNamespace = "")
String arg);
Modified:
axis/axis2/java/core/trunk/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/resourceinjection/sei/ResourceInjectionService.java
URL:
http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/resourceinjection/sei/ResourceInjectionService.java?rev=1069898&r1=1069897&r2=1069898&view=diff
==============================================================================
---
axis/axis2/java/core/trunk/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/resourceinjection/sei/ResourceInjectionService.java
(original)
+++
axis/axis2/java/core/trunk/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/resourceinjection/sei/ResourceInjectionService.java
Fri Feb 11 17:11:59 2011
@@ -28,7 +28,7 @@ import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;
-@WebServiceClient(name = "ResourceInjectionService", targetNamespace =
"http://resourceinjection.sample.test.org", wsdlLocation =
"resourceinjection.wsdl")
+@WebServiceClient(name = "ResourceInjectionService", targetNamespace =
"http://resourceinjection.sample.jaxws.axis2.apache.org", wsdlLocation =
"resourceinjection.wsdl")
public class ResourceInjectionService
extends Service
{
@@ -58,7 +58,7 @@ public class ResourceInjectionService
}
public ResourceInjectionService() {
- super(RESOURCEINJECTIONSERVICE_WSDL_LOCATION, new
QName("http://resourceinjection.sample.test.org", "ResourceInjectionService"));
+ super(RESOURCEINJECTIONSERVICE_WSDL_LOCATION, new
QName("http://resourceinjection.sample.jaxws.axis2.apache.org",
"ResourceInjectionService"));
}
/**
@@ -68,7 +68,7 @@ public class ResourceInjectionService
*/
@WebEndpoint(name = "ResourceInjectionPort")
public ResourceInjectionPortType getResourceInjectionPort() {
- return (ResourceInjectionPortType)super.getPort(new
QName("http://resourceinjection.sample.test.org", "ResourceInjectionPort"),
ResourceInjectionPortType.class);
+ return (ResourceInjectionPortType)super.getPort(new
QName("http://resourceinjection.sample.jaxws.axis2.apache.org",
"ResourceInjectionPort"), ResourceInjectionPortType.class);
}
}
Modified:
axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/BindingProvider.java
URL:
http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/BindingProvider.java?rev=1069898&r1=1069897&r2=1069898&view=diff
==============================================================================
---
axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/BindingProvider.java
(original)
+++
axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/BindingProvider.java
Fri Feb 11 17:11:59 2011
@@ -32,7 +32,6 @@ import org.apache.axis2.jaxws.core.Invoc
import org.apache.axis2.jaxws.core.MessageContext;
import org.apache.axis2.jaxws.description.EndpointDescription;
import org.apache.axis2.jaxws.description.ServiceDescription;
-import org.apache.axis2.jaxws.description.ServiceDescriptionWSDL;
import org.apache.axis2.jaxws.handler.HandlerResolverImpl;
import org.apache.axis2.jaxws.i18n.Messages;
import org.apache.axis2.jaxws.spi.ServiceDelegate;
@@ -409,7 +408,7 @@ public class BindingProvider implements
address = endpointDesc.getEndpointAddress();
QName service = endpointDesc.getServiceQName();
QName port = endpointDesc.getPortQName();
- String wsdlLocation = ((ServiceDescriptionWSDL)
endpointDesc.getServiceDescription()).getWSDLLocation();
+ String wsdlLocation = "/?wsdl"; // let the webcontainer
redirect us to the real WSDL URL; it knows where it is
epr =
EndpointReferenceUtils.createAxis2EndpointReference(address, service, port,
wsdlLocation, addressingNamespace);
Modified:
axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/addressing/factory/impl/Axis2EndpointReferenceFactoryImpl.java
URL:
http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/addressing/factory/impl/Axis2EndpointReferenceFactoryImpl.java?rev=1069898&r1=1069897&r2=1069898&view=diff
==============================================================================
---
axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/addressing/factory/impl/Axis2EndpointReferenceFactoryImpl.java
(original)
+++
axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/addressing/factory/impl/Axis2EndpointReferenceFactoryImpl.java
Fri Feb 11 17:11:59 2011
@@ -19,6 +19,11 @@
package org.apache.axis2.jaxws.addressing.factory.impl;
+import java.net.MalformedURLException;
+import java.net.URL;
+
+import javax.xml.namespace.QName;
+
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.description.AxisService;
import org.apache.axis2.jaxws.ExceptionFactory;
@@ -30,15 +35,17 @@ import org.apache.axis2.jaxws.addressing
import org.apache.axis2.jaxws.i18n.Messages;
import org.apache.axis2.jaxws.util.WSDL4JWrapper;
import org.apache.axis2.jaxws.util.WSDLWrapper;
-
-import javax.xml.namespace.QName;
-import java.net.URL;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
/**
* This class produces instances of {@link EndpointReference}.
*
*/
public class Axis2EndpointReferenceFactoryImpl implements
Axis2EndpointReferenceFactory {
+
+ private static final Log log =
LogFactory.getLog(Axis2EndpointReferenceFactoryImpl.class);
+
public Axis2EndpointReferenceFactoryImpl() {
super();
}
@@ -111,12 +118,33 @@ public class Axis2EndpointReferenceFacto
EndpointReferenceUtils.addService(axis2EPR, serviceName, portName,
addressingNamespace);
if (wsdlDocumentLocation != null) {
- URL wsdlURL = new URL(wsdlDocumentLocation);
+
+ URL wsdlURL;
+ try {
+ wsdlURL = new URL(wsdlDocumentLocation);
+ } catch (MalformedURLException e) {
+ // just to keep it clean:
+ if (axis2EPR.getAddress().endsWith("/") &&
wsdlDocumentLocation.startsWith("/")) {
+ wsdlDocumentLocation = axis2EPR.getAddress() +
wsdlDocumentLocation.substring(1);
+ } else {
+ wsdlDocumentLocation = axis2EPR.getAddress() +
wsdlDocumentLocation;
+ }
+ }
+
+ wsdlURL = new URL(wsdlDocumentLocation);
// This is a temporary usage, so use a memory sensitive wrapper
WSDLWrapper wrapper = new WSDL4JWrapper(wsdlURL, true, 2);
if (serviceName != null) {
- if (wrapper.getService(serviceName) == null) {
+
+ QName serviceNameNoTrailingSlash = new QName("");
+ // TODO: why in the world would we have to do this?
+ if (serviceName.getNamespaceURI().endsWith("/")) {
+ String ns = serviceName.getNamespaceURI();
+ serviceNameNoTrailingSlash = new QName(ns.substring(0,
ns.length()-1), serviceName.getLocalPart());
+ }
+
+ if ((wrapper.getService(serviceName) == null) &&
(wrapper.getService(serviceNameNoTrailingSlash) == null)) {
throw new IllegalStateException(
Messages.getMessage("MissingServiceName",
serviceName.toString(),
@@ -124,12 +152,18 @@ public class Axis2EndpointReferenceFacto
}
if (portName != null) {
String[] ports = wrapper.getPorts(serviceName);
+ // search the other name. TODO: again, why do we have
to do this?
+ if (ports == null) {
+ ports =
wrapper.getPorts(serviceNameNoTrailingSlash);
+ }
String portLocalName = portName.getLocalPart();
boolean found = false;
if (ports != null) {
for (String port : ports) {
- if (port.equals(portLocalName)) {
+ // TODO: axis2 perhaps is deploying with
"TypeImplPort" appended, but not reading/honoring the WSDL?
+ if (port.equals(portLocalName) || (port +
"TypeImplPort").equals(portLocalName)) {
+ log.debug("found port: " + port);
found = true;
break;
}
@@ -142,6 +176,7 @@ public class Axis2EndpointReferenceFacto
portName.toString(),
wsdlDocumentLocation));
}
+ log.debug("Setting wsdlDocumentLocation to " +
wsdlDocumentLocation + " for EndpointReference at port " + portName);
EndpointReferenceUtils.addLocation(axis2EPR,
portName.getNamespaceURI(), wsdlDocumentLocation, addressingNamespace);
}
}
Modified:
axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/context/WebServiceContextImpl.java
URL:
http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/context/WebServiceContextImpl.java?rev=1069898&r1=1069897&r2=1069898&view=diff
==============================================================================
---
axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/context/WebServiceContextImpl.java
(original)
+++
axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/context/WebServiceContextImpl.java
Fri Feb 11 17:11:59 2011
@@ -32,6 +32,8 @@ import javax.xml.ws.EndpointReference;
import javax.xml.ws.WebServiceContext;
import javax.xml.ws.handler.MessageContext;
import javax.xml.ws.wsaddressing.W3CEndpointReference;
+
+import java.net.URI;
import java.security.Principal;
public class WebServiceContextImpl implements WebServiceContext {
@@ -141,9 +143,10 @@ public class WebServiceContextImpl imple
if (soapMessageContext != null) {
QName service = (QName)
soapMessageContext.get(MessageContext.WSDL_SERVICE);
QName endpoint = (QName)
soapMessageContext.get(MessageContext.WSDL_PORT);
+ String wsdlLocation = "/?wsdl"; // let the webcontainer redirect
us to the real WSDL URL; it knows where it is
org.apache.axis2.addressing.EndpointReference axis2EPR =
- EndpointReferenceUtils.createAxis2EndpointReference(null,
service, endpoint, null, addressingNamespace);
+ EndpointReferenceUtils.createAxis2EndpointReference(null,
service, endpoint, wsdlLocation, addressingNamespace);
try {
EndpointReferenceUtils.addReferenceParameters(axis2EPR,
referenceParameters);