Weblogic 10和Struts 2.x问题 - Javassist

时间:2010-10-12 14:11:04

标签: struts2 weblogic-10.x javassist

请帮助解决这个问题,我疯了......

我正在尝试使用Weblogic 10作为应用程序服务器和IIS作为Web服务器(公司约束),使用EJB 3和Struts 2来创建客户端 - 服务器Web应用程序。但是我遇到了无法解决的问题。

使用Struts 2.2我在启动服务器时获得以下堆栈跟踪:

<12-ott-2010 16.02.21 CEST> <Error> <HTTP> <BEA-101165> <Could not load user def
ined filter in web.xml: org.apache.struts2.dispatcher.FilterDispatcher.
java.lang.reflect.InvocationTargetException - Class: com.opensymphony.xwork2.inj
ect.ContainerImpl$MethodInjector
File: ContainerImpl.java
Method: inject
Line: 295 - com/opensymphony/xwork2/inject/ContainerImpl.java:295:-1
        at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:428)
        at org.apache.struts2.dispatcher.FilterDispatcher.init(FilterDispatcher.
java:190)
        at weblogic.servlet.internal.FilterManager$FilterInitAction.run(FilterMa
nager.java:320)
        at weblogic.security.acl.internal.AuthenticatedSubject.doAs(Authenticate
dSubject.java:321)
        at weblogic.security.service.SecurityManager.runAs(Unknown Source)
        Truncated. see log file for complete stacktrace
java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
[...]
java.lang.IllegalArgumentException: Javassist library is missing in classpath! P
lease add missed dependency!
        at ognl.OgnlRuntime.<clinit>(OgnlRuntime.java:165)

[...]

但是,Javassist包在所有其他与Struts相关的库中的Web类路径(/ WEB-INF / lib direcotry)中清晰可见,我也可以浏览它的包和类。我也把它放在CLASSPATH库和Weblogic初始化参数中,但没有任何作用。我不知道该怎么想。这是一个Struts 2 / Weblogic集成错误吗?

甚至更奇怪的是,最初我设法使Struts 2工作。然后由于某种原因(我真的不知道为什么)它停止了,我无法摆脱那个错误。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

当所有希望都失去时,解决方案通常会出现。显然我所要做的就是将所有Struts库(包括Javassist)移动到父EAR项目的/ lib目录中。这对我来说听起来很奇怪,但它有效并且我坚持使用解决方案。

我对Weblogic和企业应用程序一般不太熟悉,所以很容易想到服务器将EAR视为基本上下文而不是包含的WAR。