Here is what I had to do to get it working.
1. Change query.functions.xml as shown above.
2. Added overloaded method in QueryEvaluator and XPathQueryEvaluator
| public Object evaluate(Node contextNode, Token token) {
| try {
|
| this.setVariableContext( new ScopeVariableContext(token));
| this.setFunctionContext( functionLibrary);
| //TODO: if no where else, add method in SetNamespaceContext to add
bpws.
| ((SetNamespaceContext)this.getNamespaceContext()).addNamespace(
"bpws", "http://schemas.xmlsoap.org/ws/2003/03/business-process/");
| List nodeset = selectNodes(contextNode);
| return narrowToSingleNode(nodeset);
| }
| catch (JaxenException e) {
| throw new
BpelFaultException(BpelConstants.FAULT_SUB_LANGUAGE_EXECUTION);
| }
| }
Note: The namespace context did not have 'bpws' prefix which I have hardcoded
here, I will get to fixing that hack next. I added a method in
SetNamespaceContext to add a namespace at a time if prefix doesn't exist
already.
3. I call this new method in FromVariable.
| value = query.getEvaluator().evaluate((Element) value, token);
|
4. Jaxen only allows 'number' or 'boolean' in predicate. With my original
XPath, it was returning nodeset and getting resolved as boolean 'true'. So I
had to wrap my 'getVariableData' call inside XPath 'number' function.
|
/ns9:GetItemsByQueryResponse/ns9:return[number(bpws:getVariableData("ForEach_index"))]/ns9:genericItem/ns9:itemID
|
This got my while loop working.
Meghana
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4083230#4083230
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4083230
_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user