If the same config was working in 3.2.1, it may be caused by an upgrade of
xbean which is used to parse the spring xml configuration.   I must admit
the map support in xbean is kinda difficult to understand :-(

Looking at the "same" class in servicemix-eip, it redefines the getter /
setter so that they can be found by xbean in the generation phase.
Can you try adding those back and see if it works better ?

On Tue, Mar 25, 2008 at 11:52 AM, Andrea Zoppello <[EMAIL PROTECTED]>
wrote:

> Hi,
>
> I've just downloaded the latest nightly build of servicemix 3.2.2 and it
> seems
> problem in evaluating expression with namespace are reappred in this
> version.
>
> When i write in the drools rule a rule with namespace prefix, this will
> cause
> a runtime errors saying the namespace is not bound.
>
> What i've found is that at deployment phase the namespace context is not
> populated.
>
> This seem strange because in the xbean of drools su i've declared
> namespace context
> as i'm usually able to declare.
>
> Any idea??
>
> Here my xbean:
>
> <?xml version="1.0"?>
> <beans xmlns:sm="http://servicemix.apache.org/config/1.0";
>      xmlns:drools="http://servicemix.apache.org/drools/1.0";
>      xmlns:Es2_v_0="urn:eng:spagic:processes:Es2:v0"
>      xmlns:util="http://www.springframework.org/schema/util";>
>           <drools:endpoint
>           service="Es2_v_0:Es2.Val2Livello_v_0"
>           endpoint="Es2.Val2Livello_v_0"
>           ruleBaseResource="classpath:val2.drl"
>           namespaceContext="#nsContext"
>           assertedObjects="#assertedObjects"
>           defaultTargetService="Es2_v_0:Es2.Router1_v_0">
>
>             </drools:endpoint>
>             <util:list id="assertedObjects">
>             <ref bean="dbhelper"/>
>       </util:list>
>             <bean id="dbhelper" class="org.spagic.smx.helpers.DbHelper">
>       </bean>
>
>       <drools:endpoint
>           service="Es2_v_0:Es2.Router1_v_0"
>           endpoint="Es2.Router1_v_0"
>           ruleBaseResource="classpath:Es2.Router1_v_0.drl"
>           namespaceContext="#nsContext">
>       </drools:endpoint>
>
>       <drools:endpoint
>           service="Es2_v_0:Es2.Router2_v_0"
>           endpoint="Es2.Router2_v_0"
>           ruleBaseResource="classpath:Es2.Router2_v_0.drl"
>           namespaceContext="#nsContext">
>       </drools:endpoint>
>
>       <drools:namespace-context id="nsContext">
>             <drools:namespaces>
>           <drools:namespace
> prefix="spgtypes">urn:spagic:crm:types</drools:namespace>
>           <drools:namespace
> prefix="restart">urn:it:eng:spagic:restart</drools:namespace>
>           <drools:namespace
> prefix="spagic">urn:it:eng:spagic</drools:namespace>
>           <drools:namespace
> prefix="spgser">urn:spagic:crm:services</drools:namespace>
>             </drools:namespaces>
>       </drools:namespace-context>
> </beans>
>
> Here the drools file causing the problem is:
>
> package org.apache.servicemix.drools
>
> import org.apache.servicemix.drools.model.Exchange;
> import org.spagic.smx.helpers.DbHelper;
>
> global org.apache.servicemix.drools.model.JbiHelper jbi;
>
> rule "Route FaultInFlow "
>   when
>       me : Exchange( status == Exchange.ACTIVE, in : in != null )
>       eval( in.xpath("/spgser:in/spgtypes:TIPO_SERVIZIO = '10'") )
>   then
>       jbi.routeToDefault("<Fault> Tipo Servizio 10 </Fault>");
>   end
>
>


-- 
Cheers,
Guillaume Nodet
------------------------
Blog: http://gnodet.blogspot.com/

Reply via email to