JSF debugging

hi,
im new to JSF. i like it, but i wonder how to debug.
how do i find the exact line of code in a bean/jsp where the problem is?
eg i got a log like this (via log4j i did set debug-level for com.sun.faces to all ) - how do i find the jsp/bean that causes the error?
thx :)
INFO - Server startup in 5532 ms
DEBUG - servletPath /customize.faces
DEBUG - pathInfo null
DEBUG - URL pattern of the FacesServlet executing the current request .faces
DEBUG - contextDefaultSuffix .jsp
DEBUG - Begin restoring view from response /customize.jsp
DEBUG - Possibly a new request. Tree structure could not be restored for /customize.jsp
DEBUG - End restoring view from response /customize.jsp
DEBUG - Created new view for /customize.jsp
DEBUG - Locale for this view as determined by calculateLocale de
DEBUG - RenderKitId for this view as determined by calculateRenderKitId HTML_BASIC
DEBUG - About to render view /customize.jsp
DEBUG - URL pattern of the FacesServlet executing the current request .faces
DEBUG - Found URL pattern mapping to FacesServlet .faces
DEBUG - Before dispacthMessage to newViewId /customize.jsp
DEBUG - Begin encoding component _id0
DEBUG - URL pattern of the FacesServlet executing the current request .faces
DEBUG - Begin encoding component _id1
DEBUG - component.getValue() returned null
DEBUG - Value to be rendered null
DEBUG - Begin encoding component _id2
DEBUG - Rendering 'select'
DEBUG - resolveVariable: Resolved variable:null
DEBUG - id: null class: com.sun.faces.taglib.html_basic.SelectOneMenuTag
java.lang.IllegalArgumentException: Konvertierungs-Fehler: Wert ''{0}'' f�r Modell ''{1}''.
     at com.sun.faces.util.Util.getSelectItems(Util.java:642)
     at com.sun.faces.renderkit.html_basic.MenuRenderer.getOptionNumber(MenuRenderer.java:488)
     at com.sun.faces.renderkit.html_basic.MenuRenderer.renderSelect(MenuRenderer.java:465)
     at com.sun.faces.renderkit.html_basic.MenuRenderer.encodeEnd(MenuRenderer.java:430)
     at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:712)
     at javax.faces.webapp.UIComponentTag.encodeEnd(UIComponentTag.java:616)
     at javax.faces.webapp.UIComponentTag.doEndTag(UIComponentTag.java:539)
     at com.sun.faces.taglib.html_basic.SelectOneMenuTag.doEndTag(SelectOneMenuTag.java:505)
     at org.apache.jsp.customize_jsp._jspx_meth_h_selectOneMenu_0(customize_jsp.java:233)
     at org.apache.jsp.customize_jsp._jspx_meth_h_form_0(customize_jsp.java:156)
     at org.apache.jsp.customize_jsp._jspx_meth_f_view_0(customize_jsp.java:119)
     at org.apache.jsp.customize_jsp._jspService(customize_jsp.java:75)
     at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
     at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
     at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
     at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
     at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672)
     at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:463)
     at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:398)
     at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
     at com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:322)
     at com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:147)
     at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:352)
     at javax.faces.webapp.FacesServlet.service(FacesServlet.java:198)
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
     at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
     at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
     at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
     at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
     at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
     at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
     at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
     at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
     at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
     at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
     at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
     at java.lang.Thread.run(Unknown Source)
ERROR - Servlet.service() for servlet jsp threw exception
java.lang.IllegalArgumentException: Konvertierungs-Fehler: Wert ''{0}'' f�r Modell ''{1}''.
     at com.sun.faces.util.Util.getSelectItems(Util.java:642)
     at com.sun.faces.renderkit.html_basic.MenuRenderer.getOptionNumber(MenuRenderer.java:488)
     at com.sun.faces.renderkit.html_basic.MenuRenderer.renderSelect(MenuRenderer.java:465)
     at com.sun.faces.renderkit.html_basic.MenuRenderer.encodeEnd(MenuRenderer.java:430)
     at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:712)
     at javax.faces.webapp.UIComponentTag.encodeEnd(UIComponentTag.java:616)
     at javax.faces.webapp.UIComponentTag.doEndTag(UIComponentTag.java:539)
     at com.sun.faces.taglib.html_basic.SelectOneMenuTag.doEndTag(SelectOneMenuTag.java:505)
     at org.apache.jsp.customize_jsp._jspx_meth_h_selectOneMenu_0(customize_jsp.java:233)
     at org.apache.jsp.customize_jsp._jspx_meth_h_form_0(customize_jsp.java:156)
     at org.apache.jsp.customize_jsp._jspx_meth_f_view_0(customize_jsp.java:119)
     at org.apache.jsp.customize_jsp._jspService(customize_jsp.java:75)
     at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
     at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
     at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
     at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
     at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672)
     at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:463)
     at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:398)
     at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
     at com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:322)
     at com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:147)
     at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:352)
     at javax.faces.webapp.FacesServlet.service(FacesServlet.java:198)
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
     at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
     at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
     at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
     at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
     at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
     at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
     at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
     at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
     at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
     at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
     at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
     at java.lang.Thread.run(Unknown Source)
