簡體   English   中英

在Java中更改SOAP WSDL端點

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM