91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

將項目從JBOSS 6 遷移到 JBOSS 7所遇到的問題

發布時間:2020-07-05 14:58:22 來源:網絡 閱讀:1076 作者:chenlesheng 欄目:關系型數據庫

以下內容只是以筆記形式記錄,以防再次折騰,同時提供一個借鑒:

 

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配置文件里添加以下配置:

<dependencies>
<!-- <modulename="org.jboss.ironjacamar.jdbcadapters" slot="main"/>-->
   <module name="com.oracledatabase.oracle"slot="main"/>
</dependencies>

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

<?xml version="1.0"encoding="UTF-8"?>
<modulexmlns="urn:jboss:module:1.0"name="com.oracledatabase.oracle">
 <resources>
<resource-rootpath="ojdbc6.jar"/>
<!—沒有的話會亂碼-->
   <resource-root path="orai18n.jar"/>
 </resources>
 <dependencies>
   <module name="javax.api"/>
  <module name="javax.transaction.api"/>
  <module name="javax.servlet.api"optional="true"/>
  </dependencies>
</module>

 

這樣配置后,代碼中的使用的類就會加載成在被依賴模塊中的類。這樣配置后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


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

玛沁县| 柯坪县| 安岳县| 榆中县| 临江市| 视频| 花莲县| 汶川县| 田东县| 广州市| 华宁县| 巫溪县| 遂宁市| 崇明县| 嵩明县| 平昌县| 漳浦县| 历史| 平乐县| 临猗县| 冕宁县| 抚宁县| 田林县| 新源县| 吉安县| 阿巴嘎旗| 荆州市| 营山县| 班戈县| 连山| 迭部县| 黔南| 大名县| 曲周县| 兴化市| 长泰县| 淳安县| 山西省| 广平县| 惠水县| 永善县|