找不到所需的类(javax.activation.DataHandler 和 javax.mail.internet.MimeMultipart)。附件支持已禁用

2022-09-01 00:58:27

我在调用Web服务中存在的方法时遇到了问题。wsdl 是使用 AXIS 创建的。

当我尝试使用我的java代码调用它时,我从服务响应中获取空值。

我收到在控制台中打印的警告消息:

找不到所需的类(javax.activation.DataHandler 和 javax.mail.internet.MimeMultipart)。附件支持已禁用。

在尝试解决此问题时,我在工作区构建路径中添加了激活.jar和邮件.jar重新启动了服务器。

编辑:

右键单击 WSDL ==>生成 CLient

然后我得到了一个代理类,使用它来调用服务方法:

public class CallingWebService1 {

public static void main(String[] args) throws Exception {

    WebService1Proxy proxy1 = new WebService1Proxy();
    proxy1.setEndpoint("http://localhost:8045/WebService1/services/WebService1");

    EmployeeDetails details = proxy1.getDetails();
    System.out.println("Employee Id: " + details.getEmpId());
    System.out.println("Employee Name: " + details.getEmpName());
    System.out.println("Dept Id: " + details.getDeptId());
    System.out.println("Dept Name" + details.getDeptName());
    System.out.println("Age: " + details.getAge());
}

但问题仍然存在:(

更多信息:

getDetails() 方法正在执行数据库操作,从 Oracle DB 中获取一些记录。为了执行 DB 操作,将使用 class12.jar。它是否与以我的方式调用服务方法有关?


答案 1

为了修复 javax.activation.DataHandler 问题,您必须在类路径中添加 JavaBeans Activation Framework 激活.jar。

为了修复 javax.mail.internet.mimeMultipart 问题,您必须在类路径中添加 Java Mail API mail.jar。

控制台中打印的警告消息显示上述 jar 不在类路径中。


答案 2

只有一个 jar(邮件.jar)就足以解决此问题。此 jar 应出现在类路径中。


推荐