Tomcat 6 Отображение ошибки после включения JAR-файла glassfish 3 severs в tomcat - PullRequest
1 голос
/ 26 марта 2012

В моей локальной системе я использую Glassfish Server 3.0. Я включил jar-файл всех серверов glassfish3 на мой настоящий сервер, на котором установлен 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 у меня есть следующий файл jar, включенный в мой файл war (с сервера 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

1 Ответ

0 голосов
/ 27 марта 2012

В идеале наши корпоративные приложения должны быть независимыми от любого сервера, который мы используем. Следовательно, на всех серверах есть папка lib, в которую можно поместить любые конкретные JAR-файлы, необходимые в этой среде.

Я бы порекомендовал вам удалить JARS glassfish из вашего проекта и поместить их в библиотеку вашего локального сервера glasshfish (если их там еще нет). В качестве альтернативы вы можете поместить файлы JAR в другую папку и добавить эту папку в classpath.

Согласно опубликованной вами трассировке стека, в JAR-файлах существует конфликт ... Так как у вас есть tomcat и glassfish, оба jar-файла на вашем реальном сервере, когда он загружает приложение, загружает классы Tag из неправильного JAR-файла для taglib это сбор. Следовательно, рекомендуется иметь только один JAR.

...