2010-10-12 49 views
0

请这个问题上需要帮助,我要疯了......的Weblogic 10和Struts 2.x的问题 - Javassist是

我试图让使用WebLogic 10作为应用服务器的客户端 - 服务器的Web应用程序和IIS作为一个网络服务器(企业约束),EJB 3和Struts 2.然而,我遇到了一些我无法解决的问题。

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

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

感谢您的帮助。

回答

0

当所有的希望都消失时,经常会有解决方案。显然,我所要做的就是将所有Struts库(包括Javassist)移动到父EAR项目的/ lib目录中。这听起来很奇怪,但它工作,我坚持解决方案。

我并不十分熟悉Weblogic和Enterprise应用程序,因此它并没有想到服务器将EAR视为基本上下文而不是包含的WAR。