Добавление RichFaces в существующее приложение JBoss Seam - PullRequest
0 голосов
/ 01 ноября 2011

Учитывая веб-приложение, созданное с использованием шва Jboss, со следующими деталями:

 dynamic web module: 2.3
 Java : 1.5
 Javascript: 1.0
 Tomcat: 5.0
    activation.jar
    commons-beanutils-1.7.0.jar
    commons-codec-1.3.jar
    commons-digester-1.6.jar
    commons-el-1.0.jar
    commons-fileupload-1.0.jar
    commons-lang-2.1.jar
    commons-logging-1.0.4.jar
    jstl-1.1.0.jar
    jxl.jar
    log4j-1.2.8.jar
    myfaces-api-1.1.5.jar
    myfaces-impl-1.1.5.jar
    standard.jar
    tomahawk-1.1.3.jar

Посмотрев на RichFaces и его предложения, я хотел бы добавить его в приложение и попытался (и не смог) сделать это, создавновое приложение, где оно имеет:

 dynamic web module: 2.5
 Java: 1.5
 Javascript: 1.0
 Tomcat : 6.0

и из того, что я мог собрать в Интернете, чтобы удовлетворить библиотеки Richfaces, но также смогло развернуть существующее приложение, я добавил следующие библиотеки в новый проект:

    activation.jar
    common-annotations.jar
    commons-beanutils-1.7.0.jar
    commons-codec-1.3.jar
    commons-collections-3.2.jar
    commons-digester-1.8.jar
    commons-discovery-0.4.jar
    commons-el-1.0.jar
    commons-fileupload-1.0.jar
    commons-lang-2.1.jar
    commons-logging-1.1.1.jar
    jsf-api.jar
    jsf-impl.jar
    jsf-tlds.jar
    jstl.jar
    jxl.jar
    log4j-1.2.8.jar
    myfaces-api-1.2.9.jar
    myfaces-impl-1.2.9.jar
    richfaces-api-3.3.3.Final.jar
    richfaces-impl-3.3.3.Final.jar
    richfaces-ui-3.3.3.Final.jar
    standard.jar
    tomahawk-1.1.3.jar

Я добавил необходимые теги richfaces в web.xml.Я могу развернуть и запустить приложение и увидеть обложку richfaces, примененную ко всем элементам управления на странице (bluesky), но явно что-то не так с настройкой.перенаправление ссылок не работает (например, с экрана входа в систему на домашнюю страницу ... и т. д.) и проблемы с нулевыми исключениями при вызове backbean ... и т. д.Судя по тому, что я прочитал, конфликт может быть причиной, но я сохранил вышеизложенное, поскольку удаление myfaces или jsf jars не позволит развернуть приложение.

Мой вопрос: смешивает ли RichFaces и MyFaces плохоеидея (или вообще не стоит этого делать?).МОЯ главная причина добавления вышеуказанных библиотек - это возможность запускать приложение, которое у нас есть, но также и добавлять к нему RichFaces, я был бы признателен, если бы кто-то сказал мне ненужные (конфликтующие) библиотеки выше и правильный путь, по которому я должен следовать, чтобы добавить Richfacesэто приложение шва.

ОБНОВЛЕНИЕ:

Как и предполагалось, библиотеки JSF и MyFaces конфликтуют, и поэтому я попытался удалить одну и оставить другую.ниже приведена ошибка, которую я получаю при удалении библиотек JSF jsf-impl.jar jsf-tlds.jar jsf-api.jar и сохранении библиотек myfaces:

javax.servlet.ServletException: java.lang.NoClassDefFoundError: com/sun/faces/taglib/jsf_core/ViewTag

Caused by:
java.lang.ClassNotFoundException - com.sun.faces.taglib.jsf_core.ViewTag


- Stack Trace
javax.faces.FacesException: javax.servlet.ServletException: java.lang.NoClassDefFoundError: com/sun/faces/taglib/jsf_core/ViewTag
    at org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch(ServletExternalContextImpl.java:347)
    at org.apache.myfaces.application.jsp.JspViewHandlerImpl.buildView(JspViewHandlerImpl.java:486)

