CUCM AXL API 错误的 SoapAction

CUCM AXL API wrong SoapAction

我想对 CUCM DB 进行 SQL 查询。我使用 Maven jaxb2 插件从 WSDL 生成 Java 类,但 Cisco AXL 文档建议使用 wsdl2java。我有很多 Java 类 以 Req/Res 结尾(我理解的请求和响应)。这是我的代码:

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 AXL 服务具有 executeSQLQuery 方法,但 不执行 SQLQueryReq 。 如何让 Spring 在 SoapAction 中放入正确的方法?或者我只需要使用 wsdl2java?


更新

当我生成 java 类 时,目录中也有 .xsd 架构。 jaxb2 配置指向 WSDL 文件,但是,我遇到了错误 URI [src/main/resources/AXLAPI.wsdl] does not provide the scheme part.,而且它看起来像是从 xsd 模式而不是 wsdl 构建的插件 类。但是这个 wsdl 是从 CUCM 下载的原始文件。有什么问题吗?

在 developers.cisco.com 上找到 this link。此操作方法建议使用 AXLPort,这是一种用于向 CUCM 发出 SOAP 请求的包装器。 在我看来,CUCM AXL SOAP 接口不是开始使用 Spring WS

的最佳选择