java.lang.NoClassDefFoundError:org / aspectj / weaver / reflect / ReflectionWorld $ ReflectionWorldException

时间:2013-07-22 16:10:42

标签: spring websphere-liberty

我在项目中使用了aspectJ,并在我的POM文件中添加了依赖项。当我在Websphere Application Server Liberty Profile上运行我的应用程序时,在库文件夹中没有添加/创建aspectj.jar。我很擅长使用spring并且从未使用过服务器来运行应用程序。当我尝试在服务器上运行应用程序时,我得到以下异常:

引起:java.lang.ClassNotFoundException: org.aspectj.weaver.reflect.ReflectionWorld$ReflectionWorldException

任何人都可以请问该应用程序出错吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

您需要确保在运行时可以使用aspectj。这两种基本方法是将其与您的应用程序zip打包在一起,或者将其作为服务器中的共享库提供。第一种方法的优点是您不需要进行任何额外的配置,无论您在何处运行应用程序,依赖性都将存在。但是,它有一个膨胀你的应用程序的缺点。如果您最终在服务器上运行多个应用程序,它还可能导致应用程序使用的内存比仅使用共享副本时更多。

对于第一种方法,如果您的依赖项在pom中具有默认作用域,则maven应自动将其复制到WEB-INF / lib(假设您的应用程序是一场战争)。

对于第二种方法,您可以将Liberty配置为global library(适用于所有应用程序),方法是将其复制到Liberty安装中的wlp / usr / shared / config / lib / global文件夹。