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?
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. –
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 –