3 Replies Latest reply on Sep 17, 2008 9:14 AM by ilya_shaikovsky

    NoSuchMethodError: org.ajax4jsf.javascript.JSFunction.<init>

    heatherita

      Hi,

      I have recently upgraded from JSF 1.1 to JSF 1.2 with RF 3.2.2

      When I try to access my application using Apache Tomcat 6.0.13 I get the following exception:

      exception

      javax.servlet.ServletException: org.ajax4jsf.javascript.JSFunction.(Ljava/lang/String;[Ljava/lang/Object;)V
      javax.faces.webapp.FacesServlet.service(FacesServlet.java:152)
      org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:177)
      org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:267)
      org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:380)
      org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:507)

      root cause

      java.lang.NoSuchMethodError: org.ajax4jsf.javascript.JSFunction.(Ljava/lang/String;[Ljava/lang/Object;)V
      org.ajax4jsf.renderkit.AjaxRendererUtils.buildAjaxFunction(AjaxRendererUtils.java:370)
      org.ajax4jsf.renderkit.html.AjaxFormRenderer.doEncodeBegin(AjaxFormRenderer.java:131)
      org.ajax4jsf.renderkit.RendererBase.encodeBegin(RendererBase.java:101)
      javax.faces.component.UIComponentBase.encodeBegin(UIComponentBase.java:515)
      org.ajax4jsf.renderkit.RendererBase.renderChild(RendererBase.java:280)
      org.ajax4jsf.renderkit.RendererBase.renderChildren(RendererBase.java:262)
      org.richfaces.renderkit.html.PanelRenderer.doEncodeChildren(PanelRenderer.java:220)
      org.richfaces.renderkit.html.PanelRenderer.doEncodeChildren(PanelRenderer.java:215)
      org.ajax4jsf.renderkit.RendererBase.encodeChildren(RendererBase.java:121)
      javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:527)
      org.apache.myfaces.shared_impl.renderkit.RendererUtils.renderChild(RendererUtils.java:456)
      org.apache.myfaces.shared_impl.renderkit.html.HtmlGridRendererBase.renderChildren(HtmlGridRendererBase.java:218)
      org.apache.myfaces.shared_impl.renderkit.html.HtmlGridRendererBase.encodeEnd(HtmlGridRendererBase.java:99)
      javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:539)
      javax.faces.component.UIComponent.encodeAll(UIComponent.java:250)
      javax.faces.component.UIComponent.encodeAll(UIComponent.java:247)
      com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:592)
      org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:108)
      org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:196)
      org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:41)
      org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:132)
      javax.faces.webapp.FacesServlet.service(FacesServlet.java:138)
      org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:177)
      org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:267)
      org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:380)
      org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:507)


      ------------------

      It seems that none of my Rich Faces controls work because Tomcat can't seem to find this

      org.ajax4jsf.javascript.JSFunction

      Yet, these RF jars are in my WEB-INF/lib:

      commons-beanutils-1.7.0.jar
      el-api-1.0.jar
      myfaces-api-1.2.4.jar
      commons-codec-1.3.jar
      el-impl-1.0.jar
      myfaces-impl-1.2.4.jar
      commons-collections-3.2.jar
      ibatis-2.3.3.720.jar
      richfaces-api-3.2.2.GA.jar
      commons-digester-1.8.jar
      jsf-facelets.jar
      richfaces-impl-3.2.2.GA.jar
      commons-discovery-0.4.jar
      jstl-1.2-1.jar
      richfaces-ui-3.2.2.GA.jar
      commons-lang-2.1.jar
      jt400-1.jar
      tomahawk-1.1.3.jar
      commons-logging-1.1.1.jar
      log4j.properties

      and the "JSFunction" class seems to exist in richfaces-api-3.2.2.GA.jar. Not sure why Tomcat isnt' seeing it.

      Any ideas would be appreciated. Thanks,

      Heather Buch