--- maomaode <[EMAIL PROTECTED]> wrote:

> Hi,
> 
> I'm a new user of JXPath, my working env: JDK5,
> JXPath 1.2
> 
> I have a Nested bean class:
> 
> Config.java which has a getter:
> 
> CacheConfig getCache() {
>    return this.cache;
> }
> 
> The CacheConfig.java which has two getters:
> 
> Boolean isEnable() {
>    return this.enable;
> }
> 
> String getDir() {
>    return this.dir
> }
> 
> So my simple test code is:
> 
> JXPathContext context =
> JXPathContext.newContext(config);
> context.getValue("/cache/dir");
> This one works perfectly
> 
> But, Unfortunately,
> context.getValue("/cache/enable");
> 
> what i got is :
> 
> org.apache.commons.jxpath.JXPathException: Cannot
> access property: 
> config.CacheConfig.enable
> o read method
>         at 
>
org.apache.commons.jxpath.util.ValueUtils.getValue(ValueUtils.java:348)
>         at 
>
org.apache.commons.jxpath.ri.model.beans.BeanPropertyPointer.getBaseValue(BeanPropertyPointer.java:108)
>         at 
>
org.apache.commons.jxpath.ri.model.beans.BeanPropertyPointer.getImmediateNode(BeanPropertyPointer.java:135)
>         at 
>
org.apache.commons.jxpath.ri.model.beans.PropertyPointer.getImmediateValuePointer(PropertyPointer.java:127)
>         at 
>
org.apache.commons.jxpath.ri.model.NodePointer.getValuePointer(NodePointer.java:238)
>         at 
>
org.apache.commons.jxpath.ri.JXPathContextReferenceImpl.getValue(JXPathContextReferenceImpl.java:331)
>         at 
>
org.apache.commons.jxpath.ri.JXPathContextReferenceImpl.getValue(JXPathContextReferenceImpl.java:280)
> 
> So, i wondering, the JXPath only support get***, not
> the is***?
> 
> I have raised a jira bug[1],  i got a quick
> response, thanks, BTW
> The answer is JXPath do support is*** feature, so i
> guess i must misuse 
> the JXPath, or the version is not correct?
> 
> Can someone help me out? just tell me how to
> retrieve the 
> boolean/Boolean value from the beans, or tell me
> where is the unit test 
> code.
> TBH, i can not find the test case which include
> isFoo() mentioned in the 
> jira response.
> 

mmm... my guess would be that java.beans.introspector
does not count Booleans, which are Objects, as being
eligible for the isFoo() naming convention, only
boolean primitives.  The javadoc of
java.beans.PropertyDescriptor's (String, Class)
constructor possibly implies this.  All I can tell you
is to use a primitive or take it up with Sun to have
Boolean isFoo() recognized.  OR... you could change
your isEnable() to getEnable(), or simply add
getEnable() as an alternate form of getEnable()--one
that will just happen to be recognized by jxpath.

-Matt



> Thanks in advance
> James.
> 
>
[1]https://issues.apache.org/jira/browse/JXPATH-78?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
> 
> 
> 
>
---------------------------------------------------------------------
> To unsubscribe, e-mail:
> [EMAIL PROTECTED]
> For additional commands, e-mail:
> [EMAIL PROTECTED]
> 
> 



 
____________________________________________________________________________________
TV dinner still cooling? 
Check out "Tonight's Picks" on Yahoo! TV.
http://tv.yahoo.com/

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to