java - Tomcat 6 在 tomcat 中包含 glassfish 3 服务器 jar 文件后显示错误

标签 java jsp tomcat struts2 glassfish-3

在我的本地系统上,我使用的是 glassfish server 3.0。我已将 glassfish3 的所有服务器 jar 文件包含在我拥有 Tomcat6 的实际服务器上。 现在显示以下异常:

HTTP Status 500 - 

--------------------------------------------------------------------------------

type Exception report

message 

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

exception 

org.apache.jasper.JasperException: /pages/login.jsp(178,36) The s:form tag declares that it accepts  dynamic attributes but does not implement the required interface
org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:40)
org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:407)
org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:148)
org.apache.jasper.compiler.Validator$ValidateVisitor.visit(Validator.java:775)
org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1507)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2338)
org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2388)
org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2394)
org.apache.jasper.compiler.Node$Root.accept(Node.java:489)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2338)
org.apache.jasper.compiler.Validator.validate(Validator.java:1737)
org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:178)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:306)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:286)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:273)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:566)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:88)

如何解决这个问题。 在部署 war 文件时,我的 war 文件中包含以下 jar 文件(来自 glashfish 服务器)

bean-validator.jar
commons-fileupload-1.2.1.jar
commons-io-1.3.2.jar
commons-logging-1.0.4.jar
freemarker-2.3.15.jar
javax.annotation.jar
jaxr-api-osgi.jar
jaxpc-api-osgi.jar
jsf-api.jar
jsf-impl.jar
jstl-impl.jar
mysql-connector-java-5.1.14-bin.jar
ongl-2.7.3.jar
struts2-core-2.1.8.1.jar
struts2-jquery-plugin-1.8.3.jar
webservices-api-osgi.jar
weld-osgi-bundle.jar
xwork-core-2.1.6.jar
javax.ejb.jar
javax.enterprise.deploy.jar
javax.jms.jar
javax.mail.jar
javax.management.j2ee.jar
javax.persistence.jar
javac.resource.jar
javax.security.auth.message.jar
javax.security.jacc.jar
javax.servlet.jar
javax.servlet.jsp.jar
javax.servlet.jsp.jstl.jar
javax.transaction.jar

最佳答案

理想情况下,我们的企业应用程序应该独立于我们使用的任何服务器。因此,所有服务器都有一个 lib 文件夹,您可以在其中放置该环境所需的任何特定 JAR。

我建议您从项目中删除 glassfish JARS 并将它们放入本地 glasshfish 服务器的库中(如果它们还不存在)。或者,您可以将 JAR 放在不同的文件夹中,然后将该文件夹添加到类路径中。

根据您发布的堆栈跟踪,JAR 中存在冲突...因为您有 tomcat 和 glassfish,这两个 jar 都在您的实际服务器上,当它加载应用程序时,它正在从错误的 JAR 中为标签库加载标签类它正在采摘。因此建议只有一个 JAR。

关于java - Tomcat 6 在 tomcat 中包含 glassfish 3 服务器 jar 文件后显示错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9867534/

相关文章:

java - 找不到带有 Class.forName() 的类,但它存在

java - 如何在不删除其他变量的情况下更新java中的属性值

java - jsp 文件中数组索引超出范围

jsp - Tiles 3 不是渲染列表属性

java - Tomcat连接器具有异步Servlet的工作能力和可伸缩性

java - 从 Java React Native 调用 JavaScript 方法

java - 检查参数数量的更干净的方法

jsp - 使用声明的变量和使用 Scriptlet 声明的变量有什么区别?

java - 如何部署 SpringBoot webapp : war or jar?

tomcat - mvn包tomcat6 :deploy and mvn tomcat6:deploy之间的区别