Discussion:
[werkflow-user] deployment problem
Peter Courcoux
2003-12-09 21:29:24 UTC
Permalink
Hi all,

I have been struggling with this for a good few hours (over a period of
a week or two now) and still haven't found the answer.

The following error is thrown by a web application when deploying the
blog.xml workflow example.

Outside of the web-app the example runs fine. If I remove one offending
line (containing a <java:action> tag) from the example, the example is
deployed and subsequently trips through fine in the webapp.

I believe that the error is a result of a change to XMLOutput in
commons-jelly in September when an exception was removed from a the
method signature of createXMLOutput().

I understand that the jelly builds have been broken for a while and
guess that different libraries have been compiled with different
SNAPSHOT versions of jelly. I thought I had compiled everything from cvs
and had it all consistent. I am using avalon-merlin within turbine to
host the werkflow engine and comparison of classpaths and libraries does
not seem to indicate any differences.

No luck though.

Any thoughts anyone, as to how I might track this down? I would be very
pleased to sort this out. I am trying to evaluate werkflow for a
production application and believe that it could be an ideal choice.

Thanks for any insights.

Regards,

Peter Courcoux


2003-12-09 21:02:05,663 [Ajp13Processor[8009][2]] DEBUG org.apache.commons.jelly.expression.jexl.JexlExpression - value of expression: null
2003-12-09 21:02:05,663 [Ajp13Processor[8009][2]] DEBUG org.apache.commons.jelly.JellyContext - findVariable: bind value: null
2003-12-09 21:02:05,663 [Ajp13Processor[8009][2]] DEBUG org.apache.commons.jelly.JellyContext - findVariable: bind value: null
2003-12-09 21:02:05,663 [Ajp13Processor[8009][2]] DEBUG org.apache.commons.jelly.JellyContext - findVariable: bind value: null
2003-12-09 21:02:05,663 [Ajp13Processor[8009][2]] DEBUG org.apache.commons.jelly.JellyContext - findVariable: bind value: null
2003-12-09 21:02:05,663 [Ajp13Processor[8009][2]] DEBUG org.apache.commons.jelly.JellyContext - findVariable: bind value: null
2003-12-09 21:02:05,741 [Ajp13Processor[8009][2]] DEBUG org.apache.commons.jelly.JellyContext - findVariable: werkflow.idiom.stack value: [[Idiom: [IdiomDefinition: id=sequence; parameters={}; places=[[PlaceDefinition: id=component:tail]]; transitions=[[TransitionDefinition: id=complete:finish], [TransitionDefinition: id=component]]; arcs=[[ArcDefinition: place=stashed:in transition=component], [ArcDefinition: transition=component place=component:tail], [ArcDefinition: place=stashed:in transition=complete:finish], [ArcDefinition: transition=complete:finish place=out]]]]]
2003-12-09 21:02:05,742 [Ajp13Processor[8009][2]] DEBUG org.apache.commons.jelly.JellyContext - findVariable: org.codehaus.werkflow.syntax.fundamental.ActionReceptor.stack value: [***@8777c[qname=null;attributes=***@5c7b3e]]
2003-12-09 21:02:05,742 [Ajp13Processor[8009][2]] DEBUG org.apache.commons.jelly.JellyContext - findVariable: org.codehaus.werkflow.syntax.fundamental.ActionReceptor.stack value: [***@8777c[qname=null;attributes=***@5c7b3e], ***@248a0a[qname=null;attributes=***@62bc8d]]
2003-12-09 21:02:05,743 [Ajp13Processor[8009][2]] DEBUG org.apache.commons.jelly.JellyContext - findVariable: werkflow.idiom.stack value: [[Idiom: [IdiomDefinition: id=sequence; parameters={}; places=[[PlaceDefinition: id=component:tail]]; transitions=[[TransitionDefinition: id=complete:finish], [TransitionDefinition: id=component]]; arcs=[[ArcDefinition: place=stashed:in transition=component], [ArcDefinition: transition=component place=component:tail], [ArcDefinition: place=stashed:in transition=complete:finish], [ArcDefinition: transition=complete:finish place=out]]]], [Idiom: [IdiomDefinition: id=receive; parameters={type=***@48dfe6, action=***@63865e, correlator=***@a8ae7, bind=***@2574b
2}; places=[]; transitions=[[TransitionDefinition: id=the.action]]; arcs=[[ArcDefinition:!
place=in transition=the.action], [ArcDefinition: transition=the.action place=out]]]]]
2003-12-09 21:02:05,790 [Ajp13Processor[8009][2]] DEBUG org.apache.commons.beanutils.BeanUtils - copyProperty(***@43601b, message, ***@2beeec[expressions=[***@52e961[value=received: ], org.apache.commons.jelly.expression.jexl.JexlExpressionFactory$***@57f57f[expression:title], ***@368e0e[value= by ], org.apache.commons.jelly.expression.jexl.JexlExpressionFactory$***@28594c[expression:author]]])
2003-12-09 21:02:05,790 [Ajp13Processor[8009][2]] DEBUG org.apache.commons.beanutils.BeanUtils - target propName=message, type=interface org.apache.commons.jelly.expression.Expression, index=-1, key=null
2003-12-09 21:02:05,864 [Ajp13Processor[8009][2]] DEBUG org.apache.commons.jelly.impl.TagScript - Caught exception: java.lang.NoSuchMethodError
java.lang.NoSuchMethodError
at org.apache.commons.jelly.XMLOutput.createXMLOutput(XMLOutput.java:187)
at org.apache.commons.jelly.TagSupport.getBodyText(TagSupport.java:286)
at org.codehaus.werkflow.semantics.java.JavaActionTag.doScriptTag(JavaActionTag.java:177)
at org.codehaus.werkflow.semantics.java.JavaActionTag.doTag(JavaActionTag.java:165)
at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
at org.apache.commons.jelly.tags.define.InvokeBodyTag.doTag(InvokeBodyTag.java:95)
at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
at org.codehaus.werkflow.syntax.idiom.IdiomImplTag.doTag(IdiomImplTag.java:200)
at org.apache.commons.jelly.impl.StaticTagScript.run(StaticTagScript.java:145)
at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
at org.apache.commons.jelly.impl.DynamicTag.doTag(DynamicTag.java:125)
--
Peter Courcoux <***@courcoux.biz>
Mark H. Wilkinson
2003-12-10 09:53:32 UTC
Permalink
Post by Peter Courcoux
I believe that the error is a result of a change to XMLOutput in
commons-jelly in September when an exception was removed from a the
method signature of createXMLOutput().
Hmm; I'm not sure. I'd have assumed that the NoSuchMethodError stack
trace would start from the line that was trying to call the method that
didn't exist. In the CVS head version of XMLOutput.java that method uses
the dom4j XMLWriter class, and looking back through the revision
history, in revision 1.10 of the file line 187
<http://cvs.apache.org/viewcvs.cgi/jakarta-commons/jelly/src/java/org/apache/commons/jelly/XMLOutput.java?annotate=1.10#187> is 'xmlWriter.setEscapeText(escapeText);'

