今天终于开始在单位的机器上(ubuntu)测试jbpm的发邮件通知用户新任务。前面说过,在家里面的机器(vista)上已经配置好了,所以认为应该没有任何问题才对。
结果将配置好的文件(mail-service.xml和mail-ra.rar)拷贝到ubuntu中部署的jboss jbpm的deploy下后,发现还是不行。抛出异常,如下:
java.lang.NullPointerException
at java.lang.String.concat(String.java:1997)
at com.sun.activation.registries.MailcapFile.parseLine(MailcapFile.java:235)
at com.sun.activation.registries.MailcapFile.parse(MailcapFile.java:197)
at com.sun.activation.registries.MailcapFile.createMailcapHash(MailcapFile.java:157)
at com.sun.activation.registries.MailcapFile.(MailcapFile.java:40)
at javax.activation.MailcapCommandMap.loadFile(MailcapCommandMap.java:276)
at javax.activation.MailcapCommandMap.(MailcapCommandMap.java:128)
at javax.activation.CommandMap.getDefaultCommandMap(CommandMap.java:44)
at javax.activation.DataHandler.getCommandMap(DataHandler.java:136)
at javax.activation.DataHandler.getDataContentHandler(DataHandler.java:568)
at javax.activation.DataHandler.writeTo(DataHandler.java:294)
at javax.mail.internet.MimeUtility.getEncoding(MimeUtility.java:248)
at javax.mail.internet.MimeBodyPart.updateHeaders(MimeBodyPart.java:1268)
at javax.mail.internet.MimeMessage.updateHeaders(MimeMessage.java:2012)
at javax.mail.internet.MimeMessage.saveChanges(MimeMessage.java:1980)
at javax.mail.Transport.send(Transport.java:97)
感觉很奇怪啊,在windows下试了一下,同样的代码,在windows下就没有问题,因此怀疑可能是ubuntu的问题。因为抛出异常的是 Transport.send(msg);这条语句。然后再google里找了一下,发现问题和解决方法。果然是ubuntu自己的问题。
具体的原因是,在用户的主目录下,有一个.mailcap文件($HOME/.mailcap.),不知道什么原因,ubuntu自动给它增加了奇怪的一行,表现为“-e”。将这行删除,一切OK。


yhtjay 于 2010-03-19 16:18:47发表:
技术贴!支持!
guobotry 于 2010-03-19 10:06:49发表:
太感谢了,看到你的帖子解决了javamail在ubuntu下接收邮件的问题,这个问题都困扰了我快一个月了,真是太感谢了