из того, что я вижу, я могу сказать, что ошибка возникает из тегов, таких как ниже:

<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<%@ taglib uri="http://myfaces.apache.org/tomahawk" prefix="t"%>

Удаление библиотек MyFaces myfaces-api-1.2.9.jar myfaces-impl-1.2.9.jar и сохранение библиотек JSF приводит к HTTP Status 404 со следующими ошибками:

02/11/2011 11:47:53 AM org.apache.coyote.http11.Http11Protocol init
INFO: Initializing Coyote HTTP/1.1 on http-8165
02/11/2011 11:47:53 AM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 432 ms
02/11/2011 11:47:53 AM org.apache.catalina.core.StandardService start
INFO: Starting service Catalina
02/11/2011 11:47:53 AM org.apache.catalina.core.StandardEngine start
INFO: Starting Servlet Engine: Apache Tomcat/6.0.33
02/11/2011 11:47:54 AM org.apache.catalina.core.StandardContext addApplicationLi
stener
INFO: The listener "com.sun.faces.config.ConfigureListener" is already configure
d for this context. The duplicate definition has been ignored.
02/11/2011 11:47:54 AM org.apache.catalina.core.StandardContext start
SEVERE: Error listenerStart
02/11/2011 11:47:54 AM org.apache.catalina.core.StandardContext start
SEVERE: Context [/TestProj] startup failed due to previous errors
02/11/2011 11:47:54 AM org.apache.catalina.loader.WebappClassLoader clearReferen
cesJdbc
SEVERE: The web application [/TestProj] registered the JDBC driver [org.postgres
ql.Driver] but failed to unregister it when the web application was stopped. To
prevent a memory leak, the JDBC Driver has been forcibly unregistered.
02/11/2011 11:47:54 AM org.apache.catalina.startup.HostConfig deployDescriptor
INFO: Deploying configuration descriptor host-manager.xml
02/11/2011 11:47:54 AM org.apache.catalina.startup.HostConfig deployDescriptor
INFO: Deploying configuration descriptor manager.xml
02/11/2011 11:47:54 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory ROOT
02/11/2011 11:47:54 AM org.apache.coyote.http11.Http11Protocol start
INFO: Starting Coyote HTTP/1.1 on http-8165
02/11/2011 11:47:54 AM org.apache.jk.common.ChannelSocket init
INFO: JK: ajp13 listening on /0.0.0.0:8009
02/11/2011 11:47:54 AM org.apache.jk.server.JkMain start
INFO: Jk running ID=0 time=0/15  config=null
02/11/2011 11:47:54 AM org.apache.catalina.startup.Catalina start
INFO: Server startup in 767 ms

с сочным битом, равным SEVERE: Error listenerStart .

ниже приведен web.xml, который я использую:

web.xml:

 <?xml version="1.0"?>
 <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee     
 http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<context-param>
    <param-name>org.richfaces.SKIN</param-name>
    <param-value>blueSky</param-value>
</context-param>
<context-param>
    <param-name>org.richfaces.CONTROL_SKINNING</param-name>
    <param-value>enable</param-value>
</context-param>
<filter>
    <display-name>RichFaces Filter</display-name>
    <filter-name>richfaces</filter-name>
    <filter-class>org.ajax4jsf.Filter</filter-class>
</filter>
<filter-mapping>
    <filter-name>richfaces</filter-name>
    <servlet-name>Faces Servlet</servlet-name>
    <dispatcher>REQUEST</dispatcher>
    <dispatcher>FORWARD</dispatcher>
    <dispatcher>INCLUDE</dispatcher>
</filter-mapping>
<filter>
    <filter-name>MyFacesExtensionsFilter</filter-name>
    <filter-class>org.apache.myfaces.webapp.filter.ExtensionsFilter</filter-  
  class>
    <init-param>
        <param-name>maxFileSize</param-name>
        <param-value>20m</param-value>
    </init-param>
</filter>
<!-- extension mapping for adding <script/>, <link/>, and other resource 
    tags to JSF-pages -->
