`
cuixiufang
  • 浏览: 36764 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

如何通过后台java对前台jsf实现动态编程

阅读更多
近来我用seam+jsf+richfaces做了个动态的rich:tree,不过老奇怪了,在ear工程中就点击树枝时就报
22:50:57,199 WARN  [lifecycle] /test.xhtml @21,82 nodeSelectListener="#{simpleTreeBean.processSelection}": java.lang.reflect.InvocationTargetException
这个问题一直困扰了我好久,突然想到到seam自带的wiki例子里也用到了richfaces:tree组件,可前段时间我还为公司部署了个wiki(汉化了一下),那个没什么问题,开始以为是可能使用的richfaces包和java的包可能版本不匹配,然后就把wiki那个例子里的jar全替到了我的工程中,但结果却一点也没变化,又让我的一线希望破灭了。

放了好久,一天又新建了个war工程,把原来的那堆代码copy过来,简单部署了一下,试下居然没报,树枝的点击事件也正确执行了,出来了!

又回到原来的ear工程中,问题依然。觉得这个东西肯定与ear工程的加载有关系,把ejb-jar包下的类拷了份放到了war的classes下,结果居然也能正确执行了!

还有个richfaces的panelmenu也出这种问题,war下没问题,ear就不行了。

对通过Java后台对jsf的组件编程我不是很在行,研究了一下午ear工程的加载,也没出个什么结果。那位jsf编程的仁兄给解析下,感激不禁!!!!
分享到:
评论
1 楼 cuixiufang 2009-11-18  
richfaces 的 tree 选中节点等功能中需要用到 UI包中的 UITree 等,需要把richfaces-impl.jar,richfaces-ui.jar加到ear的jar的lib中,并在项目的web-inf中添加jboss-web.xml:


<!DOCTYPE jboss-web PUBLIC
    "-//JBoss//DTD Web Application 4.2//EN"
    "http://www.jboss.org/j2ee/dtd/jboss-web_4_2.dtd">

<jboss-web> 
    <class-loading java2ClassLoadingCompliance="false">
        <loader-repository>
            seam.jboss.org:loader=seamIntegration
            <loader-repository-config>java2ParentDelegation=false</loader-repository-config>
        </loader-repository>
    </class-loading>
</jboss-web>

Google中找到的贴子:

http://www.jboss.org/index.html?module=bb&op=viewtopic&t=126041

http://seamframework.org/Community/ConfigureRichFacesForRichtree

相关推荐

Global site tag (gtag.js) - Google Analytics