maven-2jax-wswsgenjava-web-start

maven, wsgen and dynamic url


After implementing a test solution described here :

Use Maven to trigger a wsgen & wsimport in a row, using wsdlLocation

I wonder if there is a way to generate the client jar without knowing the WS URL, so that it would be usable against any similar ws deployed somewhere else.

Any idea?


Solution

  • I wonder if there is a way to generate the client jar without knowing the WS URL, so that it would be usable against any similar ws deployed somewhere else.

    Whatever WSDL URI has been used to generate the JAX-WS client artifacts, you can override a service endpoint address from the client code by using the appropriate constructor:

    ...
    URL newEndpoint = new URL("http://new/endpointaddress?wsdl");
    QName serviceName = new QName("http://targetNamespaceURI","EchoService"); 
    
    EchoService service = new EchoService(newEndpoint, serviceName);
    Echo port = service.getEchoPort();
    
    System.out.println("Server said: " + echo.echo(args[0]));
    ...
    

    Related question

    See also