【问题标题】:Tomcat 6 Showing error after including glassfish 3 severs jar file in tomcatTomcat 6在tomcat中包含glassfish 3服务器jar文件后显示错误
【发布时间】:2012-03-26 06:25:25
【问题描述】:

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

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)

如何解决这个问题。 在部署战争文件时,我的战争文件中包含以下 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

【问题讨论】:

  • 您能显示您的 login.jsp 文件以及您的类路径中的所有 jars 吗?
  • 嗨@UmeshAwasthi,我包含了我的 jar 文件列表,请告诉我应该删除哪些 jar 文件。我还想知道如何在创建战争时避免 jar 文件。 Login.jsp 只有登录 id 和密码字段
  • 请确保您拥有来自同一发行版的相同版本的 jar,似乎您使用的是来自不同发行版的不同 jar
  • 我把本地服务器配置成tomcat 现在没有问题了

标签: java jsp tomcat struts2 glassfish-3


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2011-09-15
    • 1970-01-01
    • 1970-01-01
    • 2015-04-13
    • 2016-12-01
    • 2011-04-13
    • 1970-01-01
    • 2015-08-01
    • 1970-01-01
    相关资源
    最近更新 更多