1) 您好,我正在尝试使用管理服务在 ESB 内创建代理。
所以我已经公开了管理服务(Hidden=false)
我已在我的 Java 项目中导入了 WSDl 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
最佳答案
您只需使用“org.wso2.carbon.proxyadmin.stub.ProxyServiceAdminStub”即可通过管理服务进行广告代理
请查看以下内嵌代码和注释。
String endPoint = *<your backend service url>* +"ProxyServiceAdmin";
proxyServiceAdminStub = new ProxyServiceAdminStub(endPoint);
在使用服务 stub 之前,您必须对其进行身份验证
CarbonUtils.setBasicAccessSecurityHeaders(userName, password,
proxyServiceAdminStub._getServiceClient());
需要将代理的 ProxyData 对象生成为 synaps xml
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);
谢谢你, 达沙纳
关于java - 用于获取创建代理 Java 的 Wso2 ESB 管理服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12402873/