[英]Changing a SOAP WSDL endpoint in Java
我有一個定義SOAP端點的WSDL。 不幸的是,它定義的URL不正確。 這意味着當我嘗試通過Java調用服務時,它試圖達到一個不存在的終點。
有沒有一種方法可以通過Java調用其他端點? 不幸的是,無法更改WSDL合同。 我要點擊的網址是https://mycorp.com/FBPMSMS.wsdl
這是我的代碼的一部分,它是通過CXF和wsdl2java生成的
@WebServiceClient(name = "FBPMSMSService",
wsdlLocation = "http://mycorp.com/FBPMSMS.wsdl",
targetNamespace = "http://mycorp.com")
public class FBPMSMSService extends Service {
public final static URL WSDL_LOCATION;
public final static QName SERVICE = new QName("http://mycorp.com", "FBPMSMSService");
public final static QName FBPMSMSPort = new QName("http://mycorp.com", "FBPMSMSPort");
static {
URL url = null;
try {
url = new URL("http://mycorp.com/FBPMSMS.wsdl");
} catch (MalformedURLException e) {
java.util.logging.Logger.getLogger(FBPMSMSService.class.getName())
.log(java.util.logging.Level.INFO,
"Can not initialize the default wsdl from {0}", "http://mycorp.com/FBPMSMS.wsdl");
}
WSDL_LOCATION = url;
}
最終證明是非常簡單的。 我能夠使用下面的代碼來修改WSDL上的端點地址屬性
FBPMSMSService ss = new FBPMSMSService(wsdlURL, SERVICE_NAME);
FBPMSMSPortType port = ss.getFBPMSMSPort();
((BindingProvider)port).getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, "https://mycorp.com/FBPMSMS");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.