我试图从Java客户端使用Web服务。类尝试创建Web服务客户端时未发现异常
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();
步入代码远远不够,
我使用的wsimport生成的类它会到达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
我觉得我失去了一些东西,不幸的是我不知道是什么......我需要在任何地方初始化提供程序吗?
? – jtahlborn 2012-03-21 15:41:21
我使用Java 6,我包括在我的pom.xml的JAXWS-RT扶养。不幸的是,我不知道如何判断我的类路径中还有什么。 – declyne 2012-03-21 15:49:08
你不需要jaxws-rt,它包含在jre中。 – jtahlborn 2012-03-21 15:54:11