2012-06-30 32 views
3

我们的项目在Jetty服务器上并且完全工作,然后该项目部署在Jboss 7服务器中,但出现了一些错误。在Jboss 7中部署时间错误(java.lang.NoClassDefFoundError:javax/mail/internet/AddressException)

我发动战争文件,复制和过去E:\jboss-as-7.1.1.Final\standalone\deployments文件夹,并自动部署变得开始,让这个错误:

java.lang.NoClassDefFoundError: javax/mail/internet/AddressException 

\WEB-INF\lib我的mail.jar文件..

那么如何删除此错误?

细节错误:

15:34:02,245 ERROR [org.springframework.web.context.ContextLoader] (MSC service thread 1-4) Context initialization failed: org.springframework.beans.factor 
y.BeanCreationException: Error creating bean with name 'log4jInitialization' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Invocati 
on of init method failed; nested exception is java.lang.NoClassDefFoundError: javax/mail/internet/AddressException 
     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1420) [org.s 
pringframework.beans-3.1.0.M1.jar:3.1.0.M1] 
     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519) [org.spri 
ngframework.beans-3.1.0.M1.jar:3.1.0.M1] 
     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456) [org.spring 
framework.beans-3.1.0.M1.jar:3.1.0.M1] 
     at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295) [org.springframework.beans-3.1.0.M1.jar: 
3.1.0.M1] 
     at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) [org.springframework. 
beans-3.1.0.M1.jar:3.1.0.M1] 
     at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292) [org.springframework.beans-3.1.0.M1.jar:3. 
1.0.M1] 
     at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194) [org.springframework.beans-3.1.0.M1.jar:3.1. 
0.M1] 
     at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:563) [org.springfr 
amework.beans-3.1.0.M1.jar:3.1.0.M1] 
     at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:900) [org.springf 
ramework.context-3.1.0.M1.jar:3.1.0.M1] 
     at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:455) [org.springframework.context-3.1.0.M 
1.jar:3.1.0.M1] 
     at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:294) [org.springframework.web-3.1.0.M1.jar:3.1.0.M1 
] 
     at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:215) [org.springframework.web-3.1.0.M1.jar:3.1.0.M1] 
     at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:47) [org.springframework.web-3.1.0.M1.jar:3. 
1.0.M1] 
     at org.apache.catalina.core.StandardContext.contextListenerStart(StandardContext.java:3392) [jbossweb-7.0.13.Final.jar:] 
     at org.apache.catalina.core.StandardContext.start(StandardContext.java:3850) [jbossweb-7.0.13.Final.jar:] 
     at org.jboss.as.web.deployment.WebDeploymentService.start(WebDeploymentService.java:90) [jboss-as-web-7.1.1.Final.jar:7.1.1.Final] 
     at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811) 
     at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746) 
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) [rt.jar:1.7.0_01] 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) [rt.jar:1.7.0_01] 
     at java.lang.Thread.run(Thread.java:722) [rt.jar:1.7.0_01] 
