找不到所需的类(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