私の wsdl には、SOAP11、SOAP12、および HTTP バインディングが含まれています。HTTPBinding からアドレスの場所を取得しようとすると、サンプル コード ブロックがエラーをスローします。
."サポートされていない wsdl エラーです!"
(私は wsdl4j を使用して wsdl を読み取りました)
AddressLocation を取得するサンプル コードは次のとおりです。
private String getAddressUrl(ExtensibilityElement exElement) throws APIManagementException {
if (exElement instanceof SOAP12AddressImpl) {
return ((SOAP12AddressImpl) exElement).getLocationURI();
} else if (exElement instanceof SOAPAddressImpl) {
return ((SOAPAddressImpl) exElement).getLocationURI();
} else {
String msg = "Unsupported WSDL errors!";
log.error(msg);
throw new APIManagementException(msg);
}
}
ここでは、"SOAP12AddressImpl" と "SOAPAddressImpl" のみが WSDL4J で使用できることがわかります。したがって、HTTPbinding データを渡すと、上記のコードでエラーがスローされます。サンプルの HTTP バインディング拡張要素は次のとおりです。
HTTPAddress ({http://schemas.xmlsoap.org/wsdl/http/}address):
required=null
locationURI=http://10.100.1.35:9000/services/SimpleStockQuoteService.SimpleStockQuoteServiceHttpEndpoint.
HTTPBinding からアドレスの場所を読み取るにはどうすればよいですか? wsdl4jで利用可能な実装はありますか?