ERROR - Servlet.service() for servlet Faces Servlet threw exception
java.lang.IllegalArgumentException: Konvertierungs-Fehler: Wert ''{0}'' f�r Modell ''{1}''.
     at com.sun.faces.util.Util.getSelectItems(Util.java:642)
     at com.sun.faces.renderkit.html_basic.MenuRenderer.getOptionNumber(MenuRenderer.java:488)
     at com.sun.faces.renderkit.html_basic.MenuRenderer.renderSelect(MenuRenderer.java:465)
     at com.sun.faces.renderkit.html_basic.MenuRenderer.encodeEnd(MenuRenderer.java:430)
     at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:712)
     at javax.faces.webapp.UIComponentTag.encodeEnd(UIComponentTag.java:616)
     at javax.faces.webapp.UIComponentTag.doEndTag(UIComponentTag.java:539)
     at com.sun.faces.taglib.html_basic.SelectOneMenuTag.doEndTag(SelectOneMenuTag.java:505)
     at org.apache.jsp.customize_jsp._jspx_meth_h_selectOneMenu_0(customize_jsp.java:233)
     at org.apache.jsp.customize_jsp._jspx_meth_h_form_0(customize_jsp.java:156)
     at org.apache.jsp.customize_jsp._jspx_meth_f_view_0(customize_jsp.java:119)
     at org.apache.jsp.customize_jsp._jspService(customize_jsp.java:75)
     at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
     at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
     at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
     at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
     at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672)
     at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:463)
     at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:398)
     at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
     at com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:322)
     at com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:147)
     at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:352)
     at javax.faces.webapp.FacesServlet.service(FacesServlet.java:198)
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
     at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
     at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
     at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
     at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
     at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
     at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
     at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
     at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
     at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
     at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
     at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
     at java.lang.Thread.run(Unknown Source)

hi;
you may use tomcat 5.5 and eclipse with JSF, its debugging features are quite usefull, but i should warn you that you may have to make some settings to enable debugging.
http://asahin.net

