我需要选择一种方法的帮助,并根据该帮助采取某些行动,或者建议我是否可以得到它。
我获得了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服务所有者采取某些措施来解决此问题,还是在存根中没有添加某些内容,..或此处可能发生的其他错误?
您可以给的一般建议是什么?
谢谢
答案 0 :(得分:0)
免责声明:由于问题的性质,这是基于意见的答案。
我应该强迫Web服务所有者采取某些措施来解决此问题,还是我没有在存根中添加某些内容,..否则此处可能出现其他问题
在SOAP中,涉及两个方面,即服务器和客户端。然后它们之间有一个称为WSDL
的合同。因此,如果他们为您提供了WSDL
,则您应该能够生成服务器应该能够理解的特定SOAP消息。因此,您尝试解决客户端问题而不强迫他们。我不太确定您要使用的实际用例和SOAP服务,但是通常服务提供者(即SOAP Service)会遵循协议,然后客户端需要进行调整以使用该特定服务,除非您也是如此。大量的客户,并可能迫使他们更改可能为其他客户(SOAP客户)服务的系统。
举例来说,如果您使用Azure
或SAP
SOAP服务来使用特定服务,则势必会产生Azure
或SAP
可以理解的消息(尽管这样大型企业会提供他们的SDK来应对此类不必要的麻烦。