You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@myfaces.apache.org by David Ramsey <ra...@gmail.com> on 2006/05/15 23:22:58 UTC

MyFaces 1.1.2 installation, configuration, and setup.

I am attempting to use MyFaces 1.1.2 with Tomcat 5.5.15. I have a few simple
JSF pages up using the Sun JSF RI and a web.xml that works with those.

I have attempted to create a new web.xml, replacing the Sun JSF RI jars out
for the MyFaces jars, but this does not work. The latest examples I can find
are for 1.0.9. I cannot find any links anywhere on the MyFaces site that go
to any 1.1.2 examples. The installation instructions at the Apache website
refer to jars and zips that do not exist in the 1.1.2 implementation. The
WOW Wiki is just as out of date.

Consequently, when I attempt to start the simple web app I get the following
in the Catalina log file:

SEVERE: Context [/sample_jsf] startup failed due to previous errors
May 15, 2006 3:41:28 PM org.apache.catalina.loader.WebappClassLoaderloadClass
INFO: Illegal access: this web application instance has been stopped
already.  Could not load org.apache.xerces.impl.dtd.XMLDTDDescription.  The
eventual following stack trace is caused by an error thrown for debugging
purposes as well as to attempt to terminate the thread which caused the
illegal access, and has no functional impact.
java.lang.IllegalStateException
    at org.apache.catalina.loader.WebappClassLoader.loadClass(
WebappClassLoader.java:1238)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(
WebappClassLoader.java:1198)
    at java.lang.ClassLoader.loadClassInternal(Unknown Source)
    at org.apache.xerces.impl.dtd.XMLDTDValidator.doctypeDecl(Unknown
Source)
    at org.apache.xerces.impl.XMLDocumentScannerImpl.scanDoctypeDecl(Unknown
Source)
    at
org.apache.xerces.impl.XMLDocumentScannerImpl$PrologDispatcher.dispatch(Unknown
Source)
    at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown
Source)
    at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
    at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
    at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
    at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
    at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1561)
    at org.apache.catalina.startup.ContextConfig.applicationWebConfig(
ContextConfig.java:350)
    at org.apache.catalina.startup.ContextConfig.start(ContextConfig.java
:1055)
    at org.apache.catalina.startup.ContextConfig.lifecycleEvent(
ContextConfig.java:261)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(
LifecycleSupport.java:119)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java
:4111)
    at org.apache.catalina.core.ContainerBase.addChildInternal(
ContainerBase.java:759)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java
:739)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:524)
    at org.apache.catalina.startup.HostConfig.deployDescriptor(
HostConfig.java:603)
    at org.apache.catalina.startup.HostConfig.deployDescriptors(
HostConfig.java:535)
    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java
:470)
    at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1118)
    at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java
:310)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(
LifecycleSupport.java:119)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1020)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:718)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1012)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java
:442)
    at org.apache.catalina.core.StandardService.start(StandardService.java
:450)
    at org.apache.catalina.core.StandardServer.start(StandardServer.java
:700)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:551)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:275)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
May 15, 2006 3:41:28 PM org.apache.commons.modeler.RegistryregisterComponent
SEVERE: Null component
Catalina:type=JspMonitor,name=jsp,WebModule=//localhost/host-manager,J2EEApplication=none,J2EEServer=none
May 15, 2006 3:41:28 PM org.apache.catalina.startup.HostConfigdeployDescriptor
SEVERE: Error deploying configuration descriptor host-manager.xml
java.lang.NoClassDefFoundError: org/apache/xerces/impl/dtd/XMLDTDDescription
    at org.apache.xerces.impl.dtd.XMLDTDValidator.doctypeDecl(Unknown
Source)
    at org.apache.xerces.impl.XMLDocumentScannerImpl.scanDoctypeDecl(Unknown
Source)
    at
org.apache.xerces.impl.XMLDocumentScannerImpl$PrologDispatcher.dispatch(Unknown
Source)
    at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown
Source)
    at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
    at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
    at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
    at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
    at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1561)
    at org.apache.catalina.startup.ContextConfig.applicationWebConfig(
ContextConfig.java:350)
    at org.apache.catalina.startup.ContextConfig.start(ContextConfig.java
:1055)
    at org.apache.catalina.startup.ContextConfig.lifecycleEvent(
ContextConfig.java:261)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(
LifecycleSupport.java:119)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java
:4111)
    at org.apache.catalina.core.ContainerBase.addChildInternal(
ContainerBase.java:759)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java
:739)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:524)
    at org.apache.catalina.startup.HostConfig.deployDescriptor(
HostConfig.java:603)
    at org.apache.catalina.startup.HostConfig.deployDescriptors(
HostConfig.java:535)
    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java
:470)
    at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1118)
    at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java
:310)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(
LifecycleSupport.java:119)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1020)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:718)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1012)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java
:442)
    at org.apache.catalina.core.StandardService.start(StandardService.java
:450)
    at org.apache.catalina.core.StandardServer.start(StandardServer.java
:700)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:551)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:275)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)


