dev@jsftemplating.java.net

Re: JSFTemplating: NoClassDefFoundError

From: Irfan Ahmed <Irfan.Ahmed_at_Sun.COM>
Date: Wed, 03 Oct 2007 23:31:44 +0530
Hi Senthil,

The Handler.map was a different issue. Once that was resolved, I got into this error.  Moving the comms-appserv-admin-gui.jar file in WEB-INF/lib directory of admin GUI solves the class path issue.

Rgds,
Irfan.

Senthil Chidambaram wrote:
Irfan,
I'm sorry I'm little bit confused here. I see your other email thread regarding Handler.map file typo issue being resolved. If that is the case, I think this issue might have been resolved as well, bcz both get/saveSipService are defined in the same map file. Could you pls confirm. If possible I recommend you to join jsftemplating IRC, we are there most of the time, Ken is there 24X7X365 :-) .

thx
Senthil

Irfan Ahmed wrote:
Hi Senthil,

Thanks for your reply. The Handler.map and the jsf file calling the handler are fine. I am sure this is a class path issue as the Web application class loader for the GF GUI will pick up classes from the server class path, but the other way it would not be allowed ie., classes on the server class path being able to pick up classes within the WEB-INF/lib of a deployed web application.

Is this what you meant by "appropriate class path"?

I have attached the JSF file and the Handler.map file.

Thanks and Warm Rgds,
Irfan.

Senthil Chidambaram wrote:
Irfan,
Could you please email us the generated Handler.map file after compiling SipConfigurationHandlers.java, and the .jsf file which calls the handler. Usually this happens when the Handler.map file don't have the handler defined. Also make sure Handler.map file is placed at the appropriate classpath.

thx
Senthil

Irfan Ahmed wrote:
Hi All,

I have written a Handler for handling SIP Related commands. However I am getting an exception when I hit upon the page. The page has a call to a handler called getSipService. I have generated the map file and when I debugged the code, I could see that JSFTemplating code could locate the correct class file. However getting the method was a problem.

The following is the stacktrace.

[#|2007-10-03T14:33:49.844+0530|SEVERE|sun-appserver9.1|javax.enterprise.system.container.web|_ThreadID=20;_ThreadName=httpWorkerThread-8080-1;_RequestID=1ac66d91-f5cb-40ae-afb1-4f174fe058eb;|StandardWrapperValve[FacesServlet]: PWC1406: Servlet.service() for servlet FacesServlet threw exception
java.lang.NoClassDefFoundError: com/sun/jsftemplating/layout/descriptors/handler/HandlerContext
        at java.lang.Class.getDeclaredMethods0(Native Method)
        at java.lang.Class.privateGetDeclaredMethods(Class.java:2395)
        at java.lang.Class.getMethod0(Class.java:2642)
        at java.lang.Class.getMethod(Class.java:1579)
        at com.sun.jsftemplating.layout.descriptors.handler.HandlerDefinition.getHandlerMethod(HandlerDefinition.java:156)
        at com.sun.jsftemplating.layout.descriptors.handler.Handler.invoke(Handler.java:413)
        at com.sun.jsftemplating.layout.descriptors.LayoutElementBase.dispatchHandlers(LayoutElementBase.java:343)
        at com.sun.jsftemplating.layout.descriptors.LayoutElementBase.dispatchHandlers(LayoutElementBase.java:317)
        at com.sun.jsftemplating.layout.descriptors.LayoutComponent.beforeCreate(LayoutComponent.java:335)
        at com.sun.jsftemplating.layout.descriptors.LayoutComponent.getChild(LayoutComponent.java:274)
        at com.sun.jsftemplating.layout.LayoutViewHandler.buildUIComponentTree(LayoutViewHandler.java:518)
        at com.sun.jsftemplating.layout.LayoutViewHandler.buildUIComponentTree(LayoutViewHandler.java:533)
        at com.sun.jsftemplating.layout.LayoutViewHandler.buildUIComponentTree(LayoutViewHandler.java:533)
        at com.sun.jsftemplating.layout.LayoutViewHandler.buildUIComponentTree(LayoutViewHandler.java:533)
        at com.sun.jsftemplating.layout.LayoutViewHandler.buildUIComponentTree(LayoutViewHandler.java:533)
        at com.sun.jsftemplating.layout.LayoutViewHandler.buildUIComponentTree(LayoutViewHandler.java:533)
        at com.sun.jsftemplating.layout.LayoutViewHandler.createView(LayoutViewHandler.java:234)
        at com.sun.faces.lifecycle.RestoreViewPhase.execute(RestoreViewPhase.java:203)
        at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
        at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
        at com.sun.faces.extensions.avatar.lifecycle.PartialTraversalLifecycle.execute(PartialTraversalLifecycle.java:80)
        at javax.faces.webapp.FacesServlet.service(FacesServlet.java:244)
        at com.sun.enterprise.tools.admingui.servlet.DelayedInitFacesServlet.service(DelayedInitFacesServlet.java:89)
        at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:411)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:317)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198)
        at com.sun.webui.jsf.util.UploadFilter.doFilter(UploadFilter.java:240)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:288)
        at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:271)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:202)
        at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
        at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
        at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:206)
        at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
        at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:150)
        at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
        at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080)
        at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:270)
        at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:637)
        at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:568)
        at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:813)
        at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:339)
        at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:261)
        at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:212)
        at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:265)
        at com.sun.enterprise.web.connector.grizzly.WorkerThreadImpl.run(WorkerThreadImpl.java:116)
|#]

I have also attached my simple SipConfigurationHandler.java file.

Thanks and Warm Rgds,
Irfan.
-- 
Irfan Ahmed | Sun Microsystems Inc., Bangalore, India. | 9180-66927726, x27726


-- 
Irfan Ahmed | Sun Microsystems Inc., Bangalore, India. | irfan@sun.com <mailto:irfan@sun.com%22> - 9180.66927726 - x27726
------------------------------------------------------------------------




 
    $page{configName});
    />

#include "shared/restart.inc"                                       
                      #include "treeBreadcrumbs.inc"
#include "configuration/sipServiceTabs.inc"            #include "alertMsg.inc"

 
                                           $attribute{tableRowGroup});
                getAllSingleMapRows(TableRowGroup="$attribute{tableRowGroup}",  Rows=>$attribute{newList});
                convertRowsToProperties(NewList="#{newList}", AddProps=>$attribute{newProps});
                prepareSuccessfulMsg();
                saveSipService(
                    ConfigName="#{configName}",
                    newProps="${newProps}",
                    accessLogBufferSize="#{accessLogBufferSize}",
                    accessLogWriteInterval="#{accessLogWriteInterval}",
                    accessLoggingEnabled="#{accessLoggingEnabled}"
                );
                redirect(page="../configuration/sipService.jsf?alertType=${alertType}&alertSummary=${alertSummary}&alertDetail=${alertDetail}&configName=$pageSession{configName}");
                />                              
            
        $page{props},                 accessLogBufferSize=>$attribute{accessLogBufferSize}
                accessLogWriteInterval=>$attribute{accessLogWriteInterval}
                accessLoggingEnabled=>$attribute{accessLoggingEnabled}
            );             getTableList(Properties="#{props}", TableList=>$attribute{tableList});
        />

                                                                 
                                                                                                                                                           
#include "propertyTable.inc"
                                               "

         #include "changeButtonsJS.inc"
          
     


--
<a class="moz-txt-link-abbreviated" href="mailto:irfan@sun.com">irfan@sun.com</a>
Irfan Ahmed | Sun Microsystems Inc., Bangalore, India. | irfan@sun.com - 9180.66927726 - x27726