kagent property of StatelessKnowledgeSessionImpl is only used by the kagent itself. This property is not even exposed through StatelessKnowledgeSession interface. So I'm not sure whether this should be configurable through spring or not. <br>
<br>If you are trying to configure a Stateful session from a kbase that is updated by a kagent, you could try this configuration:<br><br><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; font-size: medium;"><span class="Apple-style-span" style="font-family: 'Bitstream Vera Sans Mono',Courier,monospace; font-size: 12px; line-height: 17px; white-space: pre;"><span class="nt" style="margin: 0px; padding: 0px; line-height: 1.4em; color: rgb(0, 0, 128);"> <drools:ksession</span> <span class="na" style="margin: 0px; padding: 0px; line-height: 1.4em; color: rgb(0, 128, 128);">id=</span><span class="s" style="margin: 0px; padding: 0px; line-height: 1.4em; color: rgb(221, 17, 68);">"ksession1"</span> <span class="na" style="margin: 0px; padding: 0px; line-height: 1.4em; color: rgb(0, 128, 128);">type=</span><span class="s" style="margin: 0px; padding: 0px; line-height: 1.4em; color: rgb(221, 17, 68);">"stateful"</span> <span class="na" style="margin: 0px; padding: 0px; line-height: 1.4em; color: rgb(0, 128, 128);">kbase=</span><span class="s" style="margin: 0px; padding: 0px; line-height: 1.4em; color: rgb(221, 17, 68);">"kbase1"</span><span class="nt" style="margin: 0px; padding: 0px; line-height: 1.4em; color: rgb(0, 0, 128);">/><br>
</span></span></span><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; font-size: medium;"><span class="Apple-style-span" style="font-family: 'Bitstream Vera Sans Mono',Courier,monospace; font-size: 12px; line-height: 17px; white-space: pre;"><span class="nt" style="margin: 0px; padding: 0px; line-height: 1.4em; color: rgb(0, 0, 128);"> <drools:kbase</span> <span class="na" style="margin: 0px; padding: 0px; line-height: 1.4em; color: rgb(0, 128, 128);">id=</span><span class="s" style="margin: 0px; padding: 0px; line-height: 1.4em; color: rgb(221, 17, 68);">"kbase1"</span><span class="na" style="margin: 0px; padding: 0px; line-height: 1.4em; color: rgb(0, 128, 128);"></span><span class="s" style="margin: 0px; padding: 0px; line-height: 1.4em; color: rgb(221, 17, 68);"></span><span class="nt" style="margin: 0px; padding: 0px; line-height: 1.4em; color: rgb(0, 0, 128);">/></span></span></span><br>
<span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; font-size: medium;"><span class="Apple-style-span" style="font-family: helvetica,arial,freesans,clean,sans-serif; font-size: 11px; line-height: 14px;"><pre style="margin: 0px; padding: 0px; font: 12px/1.4em 'Bitstream Vera Sans Mono',Courier,monospace;">
<div class="line" id="LC31" style="margin: 0px; padding: 0px 0px 0px 1em; line-height: 1.4em;"><span class="nt" style="margin: 0px; padding: 0px; line-height: 1.4em; color: rgb(0, 0, 128);"><br><drools:kagent</span> <span class="na" style="margin: 0px; padding: 0px; line-height: 1.4em; color: rgb(0, 128, 128);">id=</span><span class="s" style="margin: 0px; padding: 0px; line-height: 1.4em; color: rgb(221, 17, 68);">"kagent1"</span> <span class="na" style="margin: 0px; padding: 0px; line-height: 1.4em; color: rgb(0, 128, 128);">kbase=</span><span class="s" style="margin: 0px; padding: 0px; line-height: 1.4em; color: rgb(221, 17, 68);">"kbase1"</span> <span class="na" style="margin: 0px; padding: 0px; line-height: 1.4em; color: rgb(0, 128, 128);">new-instance=</span><span class="s" style="margin: 0px; padding: 0px; line-height: 1.4em; color: rgb(221, 17, 68);">"false"</span><span class="nt" style="margin: 0px; padding: 0px; line-height: 1.4em; color: rgb(0, 0, 128);">></span></div>
<div class="line" id="LC32" style="margin: 0px; padding: 0px 0px 0px 1em; line-height: 1.4em;"> <span class="nt" style="margin: 0px; padding: 0px; line-height: 1.4em; color: rgb(0, 0, 128);"><drools:resources></span></div>
<div class="line" id="LC33" style="margin: 0px; padding: 0px 0px 0px 1em; line-height: 1.4em;"> <span class="nt" style="margin: 0px; padding: 0px; line-height: 1.4em; color: rgb(0, 0, 128);"><drools:resource</span> <span class="na" style="margin: 0px; padding: 0px; line-height: 1.4em; color: rgb(0, 128, 128);">type=</span><span class="s" style="margin: 0px; padding: 0px; line-height: 1.4em; color: rgb(221, 17, 68);">"DRL"</span> <span class="na" style="margin: 0px; padding: 0px; line-height: 1.4em; color: rgb(0, 128, 128);">source=</span><span class="s" style="margin: 0px; padding: 0px; line-height: 1.4em; color: rgb(221, 17, 68);">"....."</span> <span class="nt" style="margin: 0px; padding: 0px; line-height: 1.4em; color: rgb(0, 0, 128);">/> </span><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; font-size: medium;"><span class="Apple-style-span" style="font-family: helvetica,arial,freesans,clean,sans-serif; font-size: 11px; line-height: 14px;"><pre style="margin: 0px; padding: 0px; font: 12px/1.4em 'Bitstream Vera Sans Mono',Courier,monospace;">
<span class="nt" style="margin: 0px; padding: 0px; line-height: 1.4em; color: rgb(0, 0, 128);"> <drools:resource</span> <span class="na" style="margin: 0px; padding: 0px; line-height: 1.4em; color: rgb(0, 128, 128);">type=</span><span class="s" style="margin: 0px; padding: 0px; line-height: 1.4em; color: rgb(221, 17, 68);">"DRL"</span> <span class="na" style="margin: 0px; padding: 0px; line-height: 1.4em; color: rgb(0, 128, 128);">source=</span><span class="s" style="margin: 0px; padding: 0px; line-height: 1.4em; color: rgb(221, 17, 68);">"....."</span> <span class="nt" style="margin: 0px; padding: 0px; line-height: 1.4em; color: rgb(0, 0, 128);">/><br>
</span><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; font-size: medium;"><span class="Apple-style-span" style="font-family: helvetica,arial,freesans,clean,sans-serif; font-size: 11px; line-height: 14px;"><pre style="margin: 0px; padding: 0px; font: 12px/1.4em 'Bitstream Vera Sans Mono',Courier,monospace;">
<span class="nt" style="margin: 0px; padding: 0px; line-height: 1.4em; color: rgb(0, 0, 128);"></span><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; font-size: medium;"><span class="Apple-style-span" style="font-family: helvetica,arial,freesans,clean,sans-serif; font-size: 11px; line-height: 14px;"><pre style="margin: 0px; padding: 0px; font: 12px/1.4em 'Bitstream Vera Sans Mono',Courier,monospace;">
<span class="nt" style="margin: 0px; padding: 0px; line-height: 1.4em; color: rgb(0, 0, 128);"> ...</span><br></pre></span></span></pre></span></span></pre></span></span></div><div class="line" id="LC34" style="margin: 0px; padding: 0px 0px 0px 1em; line-height: 1.4em;">
<span class="nt" style="margin: 0px; padding: 0px; line-height: 1.4em; color: rgb(0, 0, 128);"></drools:resources></span></div><div class="line" id="LC35" style="margin: 0px; padding: 0px 0px 0px 1em; line-height: 1.4em;">
<span class="nt" style="margin: 0px; padding: 0px; line-height: 1.4em; color: rgb(0, 0, 128);"></drools:kagent></span></div></pre></span></span><br><br>Best,<br clear="all"><br>XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX<br>
<br>Esteban Aliverti<br>- Developer @ <a href="http://www.plugtree.com" target="_blank">http://www.plugtree.com </a><br>- Blog @ <a href="http://ilesteban.wordpress.com" target="_blank">http://ilesteban.wordpress.com</a><br>
<br><br><div class="gmail_quote">On Wed, Feb 23, 2011 at 5:29 PM, mmjose26 <span dir="ltr"><<a href="mailto:mmjose26@yahoo.com.mx">mmjose26@yahoo.com.mx</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<br>
Hi,<br>
Im runnung test cases in Spring Drools 5.2M1<br>
<br>
and I have this exception:<br>
<br>
Exception in thread "main"<br>
org.springframework.beans.factory.BeanCreationException: Error creating bean<br>
with name 'ksession2': Error setting property values; nested exception is<br>
org.springframework.beans.NotWritablePropertyException: Invalid property<br>
'knowledgeAgent' of bean class<br>
[org.drools.container.spring.beans.StatefulKnowledgeSessionBeanFactory]:<br>
Bean property 'knowledgeAgent' is not writable or has an invalid setter<br>
method. Does the parameter type of the setter match the return type of the<br>
getter?<br>
<br>
it happens with testAgents method<br>
<br>
If you change the source code located in the drools-spring component in<br>
class<br>
org.drools.container.spring.namespace.KnowledgeSessionDefinitionParser.java:<br>
<br>
<br>
<br>
// find any kagent's for the current kbase and assign<br>
for ( String beanName :<br>
parserContext.getRegistry().getBeanDefinitionNames() ) {<br>
BeanDefinition def =<br>
parserContext.getRegistry().getBeanDefinition( beanName );<br>
if ( KnowledgeAgentBeanFactory.class.getName().equals(<br>
def.getBeanClassName() ) ) {<br>
PropertyValue pvalue =<br>
def.getPropertyValues().getPropertyValue( "kbase" );<br>
RuntimeBeanReference tbf = (RuntimeBeanReference)<br>
pvalue.getValue();<br>
if ( kbase.equals( tbf.getBeanName() ) ) {<br>
factory.addPropertyValue( "knowledgeAgent",<br>
new RuntimeBeanReference(<br>
beanName ) );<br>
}<br>
}<br>
}<br>
<br>
modifying: if ( kbase.equals( tbf.getBeanName() ) && "stateless".equals(<br>
sessionType ) )<br>
it works, becasue only stateless sessions have knowledgeAgent property.<br>
<br>
is It Correct?<br>
<font color="#888888"><br>
<br>
<br>
--<br>
View this message in context: <a href="http://drools-java-rules-engine.46999.n3.nabble.com/spring-drools-api-exception-Invalid-property-knowledgeAgent-tp2562735p2562735.html" target="_blank">http://drools-java-rules-engine.46999.n3.nabble.com/spring-drools-api-exception-Invalid-property-knowledgeAgent-tp2562735p2562735.html</a><br>
Sent from the Drools - User mailing list archive at Nabble.com.<br>
_______________________________________________<br>
rules-users mailing list<br>
<a href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/rules-users" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-users</a><br>
</font></blockquote></div><br>