views:

988

answers:

2

I face troubles accessing my website deployed on Websphere Application Server 6.0 when I deploy my application which uses JSF1.1 Runtime Environment.

At first It loaded with some errors telling me that my commandLink is missing bodyContent, which is Optional, but I think edited my pages and the page is displayed.

When I try to press any button or do any event handling, it just doesn't react.

Then I made my web module class Loader mode to : Parent Last, and then I caught an Exception : Error 500: SRVE0207E: Uncaught initialization exception thrown by servlet

The detailed error is

[5/23/06 11:57:23:761 CEST] 0000007d ServletWrappe A SRVE0242I: [component-showcase_war] 

[/component-showcase] [/index.jsp]: Initialization successful. 
[5/23/06 11:57:23:766 CEST] 0000007d ServletWrappe E SRVE0100E: Did not realize init() exception thrown by servlet Persistent Faces Servlet: java.lang.NullPointerException 
at com.icesoft.faces.webapp.xmlhttp.PersistentFacesCommonlet.init(Unknown Source) 
at com.icesoft.faces.webapp.xmlhttp.PersistentFacesServlet.init(Unknown Source) 
at com.ibm.ws.webcontainer.servlet.ServletWrapper.init(ServletWrapper.java:274) 
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java(Compiled Code)) 
at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java(Compiled Code)) 
at org.apache.jasper.runtime.PageContextImpl.forward(PageContextImpl.java:510) 
at com.ibm._jsp._index._jspService(_index.java:66) 
at com.ibm.ws.jsp.runtime.HttpJspBase.service(HttpJspBase.java(Compiled Code)) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java(Compiled Code)) 
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java(Compiled Code)) 
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java(Compiled Code)) 
at com.ibm.wsspi.webcontainer.servlet.GenericServletWrapper.handleRequest(GenericServletWrapper.java(Inlined Compiled Code)) 
at com.ibm.ws.jsp.webcontainerext.JSPExtensionServletWrapper.handleRequest(JSPExtensionServletWrapper.java(Compiled Code)) 
at com.ibm.ws.jsp.webcontainerext.JSPExtensionProcessor.handleRequest(JSPExtensionProcessor.java:241) 
at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java(Compiled Code)) 
at com.ibm.ws.webcontainer.extension.DefaultExtensionProcessor.handleRequest(DefaultExtensionProcessor.java(Compiled Code)) 
at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:2933) 
at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:221) 
at com.ibm.ws.webcontainer.VirtualHost.handleRequest(VirtualHost.java:210) 
at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java(Compiled Code)) 
at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java(Compiled Code)) 
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java(Compiled Code)) 
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java(Compiled Code)) 
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:288) 
at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminaters(NewConnectionInitialReadCallback.java:201) 
at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:103) 
at com.ibm.ws.tcp.channel.impl.WorkQueueManager.requestComplete(WorkQueueManager.java(Compiled Code)) 
at com.ibm.ws.tcp.channel.impl.WorkQueueManager.attemptIO(WorkQueueManager.java(Compiled Code)) 
at com.ibm.ws.tcp.channel.impl.WorkQueueManager.workerRun(WorkQueueManager.java(Compiled Code)) 
at com.ibm.ws.tcp.channel.impl.WorkQueueManager$Worker.run(WorkQueueManager.java(Compiled Code)) 
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java(Compiled Code))

What do you think is the problem, and what do am i missing here, I've been searching and some people said to delete the default WAS jsf-api.jar file, but it didnt help!

+1  A: 

I think WAS has another JSF jar called ws-jsf.jar. Remove it too and try

victor hugo
Thanks, that surely did it.Along with that, It should be setting to be run as Application, not As module, and to remove the common-loggin1.1 and replace it with common-loggin-adapters1.1
agawish
A: 
 at com.icesoft.faces.webapp.xmlhttp.PersistentFacesServlet.init(Unknown Source)

This servlet is failing to initialize. It might be an idea to go to icesoft.com and find out what it does and why it is failing rather than just deleting files from your app server.

It might be easier to diagnose the problem if you give more details about the technology stack you are using (including the JSF implementation you are deploying with the app).

I made my web module class Loader mode to : Parent Last

This is the correct thing to do. By doing this, your application will use its own JSF implementation instead of the older version in the container. I did not delete any files.

Here the structure of a simple JSF 1.1 application I deployed to WAS 6.0. I used the MyFaces library version 1.1.6.

test.jsp
WEB-INF/faces-config.xml
WEB-INF/web.xml
WEB-INF/lib/commons-beanutils-1.7.0.jar
WEB-INF/lib/commons-el-1.0.jar
WEB-INF/lib/jstl-1.1.0.jar
WEB-INF/lib/commons-collections-3.1.jar
WEB-INF/lib/commons-lang-2.1.jar
WEB-INF/lib/myfaces-api-1.1.6.jar
WEB-INF/lib/commons-digester-1.8.jar
WEB-INF/lib/commons-logging-1.1.1.jar
WEB-INF/lib/myfaces-impl-1.1.6.jar

faces-config.xml doctype:

<!DOCTYPE faces-config PUBLIC
  "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.1//EN"
  "http://java.sun.com/dtd/web-facesconfig_1_1.dtd"&gt;

web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" 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"&gt;
    <display-name>jsf11</display-name>
    <context-param>
     <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
     <param-value>server</param-value>
    </context-param>
    <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>
    <servlet-mapping>
     <servlet-name>Faces Servlet</servlet-name>
     <url-pattern>*.faces</url-pattern>
    </servlet-mapping>
</web-app>
McDowell
Although the class loader is Parent Last, the Websphere JSF implementation the "ws-jsf.jar" still running effectively, the problem is solved after removing this file.I'll provide the steps for what made it successful in the next following days
agawish
I don't doubt that this solved your problem, and it might be fine if no one else uses the server, but it would not be a solution I would be happy with - it prevents other applications running with the supplied implementation. The JSF bootstrapping process should ignore the container implementation if you configure the classloading correctly and I would want to know the root cause of the NPE in the 3rd party library. Links to detailed info on why deleting the JARs works would be helpful.
McDowell