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

标签 java web-services soap soapui soap-client

我正在寻找一些 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/

相关文章:

java - 创建一个 List<A> 作为 GraphQLObjectType

java - 相当于 wsimport 的 org.apache.axis.components.net.SunFakeTrustSocketFactory

spring - 自动化 API 黑盒测试

web-services - RESTful Web 服务 - 如何验证来自其他服务的请求?

java - JAXBElement<Boolean> 与 boolean 值

php - 想要使用 PHP soap 客户端连接到 https 主机

java - android.database.sqlite.SQLiteCantOpenDatabaseException 仅适用于 MD_LIFETAB_P9516

java - 使用 Apache Jena ExtendedIterator 在具有大量三元组的图上进行迭代

java - 使用maven和intellij idea编译java app的区别

java - 如何在动态Web服务项目中查找WSDL文件?