我在 WSO2 esb 中为外部 wsdl 配置了一个 wsdl 代理。它成功创建了代理。创建代理时,我没有选中“发布相同的服务合同”复选框。如果我们使用外部 Web 服务,是否必须检查?当我单击尝试时,它没有显示 wsdl 中可用的操作。
如果上述问题都得到解决,我们需要从我们的 java 项目中访问代理。我们如何在我们的 java 程序中访问 WSO2 ESB 代理?
提前致谢。
谢谢,拉古
是的,如果您想发布相同的 WSDL,您需要检查发布相同的服务合同。
在 java 代码中,您可以编写一个简单的axis2客户端,如下所示。到您的代理的端点。
public OMElement sendReceive(OMElement payload, String endPointReference, String operation)
throws AxisFault {
ServiceClient sender;
Options options;
OMElement response = null;
try {
sender = new ServiceClient();
options = new Options();
options.setTo(new EndpointReference(endPointReference));
options.setProperty(org.apache.axis2.transport.http.HTTPConstants.CHUNKED, Boolean.FALSE);
options.setTimeOutInMilliSeconds(45000);
options.setAction("urn:" + operation);
sender.setOptions(options);
response = sender.sendReceive(payload);
} catch (AxisFault axisFault) {
throw new AxisFault("AxisFault while getting response :" + axisFault.getMessage(), axisFault);
}
Assert.assertNotNull(response);
return response;
}
您可以通过绑定诸如soap UI之类的工具来获取示例有效负载。
谢谢你,达沙那。
试试这样:
CentralUuidService service = new CentralUuidService(new URL("http://wls02.tigeritbd.com:8280/services/CentralUuidService?wsdl"),new QName("http://bean.service.uuid.gov.bd/", "CentralUuidService"));
GetBirthPlaceServiceResponse response = service.getCentralUuidServiceHttpSoap11Endpoint().getBirthPlace(request);
if(response != null) {
System.out.println("Operation status is:"+response.isOperationStatus());
}
}