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

Posted

技术标签:

【中文标题】找不到所需的类(javax.activation.DataHandler 和 javax.mail.internet.MimeMultipart)。附件支持已禁用【英文标题】:Unable to find required classes (javax.activation.DataHandler and javax.mail.internet.MimeMultipart). Attachment support is disabled 【发布时间】:2012-08-26 23:04:46 【问题描述】:

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

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

我的控制台中打印出警告消息:

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

编辑:

右键单击 WSDL ==> 生成客户端

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

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 操作,使用了 class12.jar。和我现在这样调用服务方法有关系吗?

【问题讨论】:

【参考方案1】:

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

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

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

【讨论】:

我在第一次尝试中就这样做了,然后才在论坛上发布。请阅读我的问题的底部。 在类路径中包含 jars 后警告是否消失了? 不,添加罐子并没有删除警告。我编辑了原始帖子以显示我如何尝试调用 Web 服务方法。请提出建议。 Java SE 中包含 JavaBeans 激活框架(从 Java 6 开始,甚至可能从 Java 5 开始;不确定)。 @user182944,聚会有点晚了,但消息表明答案中提到的 至少一个 罐子丢失了,但不一定两者都丢失。由于激活现在是 Java SE 的一部分,因此很可能缺少 javax.mail...【参考方案2】:

只有一个 jar (mail.jar) 就足够了来解决这个问题。这个 jar 应该出现在你的类路径中。

【讨论】:

【参考方案3】:

不幸的是,wsdl 仍在使用中:(您可以通过在下面添加依赖项来解决此警告。

    <dependency>
        <groupId>javax.mail</groupId>
        <artifactId>mail</artifactId>
        <version>1.4.7</version>
    </dependency>
    <dependency>
        <groupId>javax.activation</groupId>
        <artifactId>activation</artifactId>
        <version>1.1.1</version>
    </dependency>

【讨论】:

以上是关于找不到所需的类(javax.activation.DataHandler 和 javax.mail.internet.MimeMultipart)。附件支持已禁用的主要内容,如果未能解决你的问题,请参考以下文章

找不到端点:测试,请检查您的类路径是不是包含所需的 Camel 组件 jar

为啥好多东西运行不了。出现“找不到所需的.dll文件?”

找不到指令“...”所需的控制器“ngModel”

Teamcity:错误 MSB3147:找不到所需的文件“setup.bin”

找不到连接到本地数据文件所需的数据提供者

Flutter 报错 Kotlin 找不到所需的 JDK 工具