Web服务客户端生成-存根与肥皂消息

时间:2019-03-26 17:14:47

标签: web-services soap java2wsdl

我需要选择一种方法的帮助,并根据该帮助采取某些行动,或者建议我是否可以得到它。

我获得了wsdl的URL 如果生成存根,则说明我正在使用该Web服务的功能 我通过3种不同的方式生成桩头-(有些多余) -日食 -蚂蚁命令(创建与日食相同的结构) -使用Maven

<groupId>org.codehaus.mojo</groupId>
<artifactId>jaxws-maven-plugin</artifactId>

maven创建了一个稍微不同的API,但是-都可以使用。

现在,我获得了一个URL,该URL还可以生成一个API,并且可以进行调用,但是,返回错误-错误是系统特定的。这意味着,我确实与网络服务功能进行了通信。

因此,Web服务的所有者向我发送了示例代码-他们正在使用SOAP消息与Web服务进行通信。而且效果很好。

// Create SOAP Connection
            SOAPConnectionFactory soapConnectionFactory = null;
            SOAPConnection soapConnection = null;
            soapConnectionFactory = SOAPConnectionFactory.newInstance();
            soapConnection = soapConnectionFactory.createConnection();

            System.setProperty("https.protocols", 
             "TLSv1,TLSv1.1,TLSv1.2");
            System.setProperty("java.net.useSystemProxies", "true");

            String url = "https://someUrl?wsdl";
            SOAPMessage soapResponse = 
            soapConnection.call(createSOAPRequest(), url);

            // Process the SOAP Response
            try { 
                String op = printSOAPResponse(soapResponse);
                System.out.println("Res" +op);
            } catch (Exception e) {
                e.printStackTrace();
            }

我知道这不是使用Web服务的可靠且简单的方法。 因此,我应该强迫Web服务所有者采取某些措施来解决此问题,还是在存根中没有添加某些内容,..或此处可能发生的其他错误?

您可以给的一般建议是什么?

谢谢

1 个答案:

答案 0 :(得分:0)

免责声明:由于问题的性质,这是基于意见的答案。

  

我应该强迫Web服务所有者采取某些措施来解决此问题,还是我没有在存根中添加某些内容,..否则此处可能出现其他问题

在SOAP中,涉及两个方面,即服务器和客户端。然后它们之间有一个称为WSDL的合同。因此,如果他们为您提供了WSDL,则您应该能够生成服务器应该能够理解的特定SOAP消息。因此,您尝试解决客户端问题而不强迫他们。我不太确定您要使用的实际用例和SOAP服务,但是通常服务提供者(即SOAP Service)会遵循协议,然后客户端需要进行调整以使用该特定服务,除非您也是如此。大量的客户,并可能迫使他们更改可能为其他客户(SOAP客户)服务的系统。 举例来说,如果您使用AzureSAP SOAP服务来使用特定服务,则势必会产生AzureSAP可以理解的消息(尽管这样大型企业会提供他们的SDK来应对此类不必要的麻烦。