尝试使用spring

时间:2015-11-03 01:40:45

标签: java spring liferay javabeans

我尝试使用liferay 6.2并使用spring创建一个portlet。如果我在不使用constructor-arg或factory-method的情况下创建bean,那么一切正常。但是,如果我使用其中任何一个,那么在部署portlet时我会遇到异常。 一个例子:

我得到的例外是:

01:28:21,884 ERROR [ContextLoader:323]上下文初始化失败 java.lang.IncompatibleClassChangeError:class org.springframework.core.LocalVariableTableParameterNameDiscoverer $ ParameterNameDiscoveringVisitor将org.springframework.asm.ClassVisitor作为超类接口

我意识到这可能是因为有两个版本的ams,但我使用了liferay附带的弹簧罐。

1 个答案:

答案 0 :(得分:1)

您自己提供选项 - 重复课程。但是,如果不知道你是如何构建的以及你正在做什么,除了要求你额外增加额外的额外以确保你没有在类路径上有重复的资源之外,几乎没有任何事情要做:

检查已部署的Web应用程序(一旦将其部署到您的应用程序服务器)及其WEB-INF / lib文件夹中的重复项。它们可能仅在构建过程中进入,例如它们可能不在IDE的工作区中。或者Liferay可能会在部署期间注入它们(由于声明的依赖性)。

您必须弄清楚这些资源是如何(以及在​​哪个阶段)到达那里,然后消除该选项(例如通过适当的maven范围,例如“提供”)