Caused by: java.lang.NoClassDefFoundError: javax/mail/internet/AddressException 
     at java.lang.Class.getDeclaredConstructors0(Native Method) [rt.jar:1.7.0_01] 
     at java.lang.Class.privateGetDeclaredConstructors(Class.java:2404) [rt.jar:1.7.0_01] 
     at java.lang.Class.getConstructor0(Class.java:2714) [rt.jar:1.7.0_01] 
     at java.lang.Class.newInstance0(Class.java:343) [rt.jar:1.7.0_01] 
     at java.lang.Class.newInstance(Class.java:325) [rt.jar:1.7.0_01] 
     at org.apache.log4j.helpers.OptionConverter.instantiateByClassName(OptionConverter.java:336) [log4j-1.2.16.jar:] 
     at org.apache.log4j.helpers.OptionConverter.instantiateByKey(OptionConverter.java:123) [log4j-1.2.16.jar:] 
     at org.apache.log4j.PropertyConfigurator.parseAppender(PropertyConfigurator.java:752) [log4j-1.2.16.jar:] 
     at org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:735) [log4j-1.2.16.jar:] 
     at org.apache.log4j.PropertyConfigurator.configureRootCategory(PropertyConfigurator.java:615) [log4j-1.2.16.jar:] 
     at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:502) [log4j-1.2.16.jar:] 
     at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:547) [log4j-1.2.16.jar:] 
     at org.apache.log4j.PropertyConfigurator.configure(PropertyConfigurator.java:415) [log4j-1.2.16.jar:] 
     at org.springframework.util.Log4jConfigurer.initLogging(Log4jConfigurer.java:72) [org.springframework.core-3.1.0.M1.jar:3.1.0.M1] 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.7.0_01] 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [rt.jar:1.7.0_01] 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_01] 
     at java.lang.reflect.Method.invoke(Method.java:601) [rt.jar:1.7.0_01] 
     at org.springframework.util.MethodInvoker.invoke(MethodInvoker.java:273) [org.springframework.core-3.1.0.M1.jar:3.1.0.M1] 
     at org.springframework.beans.factory.config.MethodInvokingFactoryBean.doInvoke(MethodInvokingFactoryBean.java:162) [org.springframework.beans-3.1.0 
.M1.jar:3.1.0.M1] 
     at org.springframework.beans.factory.config.MethodInvokingFactoryBean.afterPropertiesSet(MethodInvokingFactoryBean.java:152) [org.springframework.b 
eans-3.1.0.M1.jar:3.1.0.M1] 
     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1479) [or 
g.springframework.beans-3.1.0.M1.jar:3.1.0.M1] 
     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1417) [org.s 
pringframework.beans-3.1.0.M1.jar:3.1.0.M1] 
     ... 20 more 
Caused by: java.lang.ClassNotFoundException: javax.mail.internet.AddressException from [Module "org.apache.log4j:main" from local module loader @1da817b (r 
oots: E:\jboss-as-7.1.1.Final\modules)] 
     at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:190) 
     at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:468) 
     at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:456) 
     at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398) 
     at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:120) 
     ... 43 more 

所以请大家帮忙,如何删除这个错误?

感谢,

卡姆利什

回答

3

JBoss应用服务器7配备了独立的类加载,所以你应该仔细配置项目的依赖。详情是here

在你的情况下,我看到Spring引用了JBossAS提供的Log4j:Module "org.apache.log4j:main",并试图将其配置为执行一些不寻常的事情(可能试图通过电子邮件进行日志记录)。问题是mail-api不能被log4j模块访问,所以它抱怨。

现在你至少有3个解决方案:

  1. 制作春只是使用log4j的,但不尝试对其进行配置。应该在应用程序服务器级别配置log4j。见this。询问Spring专家如何去做:)

  2. 把log4j.jar放到你的/ WEB-INF/lib目录下,并且不要将Module "org.apache.log4j"暴露给你的webapp。

  3. 将mail-api公开到log4j模块并从您的应用程序中删除/WEB-INF/lib/mail.jar。你将不得不编辑jboss-as-7.1.1.Final/modules/org/apache/log4j/main/module.xml包括对邮件的API的依赖:

    <dependencies> 
        <module name="org.dom4j" optional="true"/> 
        <module name="javax.api"/> 
        <module name="javax.mail.api" export="true"/> 
    </dependencies> 
    
+0

我用这个想法 - 3.and这个错误,并得到其他错误:10:3​​3:10,727 ERROR [org.springframework。 web.context.ContextLoader](MSC服务线程1-2)上下文初始化失败:org.springframework.beans.factoy.BeanCreationException:在ServletContext资源[/WEB-INF/applicationContext.xml]中定义名称为'log4jInitialization' :Invocat on init方法失败;嵌套的异常是java.lang.NoClassDefFoundError:com/sun/net/ssl/internal/ssl/Provider,所以请帮助我.... – kamlesh0606

+1

我忘了提及我通过增加复杂性来订购方法:)请显示整个堆栈跟踪,像在原来的问题 – Tair

+0

谢谢,但删除此错误.... – kamlesh0606