logo       

Related Msgs: audio.musicbrai...    enbd.general/20...    ietf.idr/2002-0...    java.ant-contri...    gnu.make.genera...    qplus.devel/200...    video.freevo.cv...    os.netbsd.ports...    yellowdog.gener...    xfree86.cvs/200...    search.nutch.us...    freedesktop.xse...    programming.swi...    capabilities.ge...    telephony.pbx.a...    mail.sylpheed.c...    db.firebase.por...    boot-loaders.u-...    recreation.radi...    netbsd.bugs/200...    web.zope.plone....    user-groups.lin...   

Chiba outside of a servlet environment: msg#00001

Subject: Chiba outside of a servlet environment
Hello,

First of all, a large respect for your Chiba achievements!

Unfortunately, I have the following problem:

I would like to lift out the Chiba 0.9.6 from its servlet environment.
In order to realize this I address the Chiba processor from an external class.
I use all original files, like "html4.xsl", "html-form-controls.xsl" and the XForms document "hello.xhtml" for it.

-------------------------------------------------------------------------------------------------------------
My test class:

    package org.chiba.main;

    import java.io.BufferedWriter;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.OutputStream;
    import java.io.OutputStreamWriter;
    import java.io.Writer;

    import org.chiba.xml.xforms.exception.XFormsException;
    import org.chiba.adapter.web.ServletAdapter;


    public class ExtStart {
   
        public void to_servlet() throws IOException, XFormsException {

//    Konfiguration und indirekte Instantiierung der ChibaBean
       
            ServletAdapter sap = new ServletAdapter();
            sap.setFormPath("D:\\DA\\Test\\source\\hello.xhtml");
            sap.setActionUrl("itemset.xml");
            sap.setStylesheet("D:\\DA\\Test\\xslt\\html4.xsl");
            sap.setStylesheetPath("D:\\DA\\Test\\xslt");
            sap.setCSS("D:\\DA\\Test\\styles\\mozilla-xforms.css");
            sap.init();
       
//    Erzeugen des UserInterface
       
            OutputStream out = new FileOutputStream( "D:\\DA\\Test\\final.html" );
            Writer w =  new BufferedWriter(new OutputStreamWriter( out, "UTF-8" ));
            System.out.println(">>> Building User Interface ...");
            sap.buildUI(w);
            System.out.println(">>> Die Datei final.html wurde erzeugt.");
       
        }
       
       public static void main(String[] args) throws IOException, XFormsException {
   
           ExtStart start = new ExtStart();
            start.to_servlet();
        }
    }

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


The DOMSource, which is provided by the original processor, is also perfectly identical to the DOMSource in my application.
Therefore, I assume that my XForms processor (thus the ChibaBean) processes the input correctly.

The problem arises in the BuildUI phase, if Xalans "transform"-method is called:  a "NullPointerException" occurs.
(The arguments, with which the transform-method is called from the generate-method, are correct.)

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

My Log:

