千家信息网

将项目从JBOSS 6 迁移到 JBOSS 7所遇到的问题

发表于:2025-01-25 作者:千家信息网编辑
千家信息网最后更新 2025年01月25日,以下内容只是以笔记形式记录,以防再次折腾,同时提供一个借鉴:1、项目中的数据源使用的是JBOSS的JNDI,在6、7两个版本中,配置差别较大,具体配置方法,资料配置较多,我这里不重复说(可参考http
千家信息网最后更新 2025年01月25日将项目从JBOSS 6 迁移到 JBOSS 7所遇到的问题

以下内容只是以笔记形式记录,以防再次折腾,同时提供一个借鉴:

1、项目中的数据源使用的是JBOSSJNDI,在67两个版本中,配置差别较大,具体配置方法,资料配置较多,我这里不重复说(可参考http://www.tuicool.com/articles/aqI7V3)。在升级到JBOSS 7后,因项目中使用了Oracle的表,需要用到ARRAY,创建这个对象时需要使用OracleConnection,在JBOSS6中是这样转换的

if(conn.isWrapperFor(OracleConnection.class)){  oraConn= conn.unwrap(OracleConnection.class);}

但升级到7会发现这个段代码不起作用,本以为要换一种方法,如:

if(conn instanceof WrappedConnection){  oraConn= (OracleConnection) ((WrappedConnectionJDK6)conn).getUnderlyingConnection();  }


(或者通过conn.getMetaData().getConnection()获取T4CConnection转型成OracleConnection),

因为使用JBOSSJNDI获取的Connection实例实际是WrappedConnectionJDK6对象,所以你需要将jboss自带的ironjacamar-jdbc-1.0.9.Final.jar添加到classpath中,但最终你会发现这段代码也是不起作用的,conn instanceof org.jboss.jca.adapters.jdbc.jdk6.WrappedConnectionJDK6不会成立,如果强制转换会报转型错误:

java.lang.ClassCastException: org.jboss.jca.adapters.jdbc.jdk6.WrappedConnectionJDK6cannot be cast to org.jboss.jca.adapters.jdbc.jdk6.WrappedConnectionJDK6

,自己不能转自己,很奇怪的东西。根据查找的资料分析,猜测是跟JBOSS 7模块加载有关:假使模块a加载了Test.class这个类(或jar),模块b也加载了一次Test.class(或jar)(这里两个模块的Test.class其实是同一个类文件),但如果你在b模块中获取了a模块里的Test.class实例,你在代码中强制转型成b模块的Test.class,这时就会报出转型错误。

解决的方法是在告知jboss b模块要用到的Test.classjar)直接使用a模块的Test.classjar),

具体配置方法是在WEB-INF/jboss-deployment-structure.xml配置文件里添加以下配置:

   

其中注释的org.jboss.ironjacamar.jdbcadapters是如果要转型成org.jboss.jca.adapters.jdbc.WrappedConnectionJDK6的配置,而com.oracledatabase.oracle是我本地的JNDIoracle module.xml中的名字:

               

这样配置后,代码中的使用的类就会加载成在被依赖模块中的类。这样配置后conn.isWrapperFor(OracleConnection.class)又变成可以使用的了。

2、在jboss 7中的jboss-web.xml不在使用class-loading配置,不然报解析不了的错。参考:

http://www.cnblogs.com/davidwang456/p/3959561.html

3jboss 7中,jsp使用的本地标签tld文件必须放到WEB-INF中,放到类目录下的META-INF目录会报FileNotFound错。

以上内容只做参考,本人也是刚接触JBOSS


模块 配置 代码 方法 文件 会报 参考 项目 两个 作用 内容 实例 对象 是在 目录 资料 错误 升级 强制 较大 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 漳州芒果互联网科技公司 三星网络技术大赛 安阳bim软件开发工程拿证快 模板数据库是什么 数据库模板 协同办公 网络安全股票有哪些龙头 企业中的网络安全隐患 瑞典5g网络安全 河北c语言软件开发哪家便宜 河北大型软件开发配件 光遇为什么会一直连接服务器失败 目前世界上最大的图像识别数据库 ssm框架多类型数据库连接 我的世界高质量服务器推荐 虚拟服务器vpn 成为硬软件开发者 邮件服务器 破解版 域名服务器的设置及管理 服务器抽出SN标签卡 网络安全大赛未上线的聊天室 盛世加倍网络技术有限公司 农业无人机喷洒农药软件开发 二萌哪个服务器 中国网络安全行业迎来黄金机遇 目前世界上最大的图像识别数据库 记事本选中列数据库 前端开发属于软件开发 海淀区进口软件开发调整 放在海底的服务器怎么发送信号 信息系统客户机服务器优缺点
0