我正在寻找一种从wsdl文件轻松生成SOAP请求的方法。例如,像这样:
WSDLObject myWsdl = new WSDLObject("http://www.whatever.com/myService?wsdl");
SOAPRequest myRequest = myWsdl.generateSOAPRequest();
有类似的东西吗?
我试图通过另一个应用程序动态地执行它,因此像WSDL2Java这样的工具对我不起作用(至少我认为)。我需要能够从用户输入生成这些请求,然后从那里开始使用它们。
感谢任何帮助。
答案 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消息的服务。