3
votes

I use JAX-WS thats ships with jdk to create soap client. Now, the service provider isn't exposing the wsdl. How to create soap client without wsdl, if I know the provided services?

Edit: I have the freedom to use any soap api/tool, not restricted to JAX-WS.

Edit2: Here is the message that is shown when the service url is hit. Metadata publishing for this service is currently disabled. And suggests to configure service behavior configuration. I understand the service is done in .Net. But How do I use the provided service behavior related details to access the service in Java?

2
Do you have a sample request XML? Or maybe ask them for the WSDL?Pushkar
Yep, I have both request and response XMLs.Ram
All you need is a Schema Definition File.. or you can just create wsdl using eclipse.. wiki.eclipse.org/index.php/Introduction_to_the_WSDL_Editorvinodn

2 Answers

3
votes

You can use HttpClient directly but you must hand-code each xml message you send and parse each message you receive. You can also manually create your objects that match your xml and use jaxb to marshall/unmarshall messages.

0
votes

You can create a client service provider which extends javax.xml.ws.Service, and then override service constructor accepting URL of the remote service you currently have at hand.

public class Foo extends Service
{ 
  ... 

  public Foo(URL wsdlLocation)
  {
    super(wsdlLocation, SERVICE);
  }
}

And then when building your Provider Binding, you explicitly pass the URL to the service interface.

Foo service = new Foo(url);
BindingProvider binding = (BindingProvider)service;