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

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

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

    Ordinary hut

    人間一福地,勝似天仙宮
    posts - 61, comments - 50, trackbacks - 0, articles - 1

    ibatis與weblogic集成中JTA方式的配置

    Posted on 2009-04-08 09:10 landor 閱讀(2123) 評論(0)  編輯  收藏 所屬分類: ibatis
    JDBC方式基本配置都很簡單,weblogic的數(shù)據(jù)源JNDI名字是:TestDatasource
    那么ibatis的SqlMapConfig.xml的配置如下
        <transactionManager type="JDBC" >
            
    <dataSource type="JNDI">
                
    <property name="context.java.naming.factory.initial" value="weblogic.jndi.WLInitialContextFactory" />
                
    <property name="context.java.naming.provider.url" value="t3://localhost:7001" />
                
    <property name="DataSource" value="TestDatasource" />
            
    </dataSource>
        
    </transactionManager>


    此時啟動weblogic服務(wù)器,進行正常junit測試即可(這里需要把weblogic.jar加到classpath中)

    然而如果用如下的配置方式
        <transactionManager type="JTA" >
            
    <property name="UserTransaction" value="javax.transaction.UserTransaction"/>
            
    <dataSource type="JNDI">
                
    <property name="context.java.naming.factory.initial" value="weblogic.jndi.WLInitialContextFactory" />
                
    <property name="context.java.naming.provider.url" value="t3://localhost:7001" />
                
    <property name="DataSource" value="TestDatasource" />
            
    </dataSource>
        
    </transactionManager>


    也就是用JTA來做事務(wù),那么會出現(xiàn)錯誤
    java.lang.ExceptionInInitializerError
        at gmt.boss.obs.account.recurringcharge.IbatisTest.setUp(IbatisTest.java:
    12)
        at junit.framework.TestCase.runBare(TestCase.java:
    128)
        at junit.framework.TestResult$
    1.protect(TestResult.java:106)
        at junit.framework.TestResult.runProtected(TestResult.java:
    124)
        at junit.framework.TestResult.run(TestResult.java:
    109)
        at junit.framework.TestCase.run(TestCase.java:
    120)
        at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:
    130)
        at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:
    38)
        at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:
    460)
        at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:
    673)
        at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:
    386)
        at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:
    196)
    Caused by: java.lang.RuntimeException: Error occurred. Cause: com.ibatis.common.xml.NodeletException: Error parsing XML. Cause: java.lang.RuntimeException: Error parsing XPath 
    '/sqlMapConfig/transactionManager/end()'. Cause: com.ibatis.sqlmap.client.SqlMapException: Error initializing JtaTransactionConfig while looking up UserTransaction (javax.transaction.UserTransaction). Cause: javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial
        at com.ibatis.sqlmap.engine.builder.xml.SqlMapConfigParser.parse(SqlMapConfigParser.java:
    89)
        at com.ibatis.sqlmap.client.SqlMapClientBuilder.buildSqlMapClient(SqlMapClientBuilder.java:
    63)
        at testIbatis.IbatisInstance.
    <clinit>(IbatisInstance.java:27)
         
    12 more
    Caused by: com.ibatis.common.xml.NodeletException: Error parsing XML. Cause: java.lang.RuntimeException: Error parsing XPath 
    '/sqlMapConfig/transactionManager/end()'. Cause: com.ibatis.sqlmap.client.SqlMapException: Error initializing JtaTransactionConfig while looking up UserTransaction (javax.transaction.UserTransaction). Cause: javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial
        at com.ibatis.common.xml.NodeletParser.parse(NodeletParser.java:
    53)
        at com.ibatis.sqlmap.engine.builder.xml.SqlMapConfigParser.parse(SqlMapConfigParser.java:
    86)
         
    14 more
    Caused by: java.lang.RuntimeException: Error parsing XPath 
    '/sqlMapConfig/transactionManager/end()'. Cause: com.ibatis.sqlmap.client.SqlMapException: Error initializing JtaTransactionConfig while looking up UserTransaction (javax.transaction.UserTransaction). Cause: javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial
        at com.ibatis.common.xml.NodeletParser.processNodelet(NodeletParser.java:
    123)
        at com.ibatis.common.xml.NodeletParser.process(NodeletParser.java:
    105)
        at com.ibatis.common.xml.NodeletParser.process(NodeletParser.java:
    102)
        at com.ibatis.common.xml.NodeletParser.parse(NodeletParser.java:
    72)
        at com.ibatis.common.xml.NodeletParser.parse(NodeletParser.java:
    51)
         
    15 more
    Caused by: com.ibatis.sqlmap.client.SqlMapException: Error initializing JtaTransactionConfig 
    while looking up UserTransaction (javax.transaction.UserTransaction). Cause: javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial
        at com.ibatis.sqlmap.engine.transaction.jta.JtaTransactionConfig.initialize(JtaTransactionConfig.java:
    50)
        at com.ibatis.sqlmap.engine.builder.xml.SqlMapConfigParser$
    6.process(SqlMapConfigParser.java:306)
        at com.ibatis.common.xml.NodeletParser.processNodelet(NodeletParser.java:
    121)
         
    19 more

    我已經(jīng)在配置文件里配置了context.java.naming.factory.initial,而在這里還提示這個錯誤
    關(guān)鍵看這里
    Error initializing JtaTransactionConfig while looking up UserTransaction (javax.transaction.UserTransaction). Cause: javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial

    在jvm里加上一個參數(shù),測試一下
    -Djava.naming.factory.initial=weblogic.jndi.WLInitialContextFactory

    運行通過

    這個參數(shù)在:右鍵項目--Run as --Open Run Dialog--Arguments的VM arguments中添加即可

    引入ibatis幫助的一段話,如下:
    警告!雖然這些看起來很簡單,但記住不要濫用全局(分布式)事務(wù),這點很重要。
    這樣做既有性能方面的考慮,同時也是因為全局事務(wù)會讓應(yīng)用服務(wù)器和數(shù)據(jù)庫驅(qū)動程序的設(shè)置變得更復(fù)雜。
    雖然看起來簡單,您可能還是會遇到一些困難。記住,EJB擁有更多廠商和工具支持。
    對于需要分布式事務(wù)的應(yīng)用,最好還是使用Session EJB
    主站蜘蛛池模板: 精品国产福利尤物免费| 18禁亚洲深夜福利人口| 免费a级毛片无码a∨免费软件| 国产精品免费视频网站| 亚洲精品无码aⅴ中文字幕蜜桃| 国产成人精品免费视频大全麻豆| 亚洲精品动漫在线| 黄页网站免费观看| 中文字幕在线日亚洲9| 麻豆成人精品国产免费| 国产亚洲精品第一综合| 亚洲精品WWW久久久久久| 三上悠亚电影全集免费 | 免费黄色电影在线观看| 亚洲国产精品无码久久久不卡| a级男女仿爱免费视频| 久久精品a亚洲国产v高清不卡| 在线看片v免费观看视频777| 亚洲乱亚洲乱妇24p| 国产免费av片在线无码免费看| 无码毛片一区二区三区视频免费播放| 国产亚洲色婷婷久久99精品91| 免费h视频在线观看| 精品日韩99亚洲的在线发布| 日韩a级毛片免费视频| 和老外3p爽粗大免费视频| 亚洲gv猛男gv无码男同短文| 91免费国产在线观看| 亚洲AⅤ男人的天堂在线观看| 亚洲中文字幕久久精品无码APP | 日韩成人在线免费视频 | 最近2019年免费中文字幕高清| 国产成人精品日本亚洲11| 亚洲高清最新av网站| 91精品免费高清在线| 亚洲AV日韩综合一区| 国产午夜亚洲不卡| 美女被免费喷白浆视频| a在线视频免费观看在线视频三区| 久久亚洲熟女cc98cm| 国产gav成人免费播放视频|