2012-09-13 124 views
0

1)您好我正在嘗試使用管理服務在ESB內部創建一個代理服務器。Wso2 ESB管理服務獲得創建代理Java

所以我已經暴露了管理服務(隱藏= FALSE)

我已導入的WSDL在我的Java項目https://localhost:8243/services/ProxyServiceAdmin?wsdl

但我不能鍛鍊如何調用我使用了錯誤的管理addProxy方法服務?請以使用此方法的示例爲例。

ProxyServiceAdmin ps = new ProxyServiceAdmin(); 
ps.addProxy(); //wrong 

2)我定義爲一個行字符串的代理,像

String xmlproxy="<?xml version='1.0' encoding='UTF-8'?><proxy xmlns='http://ws.apache.org/ns/synapse' name='MyProxy1' transports='https' startOnLoad='true' trace='disable'> <target inSequence='sequence1'>...." 

是否可以通過調用管理服務的一些方法來添加這個代理?

非常感謝您的關注!

編輯我看看WSDL「ProxyServiceAdmin?WSDL」 它說<wsdl:operation name="addProxy"><http:operation location="addProxy"/><wsdl:input><mime:content type="text/xml" part="parameters"/></wsdl:input><wsdl:output><mime:content type="text/xml" part="parameters"/></wsdl:output>

所以它是存在的,但爲什麼我不能打電話了嗎?爲什麼我的代碼不能像普通的Web服務那樣工作?真的,請幫助。我不明白我在做什麼錯?

ProxyServiceAdmin ps = new ProxyServiceAdmin(); 
ps.addProxy(); //not recognized as an operation of ProxyServiceAdmin even if it is in the wsdl 

回答

2

您只需通過管理服務使用「org.wso2.carbon.proxyadmin.stub.ProxyServiceAdminStub」以廣告代理

請看看下面的代碼和註釋行內。

String endPoint = *<your backend service url>* +"ProxyServiceAdmin"; 
    proxyServiceAdminStub = new ProxyServiceAdminStub(endPoint); 

您以前來驗證您的服務存根作任何使用它

CarbonUtils.setBasicAccessSecurityHeaders(userName, password,      
           proxyServiceAdminStub._getServiceClient()); 

需要生成代理作爲SYNAPS XML的ProxyData對象

String[] transport = {"http", "https"}; 
    ProxyData data = new ProxyData(); 
    data.setName(proxyName); 
    data.setWsdlURI(*<url to your WSDL>*); 
    data.setTransports(transport); 
    data.setStartOnLoad(true);  
    data.setEndpointXML("<endpoint xmlns=\"http://ws.apache.org/ns/synapse\"><address uri=\"" + serviceEndPoint + "\" /></endpoint>"); 
    data.setEnableSecurity(true); 
    proxyServiceAdminStub.addProxy(data); 

謝謝你, Dharshana

+0

謝謝,這是一個非常好的答案,不幸的是我沒有經驗添加外部軟件包,你能簡單地向我解釋如何添加「org.wso2.carbon.proxyadmin.stub.ProxyServiceAdminStub」嗎?我需要一個pom文件還是類似的東西?萬分感謝! – nuvio

+0

如果建立wso2代碼庫,這些依賴關係將被解決。構建服務存根就足夠了。 org.wso2.carbon org.wso2.carbon.proxyadmin.stub $ {} stub.version Dharshana

+0

並使用 WSO2的Nexus WSO2內部存儲庫 http://maven.wso2.org/nexus/content/groups/wso2-public/ tr UE 每日 忽略 如庫 – Dharshana

0

這是JSP page用於創建通過代理一通。您可以填寫類似於您的代理數據。如果您瀏覽其他jsps,您可以找到用於不同代理模板的類似邏輯。 Here你可以找到完整的模塊,UI和服務代碼。

+0

import org.wso2.carbon.proxyadmin.ui.client.ProxyServiceAdminClient;給出錯誤;包不存在 - >如何獲取包?任何鏈接下載我需要的? – nuvio

+0

我雖然只是將wsdl添加到我的項目中就足夠了 – nuvio

+0

(http://dist.wso2.org/maven2/org/wso2/carbon/)在這裏您可以找到發佈的工件。嘗試添加名爲under proxy-admin *正如我所提到的,這不是一個獨立的樣本。但產品中使用的代碼使用管理服務並創建代理服務。僅添加wsdl將不起作用。 –

1

請找到示例創建一個代理服務器u唱管理服務here。我將Darshana的代碼添加到完整的示例中。