我正在寻找一些 java 开源 api,用于通过将 wsdl_URL 和操作名称作为参数传递来生成 soap 请求 xml 文件。实际上 soapUI 正在这样做,我试图通过 soapUI 源代码,但我无法理解整个代码来完成我的任务。
是否有任何 java api 可用于执行此操作(apache 或其他)?
我在网上花了几天时间,没有看到任何结果。
如果有人有任何想法,请帮助我。
提前致谢。
最佳答案
您可以使用开源 Membrane SOA 库 ([ http://www.membrane-soa.org/soa-model-doc/1.4/java-api/create-soap-request-template.htm ]) 为 WSDL 中定义的每个操作生成 XML:
public void createTemplates(String url){
WSDLParser parser = new WSDLParser();
Definitions wsdl = parser.parse(url);
StringWriter writer = new StringWriter();
SOARequestCreator creator = new SOARequestCreator();
creator.setBuilder(new MarkupBuilder(writer));
creator.setDefinitions(wsdl);
for (Service service : wsdl.getServices()) {
for (Port port : service.getPorts()) {
Binding binding = port.getBinding();
PortType portType = binding.getPortType();
for (Operation op : portType.getOperations()) {
creator.setCreator(new RequestTemplateCreator());
creator.createRequest(port.getName(), op.getName(), binding.getName());
System.out.println(writer);
writer.getBuffer().setLength(0);
}
}
}
关于java - 如何从java中的wsdl文件生成soap请求xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7276765/