DEBUG: using form: D:\DA\Test\source\hello.xhtml
DEBUG: process: start
DEBUG: ensuring namespace: xforms:action=''
DEBUG: ensuring namespace: xforms:method='post'
DEBUG: ensuring namespace: xforms:replace='all'
DEBUG: ensuring namespace: xforms:nodeset='name'
DEBUG: ensuring namespace: xforms:required='true()'
DEBUG: ensuring namespace: xforms:appearance='minimal'
DEBUG: ensuring namespace: xforms:bind='bind1'
DEBUG: ensuring namespace: xforms:appearance='minimal'
DEBUG: ensuring id: id='C1'
DEBUG: ensuring id: id='C2'
DEBUG: ensuring namespace: xforms:submission='debug'
DEBUG: process: finish
DEBUG: Formpath: D:\DA\Test\source\hello.xhtml
DEBUG: CSS-File: D:\DA\Test\styles\mozilla-xforms.css
DEBUG: XSLT stylesheet: D:\DA\Test\xslt\html4.xsl
DEBUG: action URL: itemset.xml
DEBUG: loading config from 'default.xml' ...
DEBUG: CSS: D:\DA\Test\styles\mozilla-xforms.css
DEBUG: init
DEBUG: creating event xforms-model-construct
DEBUG: dispatch: xforms-model-construct to [xforms:model: null]
DEBUG: dispatch: cancelable: false
DEBUG: dispatch: bubbles: true
DEBUG: [xforms:model id='C-1'] model construct
DEBUG: [xforms:instance id='C-2'] init
DEBUG: [xforms:bind id='bind1'] init
DEBUG: [xforms:bind id='bind1'] init: resolved location path: /*[1]/name
DEBUG: [xforms:bind id='bind1'] init: initializing model item for path '/data[1]/name[1]'
DEBUG: [xforms:instance id='C-2'] getDataItem: looking for canonical path '/data[1]/name[1]'
DEBUG: [xforms:instance id='C-2'] getDataItem: model item created for canonical path '/data[1]/name[1]'
DEBUG: [xforms:submission id='debug'] init
DEBUG: creating event xforms-rebuild
DEBUG: dispatch: xforms-rebuild to [xforms:model: null]
DEBUG: dispatch: cancelable: true
DEBUG: dispatch: bubbles: true
DEBUG: [xforms:model id='C-1'] rebuild
DEBUG: [xforms:model id='C-1'] rebuild: creating main dependency graph for 1 bind(s)
DEBUG: [xforms:instance id='C-2'] getDataItem: looking for canonical path '/data[1]/name[1]'
DEBUG: built vertex required(true())
DEBUG: evaluated _expression_ 'true()' to 'true'
DEBUG: creating event xforms-recalculate
DEBUG: dispatch: xforms-recalculate to [xforms:model: null]
DEBUG: dispatch: cancelable: true
DEBUG: dispatch: bubbles: true
DEBUG: [xforms:model id='C-1'] recalculate
DEBUG: [xforms:model id='C-1'] recalculate: creating sub dependency graph for 1 node(s)
DEBUG: starting recalculation ...
DEBUG: evaluated _expression_ 'true()' to 'true'
DEBUG: ... recalculation finished
DEBUG: creating event xforms-revalidate
DEBUG: dispatch: xforms-revalidate to [xforms:model: null]
DEBUG: dispatch: cancelable: true
DEBUG: dispatch: bubbles: true
DEBUG: [xforms:model id='C-1'] revalidate
DEBUG: [xforms:model id='C-1'] revalidate: revalidating 1 instance(s)
DEBUG: [xforms:instance id='C-2'] getDataItem: looking for canonical path '/data[1]'
DEBUG: [xforms:instance id='C-2'] getDataItem: model item created for canonical path '/data[1]'
DEBUG: computed valid node /data[1]
DEBUG: [xforms:instance id='C-2'] getDataItem: looking for canonical path '/data[1]/name[1]'
DEBUG: computed invalid node /data[1]/name[1]
DEBUG: creating event xforms-model-construct-done
DEBUG: dispatch: xforms-model-construct-done to [xforms:model: null]
DEBUG: dispatch: cancelable: false
DEBUG: dispatch: bubbles: true
DEBUG: [xforms:model id='C-1'] model construct done
DEBUG: [xforms:model id='C-1'] model construct done: starting ui initialization
DEBUG: [xforms:group id='C-3'] init
DEBUG: [xforms:label id='C-4'] init
DEBUG: [xforms:instance id='C-2'] getDataItem: looking for canonical path '/data[1]/name[1]'
DEBUG: [xforms:instance id='C-2'] getDataItem: looking for canonical path '/data[1]/name[1]'
DEBUG: [xforms:label id='C-5'] init
DEBUG: [xforms:alert id='C-6'] init
DEBUG: [xforms:hint id='C-7'] init
DEBUG: [xforms:group id='C-8'] init
DEBUG: [xforms:trigger id='C1'] init
DEBUG: [xforms:label id='C-11'] init
DEBUG: [xforms:action id='C-12'] init
DEBUG: [xforms:trigger id='reset-btn'] init
DEBUG: [xforms:label id='C-11'] init
DEBUG: [xforms:action id='C-12'] init
WARN: [xforms:reset id='reset'] init: the 'model' attribute is missing, assuming parent model 'C-1'
DEBUG: creating event xforms-ready
DEBUG: dispatch: xforms-ready to [xforms:model: null]
DEBUG: dispatch: cancelable: false
DEBUG: dispatch: bubbles: true
DEBUG: [xforms:model id='C-1'] ready
>>> Building User Interface ...
DEBUG: setting UI generator param 'phase': init
DEBUG: setting UI generator param 'data-prefix': d_
DEBUG: setting UI generator param 'trigger-prefix': t_
DEBUG: setting UI generator param 'user-agent': null
DEBUG: received input node ...
<?xml version="1.0" encoding="ISO-8859-1"?>
<html xml:base="http://localhost:8080/chiba-0.9.6/" xmlns="http://www.w3.org/2002/06/xhtml2" xmlns:chiba="http://chiba.sourceforge.net/2003/08/xforms" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <head>
        <title>hello</title>
        <xforms:model id="C-1">
            <xforms:submission id="debug" xforms:action="" xforms:method="post" xforms:replace="all"/>
            <xforms:instance id="C-2" xmlns="">
                <data>
                    <name/>
                </data>
            </xforms:instance>
            <xforms:bind id="bind1" xforms:nodeset="name" xforms:required="true()"/>
        </xforms:model>
    </head>
    <body>
        <xforms:group id="C-3" xforms:appearance="minimal">
            <xforms:label id="C-4">Hello</xforms:label>
            <xforms:input id="name-input" xforms:bind="bind1">
                <xforms:label id="C-5">Your name: </xforms:label>
                <xforms:alert id="C-6">Please put your name here</xforms:alert>
                <xforms:hint id="C-7">Please input your name into this field</xforms:hint>
                <chiba:data chiba:enabled="true" chiba:readonly="false" chiba:required="true" chiba:type="string" chiba:valid="true" chiba:visited="false" chiba:xpath="/data[1]/name[1]"></chiba:data>
            </xforms:input>
            <xforms:group id="C-8" xforms:appearance="minimal">
                <!--                <xforms:submit id="C-9" submission="debug">-->
                <!--                    <xforms:label id="C-10">Debug</xforms:label>-->
                <!--                </xforms:submit>-->
                <xforms:trigger id="C1">
                    <xforms:label id="C-11">Debug</xforms:label>
                    <xforms:action id="C-12">
                        <xforms:send id="C2" xforms:submission="debug"/>
                    </xforms:action>
                    <chiba:data chiba:enabled="true" chiba:readonly="false" chiba:required="false" chiba:valid="true" chiba:visited="false"/>
                </xforms:trigger>
                <xforms:trigger id="reset-btn">
                    <xforms:label id="C-11">Reset</xforms:label>
                    <xforms:action id="C-12">
                        <xforms:reset id="reset"/>
                    </xforms:action>
                    <chiba:data chiba:enabled="true" chiba:readonly="false" chiba:required="false" chiba:valid="true" chiba:visited="false"/>
                </xforms:trigger>
            </xforms:group>
        </xforms:group>
    </body>
</html>
DEBUG: org.apache.xalan.processor.TransformerFactoryImpl@6e293a
DEBUG: fileName: html4.xsl
DEBUG: URIResolver: org.chiba.tools.xslt.XSLTGenerator@54a328
DEBUG: loadFromDisk: D:\DA\Test\xslt\html4.xsl
stylesheet filename to load: html4.xsl
DEBUG: Stylesheet 'html4.xsl' will be compiled
DEBUG: URIRESOLVER CALLED
DEBUG: URIRESOLVER href: html-form-controls.xsl
DEBUG: URIRESOLVER base: D:\Programmierung\Eclipse 3.0\workspace\chibatest 0.9.6\dummy.xsl  ????????
DEBUG: loadFromDisk: D:\DA\Test\xslt\html-form-controls.xsl
stylesheet filename to load: html-form-controls.xsl
DEBUG: adding html4.xsl to cache
org.apache.xalan.templates.StylesheetRoot@11671b2

TransformerParameters:
>>> action-url: itemset.xml
>>> data-prefix: d_
>>> debug-enabled: true
>>> trigger-prefix: t_
>>> phase: init
>>> css-file: D:\DA\Test\styles\mozilla-xforms.css
>>> selector-prefix: s_
>>> DOM Source: javax.xml.transform.dom.DOMSource@c9d92c
>>> Stylesheet: html-default / InputNode: [#document: null] / org.chiba.tools.xslt.XSLTGenerator@54a328
file:///D:/Programmierung/Eclipse%203.0/workspace/chibatest%200.9.6/dummy.xsl; Zeilennummer0; Spaltennummer0; processing phase:
                init
file:///D:/Programmierung/Eclipse%203.0/workspace/chibatest%200.9.6/dummy.xsl; Zeilennummer0; Spaltennummer0; ********** XSLT MESSAGES ARE ENABLED
file:///D:/Programmierung/Eclipse%203.0/workspace/chibatest%200.9.6/dummy.xsl; Zeilennummer0; Spaltennummer0; html
file:///D:/Programmierung/Eclipse%203.0/workspace/chibatest%200.9.6/dummy.xsl; Zeilennummer0; Spaltennummer0; head
file:///D:/Programmierung/Eclipse%203.0/workspace/chibatest%200.9.6/dummy.xsl; Zeilennummer0; Spaltennummer0; user agent:
                default
file:///D:/Programmierung/Eclipse%203.0/workspace/chibatest%200.9.6/dummy.xsl; Zeilennummer0; Spaltennummer0; body
file:///D:/Programmierung/Eclipse%203.0/workspace/chibatest%200.9.6/dummy.xsl; Zeilennummer0; Spaltennummer0; found minimal group
file:///D:/Programmierung/Eclipse%203.0/workspace/chibatest%200.9.6/dummy.xsl; Zeilennummer0; Spaltennummer0; handling group label ...

org.chiba.xml.xforms.exception.XFormsException
    at org.chiba.tools.xslt.XSLTGenerator.generate(XSLTGenerator.java:195)
    at org.chiba.adapter.web.ServletAdapter.buildUI(ServletAdapter.java:355)
    at org.chiba.main.ExtStart.to_servlet(ExtStart.java:33)
    at org.chiba.main.ExtStart.main(ExtStart.java:41)
; SystemID: file:///D:/Programmierung/Eclipse%203.0/workspace/chibatest%200.9.6/dummy.xsl     
???????? javax.xml.transform.TransformerException: java.lang.NullPointerException
    at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2341)
    at org.apache.xalan.transformer.TransformerImpl.applyTemplateToNode(TransformerImpl.java:2202)
    at org.apache.xalan.transformer.TransformerImpl.transformNode(TransformerImpl.java:1276)
    at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:673)
    at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1192)
    at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1170)
    at org.chiba.tools.xslt.XSLTGenerator.generate(XSLTGenerator.java:192)
    at org.chiba.adapter.web.ServletAdapter.buildUI(ServletAdapter.java:355)
    at org.chiba.main.ExtStart.to_servlet(ExtStart.java:33)
    at org.chiba.main.ExtStart.main(ExtStart.java:41)
Caused by: java.lang.NullPointerException
    at org.apache.xml.serializer.ToHTMLStream.processAttribute(ToHTMLStream.java:939)
    at org.apache.xml.serializer.ToHTMLStream.processAttributes(ToHTMLStream.java:1628)
    at org.apache.xml.serializer.ToHTMLStream.endElement(ToHTMLStream.java:865)
    at org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:707)
    at org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:395)
    at org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:177)
    at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2336)
    ... 9 more
---------
java.lang.NullPointerException
    at org.apache.xml.serializer.ToHTMLStream.processAttribute(ToHTMLStream.java:939)
    at org.apache.xml.serializer.ToHTMLStream.processAttributes(ToHTMLStream.java:1628)
    at org.apache.xml.serializer.ToHTMLStream.endElement(ToHTMLStream.java:865)
    at org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:707)
    at org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:395)
    at org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:177)
    at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2336)
    at org.apache.xalan.transformer.TransformerImpl.applyTemplateToNode(TransformerImpl.java:2202)
    at org.apache.xalan.transformer.TransformerImpl.transformNode(TransformerImpl.java:1276)
    at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:673)
    at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1192)
    at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1170)
    at org.chiba.tools.xslt.XSLTGenerator.generate(XSLTGenerator.java:192)
    at org.chiba.adapter.web.ServletAdapter.buildUI(ServletAdapter.java:355)
    at org.chiba.main.ExtStart.to_servlet(ExtStart.java:33)
    at org.chiba.main.ExtStart.main(ExtStart.java:41)
; SystemID: file:///D:/Programmierung/Eclipse%203.0/workspace/chibatest%200.9.6/dummy.xsl
javax.xml.transform.TransformerException: java.lang.NullPointerException
    at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2341)
    at org.apache.xalan.transformer.TransformerImpl.applyTemplateToNode(TransformerImpl.java:2202)
    at org.apache.xalan.transformer.TransformerImpl.transformNode(TransformerImpl.java:1276)
    at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:673)
    at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1192)
    at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1170)
    at org.chiba.tools.xslt.XSLTGenerator.generate(XSLTGenerator.java:192)
    at org.chiba.adapter.web.ServletAdapter.buildUI(ServletAdapter.java:355)
    at org.chiba.main.ExtStart.to_servlet(ExtStart.java:33)
    at org.chiba.main.ExtStart.main(ExtStart.java:41)
Caused by: java.lang.NullPointerException
    at org.apache.xml.serializer.ToHTMLStream.processAttribute(ToHTMLStream.java:939)
    at org.apache.xml.serializer.ToHTMLStream.processAttributes(ToHTMLStream.java:1628)
    at org.apache.xml.serializer.ToHTMLStream.endElement(ToHTMLStream.java:865)
    at org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:707)
    at org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:395)
    at org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:177)
    at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2336)
    ... 9 more
---------
java.lang.NullPointerException
    at org.apache.xml.serializer.ToHTMLStream.processAttribute(ToHTMLStream.java:939)
    at org.apache.xml.serializer.ToHTMLStream.processAttributes(ToHTMLStream.java:1628)
    at org.apache.xml.serializer.ToHTMLStream.endElement(ToHTMLStream.java:865)
    at org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:707)
    at org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:395)
    at org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:177)
    at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2336)
    at org.apache.xalan.transformer.TransformerImpl.applyTemplateToNode(TransformerImpl.java:2202)
    at org.apache.xalan.transformer.TransformerImpl.transformNode(TransformerImpl.java:1276)
    at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:673)
    at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1192)
    at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1170)
    at org.chiba.tools.xslt.XSLTGenerator.generate(XSLTGenerator.java:192)
    at org.chiba.adapter.web.ServletAdapter.buildUI(ServletAdapter.java:355)
    at org.chiba.main.ExtStart.to_servlet(ExtStart.java:33)
    at org.chiba.main.ExtStart.main(ExtStart.java:41)
Exception in thread "main"

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


In the XSL-Stylesheet "html4.xsl" the first problem is placed here:


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

stylesheet "html4.xsl":

...
     <!-- ###################################### MINIMAL GROUP ###################################### -->
    <!-- handle 'minimal' group - this is the default for groups and only annotates CSS to labels + controls and
    outputs them in a kind of flow-layout -->
    <xsl:template match="xforms:group[@xforms:appearance='minimal']">
        <xsl:if test="$debug-enabled='true'">
            <xsl:message>found minimal group</xsl:message>
        </xsl:if>
        <!-- ***** ignore this group if not enabled ***** -->
        <!--        <xsl:if test="not(chiba:data/@chiba:enabled='false')">-->
        <xsl:variable name="group-css">
            <xsl:call-template name="assembleClasses"/>
        </xsl:variable>
        <div class="{concat('minimal-group',$group-css)}" id="{@id}">
            <xsl:copy-of select="@class"/>
            <xsl:for-each select="*">
                <xsl:choose>
                    <!-- **** handle group label ***** -->
                    <xsl:when test="self::xforms:label" xmlns:xforms="http://www.w3.org/2002/xforms">
                        <xsl:if test="$debug-enabled='true'">
                            <xsl:message>handling group label ...</xsl:message>
                        </xsl:if>
                        <span class="minimal-group-label label">
                            <xsl:apply-templates select="."/>
                        </span>
                    </xsl:when>
...

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

MY QUESTIONS:

1.)    I imported the complete "src"-path (org and tools) into my Eclipse-project. 
        Do further classes have to be imported for my purpose ?

2.)    If I transform the UI-DOM from the Tomcat console (as input) with the Stylesheet "html4.xsl" and XALAN outside of the Servlet
        environment, the error in the place in the Stylesheet, specified above, arises.
        Within the Servlet environment the transformation functions perfectly.
        What causes the difference?

3.)    Why does the error message point to the fictitious stylesheet "dummy.xsl" ?

4.)    Why does the log point to the project directory                
        file:///D:/Programmierung/Eclipse%203.0/workspace/chibatest%200.9.6/dummy.xsl,
        and not to
       
file:///D:/Programmierung/Eclipse%203.0/workspace/chibatest%200.9.6/javax.xml.transform.dom.DOMSource ?

5.)    If I deactivate the error causing lines in the stylesheet "html4.xsl", or if I do without groups and repeats in the XForms                     document, the transformation runs off error free and I receive a HTML-document (over a responseWriter).
        But the HTML document contains no "class"-attributes (e.g. <span class="trigger valid readwrite optional enabled">).
       
        Can the error be caused by a not found CSS class (in the example: "minimal-group-label") ?
        Note: The CSS class for "minimal-group" is found correct.
       
        Does the CSS files have to be present at a certain place?


I thank you for your efforts and hope for fast answer.



best regards from germany

Stefan Grosser

Try Searching:
servers, voip, java, networking, microsoft ...
<Prev in Thread] Current Thread [Next in Thread>