gpt4 book ai didi

java - 尝试创建 Web 服务客户端时找不到类异常

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:14:00 25 4
gpt4 key购买 nike

我正在尝试从 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 操作系统中使用 : 以及在 MS Windows 中使用 ; 来拆分 jar 文件。正如您所说,这是一项 Web 服务,我认为您使用的是 IDE,第一个解决方案可能对您有所帮助。

附言如果您也将此 jar 文件添加到类路径中并且此异常再次发生,请将此 jar 文件添加到您的 Web 服务器/容器库目录中。 (例如 tomcat 中的 lib 文件夹。

关于java - 尝试创建 Web 服务客户端时找不到类异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9807521/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com