You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cocoon.apache.org by Jonny Pony <jo...@hotmail.com> on 2004/11/10 22:03:01 UTC

- Tried to write it myself, but failed

Hi there,

so I tried to write the <xsp-session-fw:setxml> - Method. I failed.
Here my code so far (the complete java and xsl-files are in the 
attachement).

XSPSessionFwHelper:
…
public static void setXML(ComponentManager cm, String context, String path,
			String xml) throws ProcessingException, Exception {

		SessionManager sessionManager = null;
		Document doc = null;
		try {
			// Start looking up the manager
			sessionManager = (SessionManager) cm.lookup(SessionManager.ROLE);

			//	Create a DOM builder and parse the string
			DocumentBuilderFactory factory = DocumentBuilderFactory
					.newInstance();
			Document d = factory.newDocumentBuilder().parse(
					new InputSource(new StringReader(xml)));

			// Import the nodes of the new document into doc so that they
			// will be compatible with doc
			Node node = doc.importNode(d.getDocumentElement(), true);

			// Create the document fragment node to hold the new nodes
			DocumentFragment docfrag = doc.createDocumentFragment();

			// Move the nodes into the fragment
			while (node.hasChildNodes()) {
				docfrag.appendChild(node.removeChild(node.getFirstChild()));
			}
			sessionManager.setContextFragment(context, path, docfrag);

		} catch (ComponentException ce) {
			throw new ProcessingException(
					"Error during lookup of SessionManager component.", ce);
		} catch (Exception e) {
		} finally {
			// End releasing the sessionmanager
			cm.release((Component) sessionManager);
		}
	}


Session-fw.xsl:
     <xsl:template match="xsp-session-fw:setxml">
		<xsl:variable name="context">
			<xsl:call-template name="value-for-context"/>
		</xsl:variable>
		<xsl:variable name="path">
			<xsl:call-template name="value-for-path"/>
		</xsl:variable>
		<xsl:variable name="df">
			<xsl:call-template name="value-for-DocumentFragment"/>
		</xsl:variable>
		<xsp:logic>XSPSessionFwHelper.setXML(this.manager,
                String.valueOf(<xsl:copy-of select="$context"/>),
                String.valueOf(<xsl:copy-of select="$path"/>), 
String.valueOf(<xsl:copy-of select="df"/>))</xsp:logic>
	</xsl:template>
     …
       <xsl:template name="value-for-DocumentFragment">
		<xsl:copy-of select="."/>
	</xsl:template>

I get the following error using the setxml in a xsp:
…
Original Exception: org.apache.cocoon.components.language.LanguageException: 
Error compiling session_xsp:
ERROR 1 (org\apache\cocoon\www\samples\blocks\portal_fw\session_xsp.java):
...
      "context",
      "context",
      "CDATA",
      "authentication"

// start error (lines 409-409) "Syntax error on token ";", ")" expected"
    );

// end error

    xspAttr.addAttribute(
      "",
      "path",

...
Line 409, column 0: Syntax error on token ";", ")" expected
	at 
org.apache.cocoon.components.language.programming.java.JavaLanguage.compile(JavaLanguage.java:204)
	at 
org.apache.cocoon.components.language.programming.CompiledProgrammingLanguage.load(CompiledProgrammingLanguage.java:173)
	at 
org.apache.cocoon.components.language.generator.ProgramGeneratorImpl.loadProgram(ProgramGeneratorImpl.java:399)
	at 
org.apache.cocoon.components.language.generator.ProgramGeneratorImpl.load(ProgramGeneratorImpl.java:311)
	at 
org.apache.cocoon.generation.ServerPagesGenerator.setup(ServerPagesGenerator.java:170)
	at 
org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.setupPipeline(AbstractProcessingPipeline.java:362)
	at 
org.apache.cocoon.components.pipeline.impl.AbstractCachingProcessingPipeline.setupPipeline(AbstractCachingProcessingPipeline.java:646)
…


Here the session_xsp.java; the error part:
…
XSPSessionFwHelper.setXML(this.manager,
          String.valueOf(""),
          String.valueOf(""), String.valueOf(

this.contentHandler.startElement(
"http://apache.org/xsp/session-fw/1.0",
"setxml",
"xsp-session-fw:setxml",
xspAttr
); // Syntax error, insert ")" to complete Expression
xspAttr.clear();
…


this.contentHandler.endElement(
"http://apache.org/xsp/session-fw/1.0",
"setxml",
"xsp-session-fw:setxml"
);

)) // Syntax error on tokens, delete these tokens


OK. This is my first attempt. If this is some kind of right approach, yeahh. 
If not, please don’t laugh.

Could someone give me a hint, if I’m “not so wrong”.

cheers
jonny

_________________________________________________________________
Tun Sie Ihrem Rechner ’was Gutes. MSN Hotmail mit McAfee® Anti-Virus. 
http://www.msn.de/email/antivirus/ Jetzt kostenlos anmelden!

Re: - Tried to write it myself, but failed

Posted by Antonio Gallardo <ag...@agssa.net>.
Hi Jonny:

I will try to see at that on the weekend. ;-)

Best Regards,

Antonio Gallardo

