2015-11-04 26 views
6

SQL sorguyu CUCM DB'ye yapmak istiyorum. WSDL'den Maven jaxb2 eklentisi ile Java sınıfları oluşturdum, ancak Cisco AXL belgeleri wsdl2java'yı kullanması için tavsiyede bulunuyor. Req/Res sonlarıyla (anladığım kadarıyla istek ve yanıt) birçok Java dersim var. Bu benim kodudur:CUCM AXL API yanlış SoapAction

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); 
           } 
          } 
        });    
      } 
    } 
} 

Ama bunu çalıştırdığınızda, ben hatayı alıyorum: Ben gördüğünüz gibi Yani

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

, sorun Manager CUCM AXL hizmet executeSQLQuery yöntemi vardır, ama executeSQLQueryReq. Spring'i SoapAction'da doğru yöntemi nasıl uygulayabilirim? Yoksa sadece wsdl2java kullanmalı mıyım? Ben java sınıfları üreten edildiğinde


GÜNCELLEME

, ayrıca dizinde .Xsd şema vardı. jaxb2 config WSDL dosyasına işaret etti, ancak hata URI [src/main/resources/AXLAPI.wsdl] does not provide the scheme part. aldım ve wsdl değil, xsd şemadan eklenti oluşturulmuş sınıflara benziyor. Ancak bu wsdl, CUCM'den indirilen orijinal dosyaydı. Ne yanlış olabilir?

+0

ile çalışmaya başlamak için en iyi seçim değildir. Sorun şu ki "src/main/resources/AXLAPI.wsdl" geçerli bir URI değil. "Şema parçası sağlamaz" hatası "şema" (ör. "Https") eksik olduğunu gösterir. WSDL yerel dosya sisteminizde ise, 'file: /// path/to/AXLAPI.wsdl' gibi bir şey kullanın. –

+0

Teşekkürler, "şema parçası sağlamaz" artık gitti ve BAŞARININ BAŞARISINI yazdırıyor, ancak hedef dizinde kaynak oluşturmuyor –

cevap

2

Bulunan this bağlantı, developers.cisco.com sitesinde. Bu nasıl yapılır, CUCM'ye SOAP isteği yapmak için bir tür sarıcı olan AXLPort'u kullanmayı önerir. Görünüşe göre, CUCM AXL SOAP arayüzü, Spring WS