如何从java中的wsdl文件生成soap请求xml

sri*_*ini 4 java soap web-services soapui soap-client

我正在寻找一些 java 开源 api,通过将 wsdl_URL 和操作名称作为参数传递来生成soap请求xml文件。实际上,soapUI 正在执行此操作,我尝试查看soapUI 源代码,但我无法理解整个代码来完成我的任务。

有没有可用的 java api 来执行此操作(apache 或其他)?

我在网上花了几天时间,没有看到任何结果。

如果有人有任何想法请帮助我。

提前致谢。

小智 5

您可以使用开源 Membrane SOA 库 ([ http://www.membrane-soa.org/soa-model-doc/1.4/java-api/create-soap-request-template.htm ]) 生成 XML对于 WSDL 中定义的每个操作:

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);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)