Take the 2-minute tour ×

I have a web service that I have JAX-WS generated client bindings as below:

// web service client generated by JAX-WS
@WebServiceClient( ... )
public class WebService_Service extends Service {

    public WebService_Service(URL wsdlLocation, QName serviceName) {
        super(wsdlLocation, serviceName);

    WebService getWebServiceSOAP() {
        // ...

I want to be able to create an instance of this that points to a remote service like:

WebService_Service svc = new WebService_Service(
    new URL("http://www.example.com/ws?wsdl"),
    new QName("http://www.example.com/ws", "WebService"));

But that downloads the WSDL from http://www.example.com/ws?wsdl which I don't want to do.

Is there a way to stop the downloading of that WSDL, but still point to that same endpoint?

share|improve this question
add comment

2 Answers

I resolved this by specifying null for the WSDL URL in the client, as well as specifying the endpoint address explicitly:

WebService_Service svc = new WebService_Service(
WebService port = svc.getPort(WebService.class);
BindingProvider bindingProvider = (BindingProvider) port;

See: http://shrubbery.homeip.net/c/display/W/Consuming+a+Web+Service+with+Java+6+and+JAX-WS#ConsumingaWebServicewithJava6andJAX-WS-IgnoringtheWSDLCompletely

share|improve this answer
I've seen this also working with the no-args constructor of a service - in your case WebService_Service(). I don't know what is a better practice, to use the no-args constructor or the (null,QName) one as you do. –  Marcus Junius Brutus Sep 26 '13 at 19:58
For me this wasn't as simple. The @WebServiceClient annotation has a wsdlLocation attribute that contains an absolute path to the WSDL. When removing this manually (which you really don't want to do), I got the following Exception: com.sun.xml.ws.streaming.XMLStreamReaderException: XML reader error: com.ctc.wstx.exc.WstxUnexpectedCharException: Unexpected character 'a' (code 97) in prolog; expected '<'. Seems it really does expect a WSDL file. –  Dormouse Mar 7 at 15:04
My platform is WebLogic 12c by the way. Also, the link in your answer is dead. –  Dormouse Mar 7 at 15:13
Thanks @Dormouse ... I'll update the link. My domain name had to change. :( –  Joshua Davis 2 days ago
@MarcusJuniusBrutus That is a good question. If I find an answer, I'll try to post it here. :) –  Joshua Davis 2 days ago
add comment

I had the same problem and I solved this, but I can't reveal it with your sample, because it depends on the wsdl.

Here is my code, track the solution:

    //This is the input object for the webservice
    GetDocumentInfoInput input = new GetDocumentInfoInput();
    //I instantiate the WS
    MAKSpcIntSpcWFSpcScannerInfo_Service service  = new MAKSpcIntSpcWFSpcScannerInfo_Service();
    //I get the WS port
    MAKSpcIntSpcWFSpcScannerInfo         port     = service.getMAKSpcIntSpcWFSpcScannerInfo();
    WSBindingProvider                    provider = (WSBindingProvider)port;
    //This is the row what set the URL for the WS
    provider.getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, url);
    //This is the WS calling
    GetDocumentInfoOutput                output   = port.getDocumentInfo(input);
share|improve this answer
add comment

Your Answer


