用于从wsdl生成SOAP请求的Java类

时间:2010-08-23 20:32:42

标签: java web-services soap wsdl

我正在寻找一种从wsdl文件轻松生成SOAP请求的方法。例如,像这样:

WSDLObject myWsdl = new WSDLObject("http://www.whatever.com/myService?wsdl");
SOAPRequest myRequest = myWsdl.generateSOAPRequest();

有类似的东西吗?

我试图通过另一个应用程序动态地执行它,因此像WSDL2Java这样的工具对我不起作用(至少我认为)。我需要能够从用户输入生成这些请求,然后从那里开始使用它们。

感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

请参阅此答案:How to get response from SOAP endpoint?

您基本上想要做的是使用JDK附带的wsimport工具。只要Java在您的系统的类路径上,您应该能够转到任何终端或控制台并执行:

wsimport http://www.whatever.com/myService?wsdl -p com.company.whateveruwant -d . -keep

选择选项(-d指定输出生成代码的目录)。完成后,您将能够非常简单地使用自动生成的代码调用Web服务,例如:

CustomInterface soap = new CustomEndpoint().getCustomInterface();
System.out.println(soap.getAnswerFromWs("ParamValue"));

答案 1 :(得分:0)

您可以使用WSDL2Java,唯一的变化是您使用Java代理对象并设置此对象的属性以生成SOAP请求。另一种方法是使用SOAPUI,例如生成SOAP消息,直接将SOAP消息构造为StringBuffer,并直接使用套接字从头开始调用组成完整HTTP / SOAP消息的服务。