When reviewing this I note that this is an INFO message and that the webapp
has already fatally errored during startup but nothing is recorded in my
Catalina log files indicating the error.

Here is my web.xml contents:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="
http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
  xmlns:xsd="http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
    <context-param>
        <param-name>javax.faces.CONFIG_FILES</param-name>
        <param-value>
            /WEB-INF/faces-config.xml
        </param-value>
        <description>
            Comma separated list of URIs of (additional) faces config files.
            (e.g. /WEB-INF/my-config.xml)
            See JSF 1.0 PRD2, 10.3.2
        </description>
    </context-param>

    <context-param>
        <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
        <param-value>client</param-value>
        <description>
            State saving method: "client" or "server" (= default)
            See JSF Specification 2.5.2
        </description>
    </context-param>

    <context-param>
        <param-name>org.apache.myfaces.ALLOW_JAVASCRIPT</param-name>
        <param-value>true</param-value>
        <description>
            This parameter tells MyFaces if javascript code should be
allowed in the
            rendered HTML output.
            If javascript is allowed, command_link anchors will have
javascript code
            that submits the corresponding form.
            If javascript is not allowed, the state saving info and nested
parameters
            will be added as url parameters.
            Default: "true"
        </description>
    </context-param>

    <context-param>
        <param-name>org.apache.myfaces.PRETTY_HTML</param-name>
        <param-value>true</param-value>
        <description>
            If true, rendered HTML code will be formatted, so that it is
"human readable".
            i.e. additional line separators and whitespace will be written,
that do not
            influence the HTML code.
            Default: "true"
        </description>
    </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>
        <description>
            If true, a javascript function will be rendered that is able to
restore the
            former vertical scroll on every request. Convenient feature if
you have pages
            with long lists and you do not want the browser page to always
jump to the top
            if you trigger a link or button action that stays on the same
page.
            Default: "false"
        </description>
    </context-param>

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

    <!-- Faces Servlet -->
    <servlet>
        <servlet-name>Faces Servlet</servlet-name>
        <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>*.faces</url-pattern>
    </servlet-mapping>
</web-app>

The jars in my WEB-INF/lib directory are:

commons-beanutils-1.7.0.jar
commons-codec-1.3.jar
commons-collections-3.1.jar
commons-digester-1.6.jar
commons-fileupload-1.0.jar
commons-httpclient.jar
commons-lang-2.1.jar
commons-logging-1.0.4.jar
jstl-1.1.0.jar
log4j-1.2.13.jar
myfaces-api-1.1.3.jar
myfaces-impl-1.1.3.jar


The above error in the Catalina log file repeats periodically with the log
file rapidly growing to excessive sizes even though the webapp has failed
initialization and is "offline".


I have gone back and gotten the RI setup working. My web.xml for that is:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
  xmlns:xsd="http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
  <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>
  <servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>/faces/*</url-pattern>
  </servlet-mapping>

  <context-param>
    <param-name>javax.faces.CONFIG_FILES</param-name>
    <param-value>/WEB-INF/faces-config.xml</param-value>
  </context-param>

  <context-param>
    <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
    <param-value>client</param-value>
  </context-param>
</web-app>

My faces-config.xml file is currently empty to start:
<?xml version="1.0" encoding="UTF-8"?>
<!-- DOCTYPE faces-config PUBLIC "-//Sun Microsystems, Inc.//DTD JavaServer
Faces Config 1.1//EN" "http://java.sun.com/dtd/web-facesconfig_1_1.dtd" -->
<faces-config>
  <!-- Navigation rules -->
  <!-- Managed beans -->
</faces-config>



I am new to JSF and the lack of any meaningful error messages has me stumped
as to why this is not installing and starting. Can anyone point me to
1.1.2specific installation hints, tips, etc.? At the current time I
find myself
unable to use 1.1.2. Should I roll back to a previous version? Note that the
error above does not occur with the Sun JSF RI installed and that I can then
at least get to the barebones webapp and begin learning more about JSF
controls in JSPs.

Thanks in advance for any assistance here.

Re: MyFaces 1.1.2 installation, configuration, and setup.

Posted by Mike Kienenberger <mk...@gmail.com>.
On 5/15/06, David Ramsey <ra...@gmail.com> wrote:

> SEVERE: Error deploying configuration descriptor host-manager.xml
> java.lang.NoClassDefFoundError:
> org/apache/xerces/impl/dtd/XMLDTDDescription
>     at
> org.apache.xerces.impl.dtd.XMLDTDValidator.doctypeDecl(Unknown
> Source)
>     at
> org.apache.xerces.impl.XMLDocumentScannerImpl.scanDoctypeDecl
> (Unknown Source)
>     at

Is the class org/apache/xerces/impl/dtd/XMLDTDDescription in your
classpath somewhere?   Maybe your xerces xml parser version is
incompatible with whatever is using it?