2015-09-23 29 views
0

我有一个Struts2应用程序什么与Eclipse工作正常,我也试图在普通的Tomcat6 web服务器(复制.war文件到webapps文件夹)。Websphere上的Struts2

但部署WebSphere Application Server上的.war文件后,在应用程序中提交一个表单时收到以下错误:

任何想法如何解决呢?

description The server encountered an internal error() that prevented it from fulfilling this request. 

exception 
javax.servlet.ServletException: Filter execution threw an exception 



root cause 
java.lang.NoSuchMethodError: ognl/SimpleNode.isEvalChain(Lognl/OgnlContext;)Z 
    com.opensymphony.xwork2.ognl.OgnlUtil.isEvalExpression(OgnlUtil.java:223) 
    com.opensymphony.xwork2.ognl.OgnlUtil.setValue(OgnlUtil.java:214) 
+0

类路径中存在一些旧的OGNL依赖项,将其删除。 –

+0

生成war文件时,war文件包含一个ognl-3.0.5.jar文件。我试图排除依赖,但我收到了同样的问题。 struts2-core包含OGNL依赖。 在Tomcat6广告Tomcat7服务器上,它可以正常运行。 – mlorika

+0

不要排除'ognl-3.0.5'。在websphere中配置应用程序库的应用程序。 –

回答

0

geronimo-web.xml文件已被添加到根文件夹中生成的war文件

的APP_ID是我的应用程序。

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns="http://geronimo.apache.org/xml/ns/j2ee/web-2.0.1"> 
    <dep:environment xmlns:dep="http://geronimo.apache.org/xml/ns/deployment-1.2"> 
     <dep:moduleId> 
      <dep:groupId>default</dep:groupId> 
      <dep:artifactId>App_ID</dep:artifactId> 
      <dep:version>1.0</dep:version> 
      <dep:type>war</dep:type> 
     </dep:moduleId> 
     <dep:hidden-classes> 
      <dep:filter>ognl</dep:filter> 
      <!-- 
      <dep:filter>org.apache.axis2</dep:filter> 
      <dep:filter>javax.xml.bind</dep:filter> 
      <dep:filter>javax.xml.ws</dep:filter> 
      --> 
     </dep:hidden-classes> 
    </dep:environment> 
    <context-root>/App_ID</context-root> 
</web-app>