我想对CUCM进行SQL查询。我用Maven jaxb2插件从WSDL中生成了Java类,但是Cisco建议使用wsdl2java。我有很多带有Req/Res结尾的Java类(据我理解,请求和响应)。这是我的密码:
public class CUCMDatabaseConnector extends WebServiceGatewaySupport{
private String SOAP_ACTION = "CUCM:DB ver=10.5";
public void updateData(){
String END_USERS_REQUEST = REQUEST,
AXLurl = "https://" + properties.getCurrentCUCM_IP() + ":8443/axl/";
ExecuteSQLQueryReq sqlRequest = new ExecuteSQLQueryReq();
sqlRequest.setSql(END_USERS_REQUEST);
WebServiceTemplate template = getWebServiceTemplate();
template.setMessageSender(NullHostnameVerifier.getMessageSender());
ExecuteSQLQueryRes sqlResponse = (ExecuteSQLQueryRes) template
.marshalSendAndReceive(
AXLurl,
sqlRequest,
new WebServiceMessageCallback() {
@Override
public void doWithMessage(WebServiceMessage message) throws IOException, TransformerException {
TransportContext context = TransportContextHolder.getTransportContext();
HttpUrlConnection connection = (HttpUrlConnection) context.getConnection();
//adding required headers
connection.addRequestHeader( "SOAPAction", SOAP_ACTION);
connection.addRequestHeader("Authorization", autenString);
}
}
});
}
}
}但是当我运行它时,我会发现错误:
org.springframework.ws.soap.client.SoapFaultClientException: The endpoint reference (EPR) for the Operation not found is https://IP:8443/axl/services/AXLAPIService and the WSA Action = CUCM:DB ver=10.5 executeSQLQueryReq
所以,正如我所看到的,问题是CUCM服务有executeSQLQuery方法,但是没有executeSQLQueryReq。如何使Spring在SoapAction中使用正确的方法?还是我只需要使用wsdl2java?
更新
在生成java类时,目录中也有.xsd模式。jaxb2配置指向wsdl文件,但是,我得到了错误URI [src/main/resources/AXLAPI.wsdl] does not provide the scheme part.,它看起来像是从xsd模式构建的插件类,而不是WSDL。但是这个wsdl是从CUCM下载的原始文件。有什么不对的?
发布于 2015-11-10 06:41:28
在这上找到developers.cisco.com链接。这是如何建议使用AXLPort,一种向CUCM发出SOAP请求的包装器.在我看来,CUCM接口不是开始使用Spring的最佳选择。
https://stackoverflow.com/questions/33515143
复制相似问题