Similar Messages

  • JSF debug output

    we are using JSF on tomcat, integrated in JBOSS.
    debugging is really horrible here - do you know, where i set debug levels or i can retrieve fine debug error message, also for JSF errors?
    thanks in advance,
    stefan

    thanks a lot - with one of those links i could really find a good way to get detailed debug messages. i will explain it here again to help maybe other users that have the same problem:
    1) search for file "log4j.xml" (e.g. jboss: server/default/conf)
    2) add there two sections:
       <!-- ============================== -->
       <!-- Append messages to the console -->
       <!-- ============================== -->
       <appender name="FACES" class="org.jboss.logging.appender.RollingFileAppender">
         <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
         <param name="File" value="${jboss.server.home.dir}/log/faces.log"/>
         <param name="Append" value="false"/>
         <param name="MaxFileSize" value="500KB"/>
         <param name="MaxBackupIndex" value="1"/>
         <param name="Threshold" value="DEBUG"/>
          <layout class="org.apache.log4j.PatternLayout">
             <!-- The default pattern: Date Priority [Category] Message\n -->
             <param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%c{1}] %m%n"/>
          </layout>
       </appender>and some lines below:
       <!-- ================ -->
       <!-- Limit categories -->
       <!-- ================ -->
        <category name="com.sun.faces" additivity="false">
            <priority value="ALL"/>
            <appender-ref ref="FACES"/>
        </category>  
      3) restart jboss / tomcat
    the output will be in jboss' log directory, e.g. "server/default/log". feel free to change this to any location you want.

  • Turn on JSF debug mode

    I see there is debug code in the JSF source code written by Sun. How is this activated?

    After a quick scan of the code I only see 2 faults:
    1) You declared the web.xml as servlet 2.4. It must be servlet 2.5 in order to use JSF 1.2 on JSP.
    2) You're forgetten the f:view in your JSP page. Have you ever got a standard JSF page to run?

  • Log4j and jsf

    I added log4j in my application. It is working and I can see my log.debug statements in the console. The problem is that I can see more than I want. My application uses jsf and Tomcat and I see many jsf debugs and I do not know what to change in my log4j.properties so as not to view them. My log4j.properties is the following:
    log4j.rootLogger=debugLog, stdout
    # CONSOLE appender
    log4j.appender.stdout=org.apache.log4j.ConsoleAppender
    log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
    log4j.appender.stdout.layout.ConversionPattern=%d{HH:mm:ss} %-5p %m%n
    log4j.appender.debugLog=org.apache.log4j.DailyRollingFileAppender
    log4j.appender.debugLog.Threshold=debug
    log4j.appender.debugLog.layout=org.apache.log4j.PatternLayout
    log4j.category.com.corejsf = debugLog
    I tried to add something like the following
    log4j.category.com.sun.faces = WARN
    log4j.additivity.com.sun.faces=falsebut nothing changed.Any suggestions??

    This is a log4j properties file problem. I'm not used to using the .properties file notation. I'm used to the XML notation for log4j.
    Here's how I'd do it in XML:
    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
    <log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/'>
            <!--
                    Set up the appender
            -->
            <appender name="Appender" class="org.apache.log4j.ConsoleAppender">
                    <param name="Append" value="true"/>
                    <layout class="org.apache.log4j.PatternLayout">
                            <param name="ConversionPattern" value="%d{HH:mm:ss} %-5p %m%n"/>
                    </layout>
            </appender>
            <logger name="my.java.package" additivity="false">
                    <level value="debug" />
                    <appender-ref ref="Appender" />
            </logger>
            <logger name="another.package.for.debug.level" additivity="false">
                    <level value="debug" />
                    <appender-ref ref="Appender" />
            </logger>
            <!--
                    Omitting the JSF package altogether should remove the undesired
                    DEBUG messages from it. However, if not, uncomment the following
                    lines.
            -->
            <!-- <logger name="javax.faces" additivity="false">
                    <level value="INFO" />
                    <appender-ref ref="Appender" />
            </logger> -->
            <root>
               <priority value ="debug" />
               <appender-ref ref="Appender" />
            </root>
    </log4j:configuration>This example will print to console only. If you want to print to a file instead, use the following lines (replaces the appender tags from the above example).
            <appender name="Appender" class="org.apache.log4j.DailyRollingFileAppender">
                    <param name="File" value="filePath/FileName.log"/>
                    <param name="DatePattern" value="'.'yyy-MM-dd"/>
                    <param name="Append" value="true"/>
                    <layout class="org.apache.log4j.PatternLayout">
                            <param name="ConversionPattern" value="%d{HH:mm:ss} %-5p %m%n"/>
                    </layout>
            </appender>I don't know how you'd get both the console and the file appender working at the same time.
    If you want further advice, or If you want advice on the .properties method of doing things, I suggest finding a log4j forum. The people there will undoubtedly have more experience and knowledge than us JSF nerds. =)
    I assure you though, JSF is compatible with log4j. The log4j properties file just needs to be set up properly (more challenging than it should be, if you ask me).
    CowKing

  • A JButton, a mnemonic, and a missing action event.

    Does anybody have a clue as to why a JButton, when activated by a mnemonic, would highlight the button onscreen but NOT call the button's actionPerformed() method?
    Specifically, I have a (huge) application that consists of a main JFrame and any number of internal JDialogs launched (mostly) by buttons and menu items. The situation is arising when a dialog is closed without expressly placing focus on a component parented by the main frame. Once the dialog closes you can hit a mnemonic key combination and the button associated will 'depress' (turn grey) but not reset back to it's normal state, nor will the associated actionPerformed be called. A second usage of the mnemonic immediately following the first one WILL activate the button (and reset the visual state). This behaviour can be avoided by clicking on a component (other than a button) on the main frame before trying the mnemonic the first time, but that's not acceptable from a user's standpoint (this job would be sooo much easier without them! ;) )
    I know it's not possible to get specific without code examples (which aren't possible because I can't narrow down were it's happening in the 900+ GUI-side scripts) but I'd really appreciate anyone who could point me in the right direction to start investigating this phenomenon. Thx.

    Hi Yuki,
    Yeah, after I turn on detail JSF debugging as instructed by the book Core JavaServer Faces, I figured out I had a validation error. That solves the mystery.
    Thanks,
    Edmond

  • Missing Action Event from Custom Component

    Hi JSF Gurus,
    I have two custom components, both extends UICommand and have their
    own renderers. I use them on two seperate pages, say component1 on
    page1 and component2 on page2. And page2 is include inside page2.
    I registered an action listener on component2. When the composite page
    is rendered, I clicked on component2. However, the registered action
    listener was not invoked. Inside the debugging (I'm using IntelliJ
    IDEA 5.0) I set a breakpoint inside the decode method of Renderer2
    (renderer for component2). I do see the componen2 actually as an
    actionLister method binding being set to correct value. I do queue the
    new action event to component2 at the end of the decode method. But
    the action listerner never invoke.
    Any idea what did I miss?
    Thanks,
    Edmond

    Hi Yuki,
    Yeah, after I turn on detail JSF debugging as instructed by the book Core JavaServer Faces, I figured out I had a validation error. That solves the mystery.
    Thanks,
    Edmond

  • Why can't I debug my JSF Portlet application after inserting an IFrame

    Hi,
    1) I created a jsf portlet application
    2) I add a button in my jsf portlet application
    3) I can debug my button's action method
    4) Now I open my jsp editor and add an iframe
    <iframe height="500" id="ifWindow" name="ifWindow"/>
    5) I try to debug my button's action method but the debug cursor never reaches it like in step 3
    6) I added a messageGroup but nothing appears there
    7) I monitored "C:\Program Files\Sun\Creator2_1\SunAppServer8\domains\creator\logs\server.log" and nothing appears there
    Is this a bug in Java Studio Creator or is there a problem with iframe in jsf portlet applications?
    Why can't I debug a jsf portlet application if I put an iframe?
    Has anyone got this to work in their jsf portlet application? What can I do to debug this simple application?
    Thanks,
    Marc

    Hi,
    I figured it out. I can debug my jsf application if I placed the iframe outside the <ui:form> element. If it's inside, I cannot debug the application. Are there any books or tutorials that I can read to get rules like this in JSF development?

  • Debug my jsf

    hi
    am developing my first web application in java using JSF/Hibernat/glassfish/Netbeans IDE i hope to find some way to debug my program during the execution and logging error messages
    thank's for help

    I don't see anything in that page that is particularly useful. Look for resources on how to debug using Netbeans, debugging a web/enterprise application isn't much different from debugging a regular client application. You set breakpoints and you let the code run by going to a specific JSF page. That will only properly work if the container (server) is executed from within the IDE itself so it can setup a proper link to the JVM debugging features for you.

  • URGENT: How to debug non-reproducable problem(s) in ADF JSF application?

    This is one of the most anoying things in programing.... We have JSF application developed by JDev 10.1.3 and deployed on AS. It works fine but almost once or twice per day users complain that, say on a certain page (could be any page) they click on a button or a link and nothing happens. Sometimes it looks like the browser is trying to open a page but never does and sometimes the link or a button is dead. I looked into log file under opmn/logs and could not find anything?
    This is very urgent, so please, please if you have any hint on how to approach this problem, let me know. At this time I cannot file the Service Request with Oracle since they would ask me to create sample code and reproduce the problem which is just not possible.
    please help.

    Hi,
    if you are on JDeveloper 10.1.3.0 then chances are that these are concurrency issues. If a user starts a long running query then others may be blocked by this. This is fixed in JSF RI that is contained in JDeveloper 10.1.3.1
    Its just a guess. To prove my assumption, make sure you run the app with a single seat and see if the issue reproduces or exclude queries from the tests.
    Frank

  • I can't debug with java studio creator (jsf) :

    when i type F5 occur this message :
    Exception while starting debugger:Cannot connect to remote VM
    Wath can i do ?
    Thank you.

    Hi,
    Can we consider this a duplicate thread of
    http://swforum.sun.com/jive/thread.jspa?threadID=52199&tstart=0
    Thanks,
    Creator Team.

  • Facelets and jsf-extensions problem.

    I'm fairly certain I've run into a problem between facelets and jsf-extensions. I'm working with JSF 1.2 RI, Woodstock, Facelets 1.1.13, on Tomcat 6.
    When trying to get Woodstock autoValidation to work I get a javascript error the "I has no properties". The error occurs in the com_sun_faces_ajax.js file in the jsf-extensions-dynamic-faces-0.1.jar (I've used both the RC4 and a build today ,10/18/07 from source with the same results). Here is the code snippet where it happens (with my comment).
    var I = G.getElementsByTagName("components")[0];
    var C = I.getElementsByTagName("render");
    for(var F = 0; F < C.length; F++) {
    In the second line there it looks like the variable I is null, but based on the post response below I don't know why.
    The response from the post looks like this:
    <partial-response><components><render id="PayableForm:vendorGci"><markup><![CDATA[{"valid":true,"id":"PayableForm:vendorGci"}]]></markup></render></components>
    However the server side code (validation method) never gets executed. I'm willing to do some digging and debug work, but I'd need to be pointed in the right direction.
    The following is more potentially useful code snippets.
    Here is the textField code:
    <w:form id="PayableForm">
    <w:textField style="display:none;" />
    <w:message for="vendorGci" />
    <w:label id="vendorGciLabel" for="vendorGci" text="Vendor: " />
    <w:textField id="vendorGci" autoValidate="true"
    text="${vendorBean.searchGci}" maxlength="8" required="true"
    validatorExpression="#{ vendorBean.validateVendor}" />
    Here is the javascript in the page (the init function is called from the body: onLoad="setTimeout('init();', 0);" , this does happen):
    <w:script type="text/javascript">
    function VendorListener(){
    function VendorNotify(props){
    alert("VendorNotify called!"); <--------------- I never see this alert message
    if ( props.id != "PayableForm:vendorGci") { return; }
    var field = document.getElementById("PayableForm:vendorGciLabel");
    field.setProps({
    valid: props.valid
    VendorListener.prototype.notify = VendorNotify;
    function initAccountRows(){
    var table = document.getElementById("PayableForm:vendorAccountTable");
    table.initAllRows();
    function init(){
    initAccountRows();
    var listener = new VendorListener();
    dojo.subscribe(
    webui.suntheme.widget.textField.event.validation.endTopic ,
    listener, listener.notify);
    Here is the validator method. It currently doesn't do anything, just trying to get something to work. I never see the output, and I never hit the breakpoint in the method.
    public void validateVendor(FacesContext context, UIComponent comp, Object value){
    System.out.println("**********************************");
    System.out.println("validateVendor called");
    System.out.println(value);
    System.out.println("**********************************");
    }

    Actually I don't need a global variable. I need to refer in my included template the actual backing bean used in the current page. As all my backing bean extends a abstract class I could bind my component to a property of the current backing bean, no matters which one. Just like a polymorphic call but without the parameter. Let's imagine I could get this object of the facesContext object I would be able to do:
    <rich:datascroller renderIfSinglePage="false" align="right" for="listagem" maxPages="12" fastStep="10"
    pageIndexVar="pageIndex" pagesVar="pages" stepControls="show" fastControls="hide" boundaryControls="show"
    inactiveStyleClass="paginacaoInativa" selectedStyleClass="paginacaoSelecionada"
    styleClass="paginacao" tableStyleClass="paginacaoTabela"
    binding="#{facesContext.currentBackingbean.formDataScroller}" id="paginacao">
    Instead of pass the backing bean to the ui:param of this template... Dou you get the point?

  • Problem in JSF with Swing in a web application

    hi
    i am using jsf for my online projects.my problem is that when i use Swing concept ,the server is closed automatically when i click the swing dialog option 'OK', how can i protect server being closed automatically when user click the the options of Swing dialog box.it is so tedious because my application is going to integrate
    with online server?
    my swing java file is
    * FileExistsDialog.java
    package com.obs.ftw.util.alert;
    import java.awt.*;
    import java.awt.event.*;
    import java.awt.geom.Rectangle2D;
    import java.util.*;
    import javax.swing.*;
    import javax.swing.plaf.metal.MetalLookAndFeel;
    * FileExistsDialog: A JOptionPane-like dialog that displays the message
    * that a file exists.
    public class FileExistsDialog extends JDialog {
    * The component that gets the focus when the window is first opened
    private Component initialFocusOwner = null;
    * Command string for replace action (e.g., a button).
    * This string is never presented to the user and should
    * not be internationalized.
    private String CMD_REPLACE = "OK"/*NOI18N*/;
    * Command string for a cancel action (e.g., a button).
    * This string is never presented to the user and should
    * not be internationalized.
    private String CMD_CANCEL = "CANCEL"/*NOI18N*/;
    // Components we need to access after initialization
    private JButton replaceButton = null;
    private JButton cancelButton = null;
    public FileExistsDialog(){
         System.out.println("INSIDE THE FILE EXIST DIALOG");
         JFrame frame = new JFrame() {
         public Dimension getPreferredSize() {
         return new Dimension(200,100);
         frame.setTitle("Debugging frame");
         frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
         frame.pack();
         frame.setVisible(false);
    FileExistsDialog dialog = new FileExistsDialog(frame, true);
         dialog.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent event) {
         System.exit(0);
         public void windowClosed(WindowEvent event) {
         System.exit(0);
         dialog.pack();
         dialog.setVisible(true);
    * Creates a new FileExistsDialog
    * @param parent parent frame
    * @param modal modal flag
    public FileExistsDialog(Frame parent,boolean modal) {
    super(parent, modal);
         //initResources();
         System.out.println("INSIDE THE FILE EXIST DIALOG CONSTRUCTOR");
    initComponents();
    pack();
    * Determines the locale, loads resources
    /* public void initResources() {
         Locale locale = Locale.getDefault();
    resources = ResourceBundle.getBundle(
              "samples.resources.bundles.FileExistsDialogResources", locale);
    imagePath = resources.getString("images.path");
    }*/ // initResources()
    * Sets all of the buttons to be the same size. This is done
    * dynamically after the buttons are created, so that the layout
    * automatically adjusts to the locale-specific strings.
    private void equalizeButtonSizes() {
         System.out.println("INSIDE THE equalizeButtonSizes()");
    String[] labels = new String[] {
    replaceButton.getText(),
         cancelButton.getText()
         // Get the largest width and height
         Dimension maxSize= new Dimension(0,0);
         Rectangle2D textBounds = null;
         Dimension textSize = null;
    FontMetrics metrics =
              replaceButton.getFontMetrics(replaceButton.getFont());
         Graphics g = getGraphics();
         for (int i = 0; i < labels.length; ++i) {
         textBounds = metrics.getStringBounds(labels, g);
         maxSize.width =
         Math.max(maxSize.width, (int)textBounds.getWidth());
         maxSize.height =
         Math.max(maxSize.height, (int)textBounds.getHeight());
    Insets insets =
         replaceButton.getBorder().getBorderInsets(replaceButton);
    maxSize.width += insets.left + insets.right;
    maxSize.height += insets.top + insets.bottom;
    // reset preferred and maximum size since BoxLayout takes both
         // into account
    replaceButton.setPreferredSize((Dimension)maxSize.clone());
    cancelButton.setPreferredSize((Dimension)maxSize.clone());
    replaceButton.setMaximumSize((Dimension)maxSize.clone());
    cancelButton.setMaximumSize((Dimension)maxSize.clone());
    } // equalizeButtonSizes()
    * This method is called from within the constructor to
    * initialize the dialog.
    private void initComponents() {
         System.out.println("INSIDE THE initComponents()");
         // Configure the window, itself
    Container contents = getContentPane();
    contents.setLayout(new GridBagLayout ());
    GridBagConstraints constraints = null;
    setTitle("Waring");
         // accessibility - all applets, frames, and dialogs should
         // have descriptions
         this.getAccessibleContext().setAccessibleDescription("Descriptions");
         addWindowListener(new WindowAdapter() {
         public void windowOpened(WindowEvent event) {
              // For some reason the window opens with no focus owner,
              // so we need to force the issue
         if (initialFocusOwner != null) {
              initialFocusOwner.requestFocus();
              // Only do this the 1st time the window is opened
              initialFocusOwner = null;
         public void windowClosing(WindowEvent event) {
         System.out.println("INSIDE THE windowClosing");     
         // Treat it like a cancel
              windowAction(CMD_CANCEL);
         // image
    JLabel imageLabel = new JLabel();
    imageLabel.setIcon(
    new ImageIcon("/images/degraded_large.gif"));
    // accessibility - set name so that low vision users get a description
    imageLabel.getAccessibleContext().setAccessibleName("OK");
    constraints = new GridBagConstraints ();
    constraints.gridheight = 2;
    constraints.insets = new Insets(12, 33, 0, 0);
    constraints.anchor = GridBagConstraints.NORTHEAST;
    contents.add(imageLabel, constraints);
    // header
    JLabel headerLabel = new JLabel ();
    headerLabel.setText("SAMPLE");
    headerLabel.setForeground(
         new Color(MetalLookAndFeel.getBlack().getRGB()));
    constraints = new GridBagConstraints ();
    constraints.insets = new Insets(12, 12, 0, 11);
    constraints.anchor = GridBagConstraints.WEST;
    contents.add(headerLabel, constraints);
         // Actual text of the message
         JTextArea contentTextArea = new JTextArea();
    contentTextArea.setEditable(false);
    contentTextArea.setText("SAMPLE");
    contentTextArea.setBackground(
              new Color(MetalLookAndFeel.getControl().getRGB()));
    // accessibility -- every component that can have the
         // keyboard focus must have a name. This text area has no
         // label, so the name must be set explicitly (if it had a
         // label, the name would be pulled from the label).
    contentTextArea.getAccessibleContext().setAccessibleName(
              "CONTENTNAME");
    constraints = new GridBagConstraints ();
    constraints.gridx = 1;
    constraints.gridy = 1;
    constraints.insets = new Insets(0, 12, 0, 11);
    constraints.anchor = GridBagConstraints.WEST;
    contents.add(contentTextArea, constraints);
         // Buttons
         JPanel buttonPanel = new JPanel();
    buttonPanel.setLayout (new BoxLayout(buttonPanel, 0));
         replaceButton = new JButton();
         replaceButton.setActionCommand(CMD_REPLACE);
    replaceButton.setText("OK");
    replaceButton.setToolTipText("TO OK");
         replaceButton.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent event) {
         windowAction(event);
    buttonPanel.add(replaceButton);
    // spacing
    buttonPanel.add(Box.createRigidArea(new Dimension(5,0)));
         cancelButton = new JButton();
         cancelButton.setActionCommand(CMD_CANCEL);
    cancelButton.setText("CANCEL");
    cancelButton.setNextFocusableComponent(replaceButton);
         cancelButton.setToolTipText("TO CANCEL");
         cancelButton.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent event) {
         windowAction(event);
    buttonPanel.add(cancelButton);
    constraints = new GridBagConstraints ();
    constraints.gridx = 1;
    constraints.gridy = 2;
    constraints.insets = new Insets(12, 12, 11, 11);
    constraints.anchor = GridBagConstraints.WEST;
    contents.add(buttonPanel, constraints);
         // Equalize the sizes of all the buttons
         equalizeButtonSizes();
         // For some reason, the dialog appears with no input focus.
         // We added a window listener above to force the issue
         initialFocusOwner = replaceButton;
    } // initComponents()
    * The user has selected an option. Here we close and dispose the dialog.
    * If actionCommand is an ActionEvent, getCommandString() is called,
    * otherwise toString() is used to get the action command.
    * @param actionCommand may be null
    private void windowAction(Object actionCommand) {
         System.out.println("INSIDE THE WINDOW ACTION");
         String cmd = null;
    if (actionCommand != null) {
         if (actionCommand instanceof ActionEvent) {
         cmd = ((ActionEvent)actionCommand).getActionCommand();
         } else {
         cmd = actionCommand.toString();
         if (cmd == null) {
         // do nothing
         } else if (cmd.equals(CMD_REPLACE)) {
         System.out.println("your replace code here...");
         } else if (cmd.equals(CMD_CANCEL)) {
         System.out.println("your cancel code here...");
         setVisible(false);
         dispose();
    } // windowAction()
    * This main() is provided for debugging purposes, to display a
    * sample dialog.
    // main()
    } // class FileExistsDialog
    and calling java function is
    public String fileDialog(){
         return "Success";
    public void processFile(ActionEvent event){
         System.out.println("INSIDE THE FILE DIALOG");
         FileExistsDialog file     = new FileExistsDialog();
         System.out.println("SUCCESS");
    called from
         <h:commandButton action="#{userLogin.fileDialog}" actionListener="#{userLogin.processFile}"></h:commandButton>
    pls help me as soon
    advance thanks
    rgds
    oasisdeserts

    Swing is GUI library for use in desktop applications.
    JSF is a web application framework which runs on an application server and is accessed by clients via web browsers.
    To fully understand what you have done, try accessing your application from a different machine than the server.
    To answer your question, don't invoke System.exit() if you would like the process to continue. But that is the least of your problems.

  • Simple question about JSF configuration

    I am using Tomcat 5.0 in Windows XP SP2. When I create a web application with JSF and put it into {tomcat_home}\webapps\, everything works perfect. But when I add a context path in Tomcat's server.xml such like
    <Context docBase="C:\works\java_projects\jsf_test" path="/jsf_test" reloadable="true" debug="0"/>
    And then I put same web application into this context path and try the url like http://machinename:8080/jsf_test/test.faces, it gives me exception as follow
    I wonder if anyone knows about that? Thanks a lot!!
    type Exception report
    message
    description The server encountered an internal error () that prevented it from fulfilling this request.
    exception
    javax.servlet.ServletException: Servlet.init() for servlet Faces Servlet threw exception
         org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462)
         org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
         org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
         org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
         org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
         org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
         org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
         java.lang.Thread.run(Thread.java:595)
    root cause
    java.lang.NullPointerException
         javax.faces.webapp.FacesServlet.init(FacesServlet.java:144)
         org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462)
         org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
         org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
         org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
         org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
         org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
         org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
         java.lang.Thread.run(Thread.java:595)
    note The full stack trace of the root cause is available in the Apache Tomcat/5.0.28 logs.
    :

    FacesServlet.init() processes only the followings:  facesContextFactory = FactoryFinder.getFactory(FACES_CONTEXT_FACTORY);
      applicationFactory = FactoryFinder.getFactory(APPLICATION_FACTORY);
      application = applicationFactory.getApplication();
      lifecycleFactory = FactoryFinder.getFactory(LIFECYCLE_FACTORY);
      lifecycle = lifecycleFactory.getLifecycle(lifecycleId);NPE occurrs at the third line when it can't find ApplicationFactory.
    Check how your container loads the class.

  • How can I put an output stream (HTML) from a remote process on my JSF page

    Hello,
    I've a question if someone could help.
    I have a jsf application that need to execute some remote stuff on a different process (it is a SAS application). This remote process produces in output an html table that I want to display in my jsf page.
    So I use a socket SAS class for setting up a server socket in a separate thread. The primary use of this class is to setup a socket listener, submit a command to a remote process (such as SAS) to generate a data stream (such as HTML or graphics) back to the listening socket, and then write the contents of the stream back to the servlet stream.
    Now the problem is that I loose my jsf page at all. I need a suggestion if some one would help, to understand how can I use this html datastream without writing on my Servlet output stream.
    Thank you in advance
    A.
    Just if you want to look at the details .....
    // Create the remote model
    com.sas.sasserver.submit.SubmitInterface si =
    (com.sas.sasserver.submit.SubmitInterface)
    rocf.newInstance(com.sas.sasserver.submit.SubmitInterface.class, connection);
    // Create a work dataset
    String stmt = "data work.foo;input field1 $ field2 $;cards;\na b\nc d\n;run;";
    si.setProgramText(stmt);
    // Setup our socket listener and get the port that it is bound to
    com.sas.servlet.util.SocketListener socket =
    new com.sas.servlet.util.SocketListener();
    int port = socket.setup();
    socket.start();
    // Get the localhost name
    String localhost = (java.net.InetAddress.getLocalHost()).getHostAddress();
    stmt = "filename sock SOCKET '" + localhost + ":" + port + "';";
    si.setProgramText(stmt);
    // Setup the ods options
    stmt = "ods html body=sock style=brick;";
    si.setProgramText(stmt);
    // Print the dataset
    stmt = "proc print data=work.foo;run;";
    si.setProgramText(stmt);
    // Close
    stmt = "ods html close;run;";
    si.setProgramText(stmt);
    // get my output stream
    context = FacesContext.getCurrentInstance();
    HttpServletResponse response = (HttpServletResponse) context.getExternalContext().getResponse();
    ServletOutputStream out = response.getOutputStream();
    // Write the data from the socket to the response
    socket.write(out);
    // Close the socket listener
    socket.close();

    The system exec function is on the Communication palette. Its for executing system commands. On my Win2K system, the help for FTP is:
    "Ftp
    Transfers files to and from a computer running an FTP server service (sometimes called a daemon). Ftp can be used interactively. Click ftp commands in the Related Topics list for a description of available ftp subcommands. This command is available only if the TCP/IP protocol has been installed. Ftp is a service, that, once started, creates a sub-environment in which you can use ftp commands, and from which you can return to the Windows 2000 command prompt by typing the quit subcommand. When the ftp sub-environment is running, it is indicated by the ftp command prompt.
    ftp [-v] [-n] [-i] [-d] [-g]
    [-s:filename] [-a] [-w:windowsize] [computer]
    Parameters
    -v
    Suppresses display of remote server responses.
    -n
    Suppresses autologin upon initial connection.
    -i
    Turns off interactive prompting during multiple file transfers.
    -d
    Enables debugging, displaying all ftp commands passed between the client and server.
    -g
    Disables file name globbing, which permits the use of wildcard characters (* and ?) in local file and path names. (See the glob command in the online Command Reference.)
    -s:filename
    Specifies a text file containing ftp commands; the commands automatically run after ftp starts. No spaces are allowed in this parameter. Use this switch instead of redirection (>).
    -a
    Use any local interface when binding data connection.
    -w:windowsize
    Overrides the default transfer buffer size of 4096.
    computer
    Specifies the computer name or IP address of the remote computer to connect to. The computer, if specified, must be the last paramete
    r on the line."
    I use tftp all of the time to transfer files in a similar manner. Test the transfer from the Windows command line and copy it into a VI. Pass the command line to system exec and wait until it's done.

  • How to load a class dynamically (via reflection) in a jsf-component

    Hi all,
    I am writing my own jsf component and I would like to do it generically. Therefore I have an attribute, where the developer can pass a fully qualified classname, which I want to use to instantiate. But I have a Problem with the classloaders, everytime I get a ClassNotFound-Exception during debugging.
    Does anybody know how it is possible, to to get the most parent classloader?
    Currently I am even not able to load a class, which is in the same package like all other compontent-classes.
    Thank you very much in advance
    Thomas

    Within web applications, I believe it is recommended to use Thread.getContextClassLoader(). Keep in mind that web applications require different classloader semantics than regular Java applications. The class loader which gets resources from the WAR is favored over others, even when this violates the normal class loading conventions.

Maybe you are looking for