如果使用BlazeDS,那么在WEB-INF/lib 下拷入BlazeDs的jar包时可能就会将Blazeds带的xalan.jar一并拷入,由于JBOSS的类加载机制,如果使用Xpath操作XMl时,会用到xalan,导致多个版本存在,因此会导致出现ClassCastException错误,具体如下:
java.lang.ClassCastException: org.apache.xml.dtm.ref.DTMManagerDefault cannot be cast to org.apache.xml.dtm.DTMManager
解决方法只需要将BlazeDs带来的xalan.jar删除即可。
对于AS6:如果通过管理界面,创建的数据库资源名为Right3,则存放在:
D:\application\jboss-6.1.0.Final\server\default\deploy\Right3-ds.xml
用JAP访问时,定义persistence 中:
使用:
<persistence>
<jta-data-source>java:/Right3</jta-data-source>
.....
</persistence>
而AS7中则为:
<persistence>
<jta-data-source>java:jboss/datasources/Right3</jta-data-source>
.......
</persistence>
java.lang.ClassCastException: org.apache.xml.dtm.ref.DTMManagerDefault cannot be cast to org.apache.xml.dtm.DTMManager
解决方法只需要将BlazeDs带来的xalan.jar删除即可。
对于AS6:如果通过管理界面,创建的数据库资源名为Right3,则存放在:
D:\application\jboss-6.1.0.Final\server\default\deploy\Right3-ds.xml
用JAP访问时,定义persistence 中:
使用:
<persistence>
<jta-data-source>java:/Right3</jta-data-source>
.....
</persistence>
而AS7中则为:
<persistence>
<jta-data-source>java:jboss/datasources/Right3</jta-data-source>
.......
</persistence>
本文解决了一个BlazeDS与JBOSS搭配使用时出现的ClassCastException问题,原因是BlazeDS自带的xalan.jar与JBOSS类加载机制冲突。文中还介绍了在不同版本的AS中如何配置数据库资源。
497

被折叠的 条评论
为什么被折叠?



