com/sun/mail/util/LineInputStream
2010年05月17日
myEclipse进行开发,运行时可能会出现以下的错误:
Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream
原因是jar包版本不统一,javaMail与Java EE 5 Libraries/javaee.jar/mail里的包有东西冲突。
javamail1.4中包与J2EE5中包接口包引起冲突,导致单元测试经常报如下错误:
java.lang.NoClassDefFoundError: com/sun/mail/util/BEncoderStream
当然这个错误是没有将javamail的实现者引进工程(没有导包),但导包后,就会出现另外一个错误:
java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream
[b] Exception in thread "main" java.lang.NoClassDefFoundError: javax/activation/DataSource[/b]
没有导入activation.jar文件.
此时甚至web容器都无法启动,经常会有网友们为这两个异常搞得焦头烂额,如此更换J2EE1.4,会对工程造成影响。但是一定要把概念弄清楚,问题就好解决。J2EE5中mail.jar包定义的只是接口,没有实现,是不能真正发送邮件的,但开发编译肯定是可以过去的,因为我们是针对J2EE规范编的程序。而运行期用Sun公司的JavaMail1.4的实现才可以开始发送邮件,
本人解决方法:将本工程下的J2eeLibary移除。
2010年05月17日
myEclipse进行开发,运行时可能会出现以下的错误:
Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream
原因是jar包版本不统一,javaMail与Java EE 5 Libraries/javaee.jar/mail里的包有东西冲突。
javamail1.4中包与J2EE5中包接口包引起冲突,导致单元测试经常报如下错误:
java.lang.NoClassDefFoundError: com/sun/mail/util/BEncoderStream
当然这个错误是没有将javamail的实现者引进工程(没有导包),但导包后,就会出现另外一个错误:
java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream
[b] Exception in thread "main" java.lang.NoClassDefFoundError: javax/activation/DataSource[/b]
没有导入activation.jar文件.
此时甚至web容器都无法启动,经常会有网友们为这两个异常搞得焦头烂额,如此更换J2EE1.4,会对工程造成影响。但是一定要把概念弄清楚,问题就好解决。J2EE5中mail.jar包定义的只是接口,没有实现,是不能真正发送邮件的,但开发编译肯定是可以过去的,因为我们是针对J2EE规范编的程序。而运行期用Sun公司的JavaMail1.4的实现才可以开始发送邮件,
本人解决方法:将本工程下的J2eeLibary移除。