![](/img/trans.png)
[英]No serializer found for class error when I try to create a Web Service
[英]Class not found exception when trying to create web service client
我試圖從Java客戶端使用Web服務。
我使用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:Provider com.sun.xml.ws.spi.ProviderImpl
我覺得我錯過了一些東西,不幸的是我不知道是什么......我是否需要在任何地方初始化提供商?
您應該將Provider
類添加到classpath
。 如果您使用IDE
您可以通過右鍵單擊庫輕松添加庫,然后選擇“添加Jar文件”(或類似的東西!)。 但是,如果您嘗試通過terminal
編譯和運行應用程序,請使用以下命令:
javac -d [bin folder] -cp [jar files] [java source files]
java -classpath [jar files] [Main class]
你應該使用:
在Linux和MAC OS中拆分jar文件;
在MS Windows中。 正如您所說這是一個Web服務,我認為您正在使用IDE
,第一個解決方案可能對您有所幫助。
PS如果您還將此jar文件添加到類路徑中並再次發生此exception
,請將此jar文件添加到Web服務器/容器庫目錄中。 (例如tomcat
lib
文件夾。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.