Я пытаюсь использовать веб-сервис от клиента Java.
Я сгенерировал классы, используя wsimport:
wsimport -keep -verbose http://localhost:5382/Service1.svc?wsdl
Код выглядит примерно так:
private String CreateSalesforceIssue() {
IssueService service = new IssueService();
IIssueService binding = service.getBasicHttpBindingIIssueService();
String issueID = binding.createIssue(type, description, steps,
expected, workaround, storage,
docType, actions, tools, external,
repeatability, workaroundType, severity,
pmSeverity, products, extensions, versions,
os, status, project, resolution, fixversions);
return issueID;
}
Когда он попадает в эту строку:
IssueService service = new IssueService();
Зайдя в код достаточно далеко, он попадает в javax.xml.ws.spi.Provider и завершается с ошибкой.
Вкл.
public static Provider provider() {
try {
Object provider =
FactoryFinder.find(JAXWSPROVIDER_PROPERTY,
DEFAULT_JAXWSPROVIDER);
if (!(provider instanceof Provider)) {
Class pClass = Provider.class;
String classnameAsResource = pClass.getName().replace('.', '/') + ".class";
ClassLoader loader = pClass.getClassLoader();
if(loader == null) {
loader = ClassLoader.getSystemClassLoader();
}
URL targetTypeURL = loader.getResource(classnameAsResource);
throw new LinkageError("ClassCastException: attempting to cast" +
provider.getClass().getClassLoader().getResource(classnameAsResource) +
"to" + targetTypeURL.toString() );
}
return (Provider) provider;
} catch (WebServiceException ex) {
throw ex;
} catch (Exception ex) {
throw new WebServiceException("Unable to createEndpointReference Provider", ex);
}
}
в этой строке:
if (!(provider instanceof Provider)) {
с исключением ClassNotFoundException: поставщик com.sun.xml.ws.spi.ProviderImpl
Я чувствую, что что-то упустил, к сожалению, я не уверен, что ... Нужно ли где-нибудь инициализировать провайдера?