6

CUCM DB への SQL クエリを作成したいと考えています。Maven jaxb2 プラグインを使用して WSDL から Java クラスを生成しましたが、Cisco AXL は 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 AXL サービスにexecuteSQLQueryメソッドがありますが、 executeSQLQueryReqはありません。SoapAction に正しいメソッドを配置する Spring を作成するにはどうすればよいですか? または、wsdl2java のみを使用する必要がありますか?


アップデート

Java クラスを生成していたとき、ディレクトリには .xsd スキーマもありました。jaxb2 config は WSDL ファイルを指していましたがURI [src/main/resources/AXLAPI.wsdl] does not provide the scheme part.、エラーが発生しました。 wsdl ではなく、xsd スキーマからプラグインがクラスを作成したようです。しかし、この wsdl は CUCM からダウンロードされた元のファイルでした。何が間違っている可能性がありますか?

4

1 に答える 1

2

developers.cico.com でこのリンクを見つけました。このハウツー アドバイスでは、CUCM への SOAP 要求を作成するための一種のラッパーである AXLPort を使用します。私には、CUCM AXL SOAP インターフェースは、Spring WS の使用を開始するための最良の選択ではありません。

于 2015-11-10T06:41:28.307 に答える