Как сгенерировать XML-запрос на мыло из файла wsdl в java - PullRequest
2 голосов
/ 02 сентября 2011

Я ищу API Java с открытым исходным кодом для создания XML-файла запроса на мыло, передавая wsdl_URL и имя операции в качестве параметров.На самом деле soapUI делает это, и я пытался просмотреть исходный код soapUI, но я не в состоянии понять весь код, чтобы выполнить мою задачу.

Есть ли какой-либо Java-API для этого (apache иличто-то)?

Я провел пару дней в сети и не увидел никакого результата.

Если у кого-нибудь есть идеи, пожалуйста, помогите мне.

Заранее спасибо.

Ответы [ 3 ]

3 голосов
/ 14 августа 2012

Вы можете использовать библиотеку SOA с открытым исходным кодом Membrane ([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);
        }
    }
}
2 голосов
/ 25 января 2017

Soap UI также предоставляет Java Api для создания XML-запросов и ответов из WSDL.

 public static void main(String[] args) throws Exception {
        WsdlProject project = new WsdlProject();
        WsdlInterface[] wsdls = WsdlImporter.importWsdl(project, "http://localhost:8080/Service?wsdl");
        WsdlInterface wsdl = wsdls[0];
        for (Operation operation : wsdl.getOperationList()) {
            WsdlOperation wsdlOperation = (WsdlOperation) operation;
            System.out.println("Request:\n"+wsdlOperation.createRequest(true));
            System.out.println("\nResponse:\n"+wsdlOperation.createResponse(true));

        }
    }

Уголок разработчика Soap UI имеет приятные указатели для интеграции смыло UI Api.

2 голосов
/ 02 сентября 2011

Посмотрите на ОСь

http://axis.apache.org/axis2/java/core/

...