Jonny Pony dijo:
> Hi there,
>
> so I tried to write the <xsp-session-fw:setxml> - Method. I failed.
> Here my code so far (the complete java and xsl-files are in the
> attachement).
>
> XSPSessionFwHelper:
> …
> public static void setXML(ComponentManager cm, String context, String
> path,
> 			String xml) throws ProcessingException, Exception {
>
> 		SessionManager sessionManager = null;
> 		Document doc = null;
> 		try {
> 			// Start looking up the manager
> 			sessionManager = (SessionManager) cm.lookup(SessionManager.ROLE);
>
> 			//	Create a DOM builder and parse the string
> 			DocumentBuilderFactory factory = DocumentBuilderFactory
> 					.newInstance();
> 			Document d = factory.newDocumentBuilder().parse(
> 					new InputSource(new StringReader(xml)));
>
> 			// Import the nodes of the new document into doc so that they
> 			// will be compatible with doc
> 			Node node = doc.importNode(d.getDocumentElement(), true);
>
> 			// Create the document fragment node to hold the new nodes
> 			DocumentFragment docfrag = doc.createDocumentFragment();
>
> 			// Move the nodes into the fragment
> 			while (node.hasChildNodes()) {
> 				docfrag.appendChild(node.removeChild(node.getFirstChild()));
> 			}
> 			sessionManager.setContextFragment(context, path, docfrag);
>
> 		} catch (ComponentException ce) {
> 			throw new ProcessingException(
> 					"Error during lookup of SessionManager component.", ce);
> 		} catch (Exception e) {
> 		} finally {
> 			// End releasing the sessionmanager
> 			cm.release((Component) sessionManager);
> 		}
> 	}
>
>
> Session-fw.xsl:
>      <xsl:template match="xsp-session-fw:setxml">
> 		<xsl:variable name="context">
> 			<xsl:call-template name="value-for-context"/>
> 		</xsl:variable>
> 		<xsl:variable name="path">
> 			<xsl:call-template name="value-for-path"/>
> 		</xsl:variable>
> 		<xsl:variable name="df">
> 			<xsl:call-template name="value-for-DocumentFragment"/>
> 		</xsl:variable>
> 		<xsp:logic>XSPSessionFwHelper.setXML(this.manager,
>                 String.valueOf(<xsl:copy-of select="$context"/>),
>                 String.valueOf(<xsl:copy-of select="$path"/>),
> String.valueOf(<xsl:copy-of select="df"/>))</xsp:logic>
> 	</xsl:template>
>      …
>        <xsl:template name="value-for-DocumentFragment">
> 		<xsl:copy-of select="."/>
> 	</xsl:template>
>
> I get the following error using the setxml in a xsp:
> …
> Original Exception:
> org.apache.cocoon.components.language.LanguageException:
> Error compiling session_xsp:
> ERROR 1 (org\apache\cocoon\www\samples\blocks\portal_fw\session_xsp.java):
> ...
>       "context",
>       "context",
>       "CDATA",
>       "authentication"
>
> // start error (lines 409-409) "Syntax error on token ";", ")" expected"
>     );
>
> // end error
>
>     xspAttr.addAttribute(
>       "",
>       "path",
>
> ...
> Line 409, column 0: Syntax error on token ";", ")" expected
> 	at
> org.apache.cocoon.components.language.programming.java.JavaLanguage.compile(JavaLanguage.java:204)
> 	at
> org.apache.cocoon.components.language.programming.CompiledProgrammingLanguage.load(CompiledProgrammingLanguage.java:173)
> 	at
> org.apache.cocoon.components.language.generator.ProgramGeneratorImpl.loadProgram(ProgramGeneratorImpl.java:399)
> 	at
> org.apache.cocoon.components.language.generator.ProgramGeneratorImpl.load(ProgramGeneratorImpl.java:311)
> 	at
> org.apache.cocoon.generation.ServerPagesGenerator.setup(ServerPagesGenerator.java:170)
> 	at
> org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.setupPipeline(AbstractProcessingPipeline.java:362)
> 	at
> org.apache.cocoon.components.pipeline.impl.AbstractCachingProcessingPipeline.setupPipeline(AbstractCachingProcessingPipeline.java:646)
> …
>
>
> Here the session_xsp.java; the error part:
> …
> XSPSessionFwHelper.setXML(this.manager,
>           String.valueOf(""),
>           String.valueOf(""), String.valueOf(
>
> this.contentHandler.startElement(
> "http://apache.org/xsp/session-fw/1.0",
> "setxml",
> "xsp-session-fw:setxml",
> xspAttr
> ); // Syntax error, insert ")" to complete Expression
> xspAttr.clear();
> …
>
>
> this.contentHandler.endElement(
> "http://apache.org/xsp/session-fw/1.0",
> "setxml",
> "xsp-session-fw:setxml"
> );
>
> )) // Syntax error on tokens, delete these tokens
>
>
> OK. This is my first attempt. If this is some kind of right approach,
> yeahh.
> If not, please don’t laugh.
>
> Could someone give me a hint, if I’m “not so wrong”.
>
> cheers
> jonny
>
> _________________________________________________________________
> Tun Sie Ihrem Rechner ’was Gutes. MSN Hotmail mit McAfee® Anti-Virus.
> http://www.msn.de/email/antivirus/ Jetzt kostenlos anmelden!
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
> For additional commands, e-mail: users-help@cocoon.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
For additional commands, e-mail: users-help@cocoon.apache.org