Comparing the dom4j jar files I have in my maven repository it looks as
though 1.4 has that method while 1.3 doesn't, so I'd suspect that your
webapp is somehow supplying version 1.3 of dom4j, while the jelly
snapshot is wanting version 1.4.
Post by Peter Courcoux
Any thoughts anyone, as to how I might track this down? I would be very
pleased to sort this out. I am trying to evaluate werkflow for a
production application and believe that it could be an ideal choice.
Let us know if that sorts it out, but that's my first guess as to what's
wrong.

-Mark.
Peter Courcoux
2003-12-10 17:02:14 UTC
Permalink
Mark,

You were right. Thank you.

I had dom4j-1.4-dev.jar in the classpath. I also didn't know about the
annotated line numbered view in viewcvs and a copy I had gave me line
187 as two lines up from the problem line.

You live and (hopefully) learn.

Many thanks.

Regards,

Peter
Post by Mark H. Wilkinson
Post by Peter Courcoux
I believe that the error is a result of a change to XMLOutput in
commons-jelly in September when an exception was removed from a the
method signature of createXMLOutput().
Hmm; I'm not sure. I'd have assumed that the NoSuchMethodError stack
trace would start from the line that was trying to call the method that
didn't exist. In the CVS head version of XMLOutput.java that method uses
the dom4j XMLWriter class, and looking back through the revision
history, in revision 1.10 of the file line 187
<http://cvs.apache.org/viewcvs.cgi/jakarta-commons/jelly/src/java/org/apache/commons/jelly/XMLOutput.java?annotate=1.10#187> is 'xmlWriter.setEscapeText(escapeText);'
Comparing the dom4j jar files I have in my maven repository it looks as
though 1.4 has that method while 1.3 doesn't, so I'd suspect that your
webapp is somehow supplying version 1.3 of dom4j, while the jelly
snapshot is wanting version 1.4.
Post by Peter Courcoux
Any thoughts anyone, as to how I might track this down? I would be very
pleased to sort this out. I am trying to evaluate werkflow for a
production application and believe that it could be an ideal choice.
Let us know if that sorts it out, but that's my first guess as to what's
wrong.
-Mark.
_______________________________________________
werkflow-user mailing list
http://lists.codehaus.org/mailman/listinfo/werkflow-user
--
Peter Courcoux <***@courcoux.biz>
Loading...