问题1:javax.mail包冲突
因为使用了maven,引入了javaee7和cxf后,发现mail各种奇妙的问题。尤其cxf的里面引入的是geronimo-javamail很难找。用pom文件排除就好了,例子如下
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>7.0</version>
<exclusions>
<exclusion>
<groupId>com.sun.mail</groupId>
<artifactId>javax.mail</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- CXF服务端 -->
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxws</artifactId>
<version>${cxf.version}</version>
<exclusions>
<exclusion>
<artifactId>geronimo-javamail_1.4_spec</artifactId>
<groupId>org.apache.ws.xmlschema</groupId>
</exclusion>
<exclusion>
<artifactId>geronimo-javamail_1.4_spec</artifactId>
<groupId>org.apache.geronimo.specs</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-transports-http</artifactId>
<version>${cxf.version}</version>
<exclusions>
<exclusion>
<artifactId>geronimo-javamail_1.4_spec</artifactId>
<groupId>org.apache.ws.xmlschema</groupId>
</exclusion>
<exclusion>
<artifactId>geronimo-javamail_1.4_spec</artifactId>
<groupId>org.apache.geronimo.specs</groupId>
</exclusion>
</exclusions>
</dependency>
问题2:使用了mail.jar版本号是1.4,可是有一封邮件,内容为空,只有一个附件,却抛出了空指针异常.
javax.mail.internet.MimeUtility.quote 空指针了
这个是1.4.3之前的bug,可是用了1.4.3我的程序就出问题了,懒得解决了。下载了源码,重新修改代卖,编译成了自己的jar包,传到了nexus上了。
将这个方法改成如下,其他的不用动
public static String quote(String word, String specials) {
if(word==null||word.length()==0) {
return "\"\"";
}
int len = word.length();