<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    溫馨提示:您的每一次轉載,體現了我寫此文的意義!!!煩請您在轉載時注明出處http://m.tkk7.com/sxyx2008/謝謝合作!!!

    雪山飛鵠

    溫馨提示:您的每一次轉載,體現了我寫此文的意義!!!煩請您在轉載時注明出處http://m.tkk7.com/sxyx2008/謝謝合作!!!

    BlogJava 首頁 新隨筆 聯系 聚合 管理
      215 Posts :: 1 Stories :: 674 Comments :: 0 Trackbacks
            環境:
                    jboss-4.2.3.GA
                    spring2.5.6
            去jboss官方下載jboss服務器,http://www.jboss.org/jbossas/downloads/。建議下載jboss-4.2.3.GA這個版本的jboss,個人感覺還是這個版本的jboss比較穩定
            解壓下載下來的jboss壓縮文件,筆者解壓到D:\jboss-4.2.3.GA
            筆者以oracle數據庫來說明如何在jboss下配置jndi 以及整合spring
            拷貝oracle-ds文件
            去D:\jboss-4.2.3.GA\docs\examples\jca目錄下拷貝oracle-ds文件到D:\jboss-4.2.3.GA\server\default\deploy目錄下改名即可
            大致內容如下:
    <?xml version="1.0" encoding="UTF-8"?>
    <datasources>
      
    <local-tx-datasource>
        
    <jndi-name>KBSDS</jndi-name>
        
    <connection-url>jdbc:oracle:thin:@192.168.4.243:1521:future</connection-url>
        
    <driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
        
    <use-java-context>false</use-java-context>
        
    <user-name>knowledge</user-name>
        
    <password>knowledge</password>
        
    <min-pool-size>5</min-pool-size>
        
    <max-pool-size>20</max-pool-size>
        
    <exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter</exception-sorter-class-name>
          
    <metadata>
             
    <type-mapping>Oracle9i</type-mapping>
          
    </metadata>
      
    </local-tx-datasource>
    </datasources>
    jndi-name:不用多說了,當然是為該jndi取一名稱這里使用KBSDS
    其他幾個屬性不做過多解釋
    use-java-context:屬性默認為true,如未配置該屬性或該屬性配置為true,那么jboss在啟動的時候jndi的名稱前會加上java:   這里我們jndi的名稱為KBSDS,那么未配置該屬性或該屬性為true的話,你在spring中使用jndi時指定的jndiName就應該為java:KBSDS,若配置為false,那么jboss服務器不會為你加上java: 你在spring中jndiName應當配置為KBSDS,即與jndi-name屬性值等同。這里為了方便期間設置該屬性為false
            拷貝oracle驅動
            拷貝oracle驅動 class12.jar到jboss的如下目錄
            D:\jboss-4.2.3.GA\lib
            D:\jboss-4.2.3.GA\server\default\lib
            切記數據庫驅動拷貝到D:\jboss-4.2.3.GA\server\default\lib目錄下,否則即使你jndi配置的再怎么正確都會報如下錯誤,該錯誤在jboss啟動的時候并不會報出,只有在正式遇數據庫進行交互的時候才會報此錯誤,大概錯誤是這樣的。此處花了好長時間才解決。
    org.springframework.transaction.CannotCreateTransactionException: Could not open JDBC Connection for transaction; nested exception is org.jboss.util.NestedSQLException: Could not create connection; - nested throwable: (org.jboss.resource.JBossResourceException: Apparently wrong driver class specified for URL: class: oracle.jdbc.driver.OracleDriver, url: jdbc:oracle:thin:@192.168.4.243:1521:future); - nested throwable: (org.jboss.resource.JBossResourceException: Could not create connection; - nested throwable: (org.jboss.resource.JBossResourceException: Apparently wrong driver class specified for URL: class: oracle.jdbc.driver.OracleDriver, url: jdbc:oracle:thin:@192.168.4.243:1521:future))
        org.springframework.jdbc.datasource.DataSourceTransactionManager.doBegin(DataSourceTransactionManager.java:
    238)
        org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:
    374)
        org.springframework.transaction.interceptor.TransactionAspectSupport.createTransactionIfNecessary(TransactionAspectSupport.java:
    263)
        org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:
    101)
        org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:
    171)
        org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:
    89)
        org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:
    171)
        org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:
    204)
        $Proxy67.managerLogin(Unknown Source)
        com.future.knowledges.action.ManagerAction.execute(ManagerAction.java:
    62)
        sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:
    39)
        sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:
    25)
            配置spring配置文件
    在applicationContext.xml中配置如下信息:
    <bean name="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean"> 
            
    <property name="jndiName">
                
    <value>KBSDS</value>
            
    </property>
        
    </bean>
    此種方式指定jndiName為KBSDS并未java:前綴,需要你手動在jboss的jndi配置文件中設置use-java-context屬性為fasle,若未設置該屬性或設置為true那么此處應該是這樣子的
    <bean name="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean"> 
            
    <property name="jndiName">
                
    <value>java:KBSDS</value>
            
    </property>
        
    </bean>
    需要你手動加上java:前綴后面跟jboss下配置的jndi的名稱
    其實這里的配置主要是根據jboss服務器啟動時控制臺給出的信息來配置的
    設置use-java-context為false時控制臺給出的jndi信息
    11:13:34,250 INFO  [ConnectionFactoryBindingService] Bound ConnectionManager 'jboss.jca:service=ConnectionFactoryBinding,name=JmsXA' to JNDI name 'java:JmsXA'
    11:13:34,359 INFO  [WrapperDataSourceService] Bound ConnectionManager 'jboss.jca:service=DataSourceBinding,name=KBSDS' to JNDI name 'KBSDS'
    11:13:34,406 INFO  [TomcatDeployer] deploy, ctxPath=/KBS, warUrl=/deploy/KBS.war/
    11:13:34,781 INFO  [[/KBS]] Initializing Spring root WebApplicationContext
    設置use-java-context為true或不設置時控制臺給出的jndi信息
    11:25:15,921 INFO  [ConnectionFactoryBindingService] Bound ConnectionManager 'jboss.jca:service=ConnectionFactoryBinding,name=JmsXA' to JNDI name 'java:JmsXA'
    11:25:15,984 INFO  [ConnectionFactoryBindingService] Bound ConnectionManager 'jboss.jca:service=DataSourceBinding,name=KBSDS' to JNDI name 'java:KBSDS'
    11:25:16,031 INFO  [TomcatDeployer] deploy, ctxPath=/KBS, warUrl=/deploy/KBS.war/

    注意對比兩次控制臺分別打印的信息,從中很容易發現,其實就是use-java-context屬性的作用。關于該屬性,大家可以去參看jboss的官方文檔。這里就不細說了。
    到此jboss下配置jndi 以及整合spring已經成功配置起來了,接下來就是一些細化了,大家可以去查詢jboss的關于jndi配置的文檔。
    其實在jboss下配置jndi遠遠比在tomcat下配置jndi簡單的多。
    總結下來就這幾步
    拷貝jndi模板到server\default\deploy目錄下,并做修改,這里面模板文件均是以數據庫類型-ds.xml命名的。
    拷貝數據庫驅動到\server\default\lib目錄和jboss安裝目錄\lib下即可。
    posted on 2010-09-08 11:33 雪山飛鵠 閱讀(6385) 評論(0)  編輯  收藏 所屬分類: other
    主站蜘蛛池模板: 亚洲爆乳无码专区www| 亚洲国产成人久久三区| 亚洲AV无码专区电影在线观看 | 亚洲福利精品一区二区三区| 亚洲精品无码日韩国产不卡?V| 亚洲自偷自偷偷色无码中文| 亚洲好看的理论片电影| 久久亚洲国产成人影院| 成年网在线观看免费观看网址 | 无人视频免费观看免费视频| 国产一级在线免费观看| 国产精品爱啪在线线免费观看| 日韩午夜免费视频| 亚洲精品无码专区在线在线播放| 亚洲精品中文字幕无码AV| 亚洲综合av一区二区三区不卡| 黄色一级毛片免费看| 久久久久国产精品免费看| 日韩版码免费福利视频| 亚洲精品和日本精品| 亚洲精品视频免费看| 直接进入免费看黄的网站| 无码日韩精品一区二区免费暖暖| 毛片a级毛片免费观看品善网| 亚洲一区二区精品视频| 亚洲日韩乱码中文无码蜜桃| 色噜噜狠狠色综合免费视频| 久久久久成人片免费观看蜜芽 | 午夜福利不卡片在线播放免费| 国产a级特黄的片子视频免费| 亚洲av鲁丝一区二区三区| 亚洲国产精品日韩av不卡在线 | 毛片免费在线视频| 国产亚洲真人做受在线观看| 在线观看亚洲AV每日更新无码| baoyu777永久免费视频| 免费毛片网站在线观看| 婷婷精品国产亚洲AV麻豆不片 | 亚洲AV日韩综合一区尤物| 成人免费区一区二区三区| 日韩高清免费在线观看|