<filter-mapping>
    <filter-name>MyFacesExtensionsFilter</filter-name>
  javax.faces.webapp.FacesServlet 
        entry -->
    <servlet-name>Faces Servlet</servlet-name>
</filter-mapping>
<filter-mapping>
    <filter-name>MyFacesExtensionsFilter</filter-name>
    <url-pattern>/faces/myFacesExtensionResource/*</url-pattern>
</filter-mapping>

<context-param>
    <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
    <param-value>server</param-value>

</context-param>

<context-param>
    <param-name>org.apache.myfaces.ALLOW_JAVASCRIPT</param-name>
    <param-value>true</param-value>

</context-param>

<context-param>
    <param-name>org.apache.myfaces.PRETTY_HTML</param-name>
    <param-value>true</param-value>

</context-param>

<context-param>
    <param-name>org.apache.myfaces.DETECT_JAVASCRIPT</param-name>
    <param-value>false</param-value>
</context-param>

<context-param>
    <param-name>org.apache.myfaces.AUTO_SCROLL</param-name>
    <param-value>true</param-value>

</context-param>
<listener>
    <listener-class>
        org.apache.myfaces.webapp.StartupServletContextListener</listener-
  class>
</listener>
<listener>
    <listener-class>testProj.SessionExpireHandler</listener-class>
</listener>
<servlet>
    <servlet-name>Faces Servlet</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    <load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.faces</url-pattern>
</servlet-mapping>
<filter>
    <filter-name>Faces Servlet</filter-name>
    <filter-class>testProj.SessionHandler</filter-class>
</filter>
<filter-mapping>
    <filter-name>Faces Servlet</filter-name>
    <url-pattern>*.faces</url-pattern>
</filter-mapping>
<!-- Welcome files -->
<welcome-file-list>
    <welcome-file>jsp/index.jsp</welcome-file>
</welcome-file-list>
<session-config>
    <session-timeout>60</session-timeout>

</session-config>

 </web-app>

ОБНОВЛЕНИЕ 2:

Как указано в последнембит Мохарры, оставшийся в папке lib, был jsf-tlds.jar, который теперь удален.Версия Tomcat, на которой я работаю, - tomcat-6.0.33.Я также обновил myfaces to 2.1 и Tomahawk to 1.1.11 и все связанные библиотеки. Ниже приведен обновленный и полный список библиотек jar:

activation.jar
batik-awt-util-1.6-1.jar
batik-ext-1.6-1.jar
batik-gui-util-1.6-1.jar
batik-util-1.6-1.jar
commons-beanutils-1.7.0.jar
commons-codec-1.3.jar
commons-collections-3.2.1.jar
commons-digester-1.6.jar
commons-el-1.0.jar
commons-fileupload-1.2.1.jar
commons-io-1.3.2.jar
commons-lang-2.4.jar
commons-logging-1.1.1.jar
commons-validator-1.3.1.jar
iText-2.1.2u.jar
jstl.jar
jxl.jar
log4j-1.2.8.jar
mail.jar
myfaces-api-2.1.3.jar
myfaces-impl-2.1.3.jar
Opta2000.jar
oro-2.0.8.jar
postgresql-8.4-701.jdbc3.jar
richfaces-api-3.3.3.Final.jar
richfaces-impl-3.3.3.Final.jar
richfaces-ui-3.3.3.Final.jar
standard.jar
tomahawk20-1.1.11.jar
xml-apis-1.0.b2.jar
xmlParserAPIs-2.0.2.jar

Я также удалил

<!-- Listener, that does all the startup work (configuration, init). -->
<listener>
    <listener-class>
        org.apache.myfaces.webapp.StartupServletContextListener</listener-class>
</listener>

изweb.xml (другие изменения не вносятся).Я могу развернуть приложение, но при переходе на страницу входа выдается HTTP Status 500 - и выдается исключение, как показано ниже:

[2011-11-02 15:16:50,775] ERROR: org.ajax4jsf.webapp.BaseXMLFilter - Exception in the filter chain
javax.servlet.ServletException: /jsp/login.facesNo saved view state could be found for the view identifier: /jsp/login.faces
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:205)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:357)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:206)
    at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
    at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388)
    at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at com.dbschenker.util.SessionHandler.doFilter(SessionHandler.java:34)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:291)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
    at java.lang.Thread.run(Thread.java:662)
Caused by: javax.faces.application.ViewExpiredException: /jsp/login.facesNo saved view state could be found for the view identifier: /jsp/login.faces
    at org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:128)
    at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:171)
    at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:189)
    ... 24 more

ОБНОВЛЕНИЕ 3:

понизило мои лица до MyFaces Core 2.0.9, исключение остаетсяТо же, что и ниже:

[2011-11-02 16:10:59,260] ERROR: org.ajax4jsf.webapp.BaseXMLFilter - Exception in the filter chain
javax.servlet.ServletException: /jsp/login.facesNo saved view state could be found for the view identifier: /jsp/login.faces
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:205)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:357)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:206)
    at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
    at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388)
    at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at com.dbschenker.util.SessionHandler.doFilter(SessionHandler.java:34)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:291)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
    at java.lang.Thread.run(Thread.java:662)
Caused by: javax.faces.application.ViewExpiredException: /jsp/login.facesNo saved view state could be found for the view identifier: /jsp/login.faces
    at org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:128)
    at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:171)
    at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:189)
    ... 24 more

Обратите внимание, что стоит упомянуть, но в томагавке и myfaces есть следующие библиотеки:

##tomahawk#
commons-logging-1.1.1.jar
commons-beanutils-1.7.0.jar
commons-codec-1.3.jar
commons-collections-3.2.1.jar
commons-digester-1.6.jar

#myfaces 2.0.9
commons-beanutils-1.8.3.jar
commons-codec-1.3.jar
commons-collections-3.2.jar
commons-digester-1.8.jar
commons-logging-1.1.1.jar

Я использую те, которые поставлялись с томагавком.

Исследование в сети вышеупомянутого исключения связано с сеансом, в котором отправка страницы включает идентификатор состояния просмотра на стороне сервера, которое больше не существует.это до неверной конфигурации в моем web.xml?обратите внимание, что я делаю обработку сеанса, как показано ниже:

web.xml:

  <listener>
    <listener-class>testProj.SessionExpireHandler</listener-class>
</listener>
<filter>
    <filter-name>Faces Servlet</filter-name>
    <filter-class>com.dbschenker.util.SessionHandler</filter-class>
</filter>
<filter-mapping>
    <filter-name>Faces Servlet</filter-name>
    <url-pattern>*.faces</url-pattern>
</filter-mapping>

и в SessionHandler.java:

import java.io.IOException;
import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class SessionHandler implements Filter {
    private String  timeoutPage;

    public void init(FilterConfig filterConfig) throws ServletException {
    }

    public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) throws IOException, ServletException {
        if ((request instanceof HttpServletRequest) && (response instanceof HttpServletResponse)) {
            HttpServletRequest httpServletRequest = (HttpServletRequest) request;
            HttpServletResponse httpServletResponse = (HttpServletResponse) response;
            if (isSessionControlRequiredForThisResource(httpServletRequest)) {
                if (isSessionInvalid(httpServletRequest)) {
                    try {
                        httpServletRequest.getSession().setAttribute("sexpiremessage", ApplicationConstant.SESSION_EXP);
                        RequestDispatcher rd = httpServletRequest.getRequestDispatcher("/jsp/login.faces");
                        String timeoutUrl = httpServletRequest.getContextPath() + "/" + getTimeoutPage();
                        httpServletResponse.sendRedirect(timeoutUrl);
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                    return;
                }
            }
        }
        try {
            filterChain.doFilter(request, response);
        } catch (Exception e) {
            // e.printStackTrace();
        }
    }

    private boolean isSessionControlRequiredForThisResource(HttpServletRequest httpServletRequest) {
        String requestPath = httpServletRequest.getRequestURI();
        boolean controlRequired = !(requestPath.endsWith("/login.faces"));
        return controlRequired;
    }

    private boolean isSessionInvalid(HttpServletRequest httpServletRequest) {
        boolean sessionInValid = false;
        try {
            sessionInValid = (httpServletRequest.getRequestedSessionId() != null) && !httpServletRequest.isRequestedSessionIdValid();
            if (httpServletRequest.getSession().getAttribute(ApplicationConstant.SESSION_INFO_KEY) == null)
                sessionInValid = true;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return sessionInValid;
    }

    public void destroy() {
    }

    public String getTimeoutPage() {
        return "jsp/login.faces";
    }

    public void setTimeoutPage(String timeoutPage) {
        this.timeoutPage = timeoutPage;
    }
}

, которые не понятны длямне почему исключение брошено!

1 Ответ

1 голос
/ 02 ноября 2011

Вы смешиваете реализации JSF.Они из Мохарра :

jsf-api.jar
jsf-impl.jar
jsf-tlds.jar

(я только никогда не видел jsf-tlds.jar, они, кажется, происходят где-то еще, что делает его /META-INF/MANIFEST.MFв файле говорят?)

Это из MyFaces :

myfaces-api-1.2.9.jar
myfaces-impl-1.2.9.jar

Это не разрешено.Они будут только конфликтовать друг с другом.Вы должны выбрать и использовать один или другой.

См. Также:


Обновление :

Согласно вашему обновлению, следующее исключение с MyFaces,

java.lang.ClassNotFoundException - com.sun.faces.taglib.jsf_core.ViewTag

предполагает, что у вас еще есть файлы TLD Mojarra где-то в пути к классам.Либо упакован в JAR-файл (обычно jsf-impl.jar, но это jsf-tlds.jar очень подозрительно, мне действительно было бы любопытно, откуда вы его взяли и что они содержат), либо как свободные .tld файлы.Другими словами, ваш путь к классу во время выполнения все еще грязный из-за сочетания реализаций Mojarra и MyFaces.Очистка Webapp/WEB-INF/lib, Webapp/WEB-INF/classes, Tomcat/lib, JRE/lib и т. Д.

и следующая информация с Мохаррой,

ИНФОРМАЦИЯ: Слушатель "com.sun.faces.config.ConfigureListener "уже настроен для этого контекста.Двойное определение было проигнорировано.

Это либо ошибка в Tomcat (какую именно версию вы используете? Похожая ошибка была исправлена ​​в 6.0.18), либо вы излишне повторили ее как <listener> в web.xml.Он уже должен автоматически инициализироваться файлом TLD в любом JSP 2.0-совместимом контейнере, таком как Tomcat 5.5 и новее, независимо от того, используете ли вы MyFaces или Mojarra.

Следующая ошибка с Mojarra,

SEVERE: Ошибка listenerStart

, возможно, вызвана тем, что у вас есть специальный слушатель MyFaces в вашем web.xml:

<listener>
    <listener-class>
        org.apache.myfaces.webapp.StartupServletContextListener
    </listener-class>
</listener>

Удалите его полностью.Вам вообще не нужно это как для MyFaces / Mojarra в JSP 2.0-совместимом контейнере.

Возвращаясь к jsf-tlds.jar, какую именно версию Mojarra вы используете и откуда вы ее взяли?Вам известно, что вы должны загружать библиотеки с официального сайта производителя?Mojarra доступен по адресу http://javaserverfaces.java.net.. Доступны Tomcat 6.0 совместимые 1.2_15 (или, предпочтительно, 2.0.6).Он состоит из 2 файлов JAR jsf-api.jar и jsf-impl.jar.Нет загадочного jsf-tlds.jar файла.Кстати, JSF 2.0 предлагает огромные преимущества перед JSF 1.2.Если вы можете, я настоятельно рекомендую также выполнить этот шаг обновления.


Обновление 2 : Вы ничего не сказали об исключении, поэтому я не могу быть конкретным,Но это выглядит неправильно:

myfaces-api-2.1.3.jar
myfaces-impl-2.1.3.jar

Для JSF 2.1 требуется контейнер, совместимый с Servlet 3.0, а Tomcat 6.0 - это контейнер Servlet 2.5.Вам нужен JSF 2.0 вместо этого.Выберите MyFaces 2.0.x или Mojarra 2.0.x, но не 2.1.x.Если вам действительно нужен JSF 2.1, обновите Tomcat до 7.0.

...