InitialContext initialContext = new InitialContext();
(UserTransaction)initialContext.lookup("java:comp/UserTransaction");
tomcat6.0的context.xml中这样设置:
<Resource name="jdbc/slaMaster" auth="Container" type="javax.sql.DataSource"  maxActive="100" maxIdle="30"   
         maxWait="10000"  
 username="sa"     
         password="password" 
         driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"  
        url="jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=SLA_Master" />  工程的web.xml中这样设置:
      <resource-ref>  
         <description>DB Connection</description>  
         <res-ref-name>jdbc/slaMaster</res-ref-name>  
         <res-type>javax.sql.DataSource</res-type>  
         <res-auth>Container</res-auth>  
    </resource-ref> 这个最近学的一个项目,原来在weblogic9中运行,现在想把他转到tomcat6中来,源代码都没有改动,想请教一下,
initialContext.lookup("java:comp/env") 与(UserTransaction)initialContext.lookup("java:comp/UserTransaction")有什么区别,前者可以使用的,后者却不行,有过迁移经验的朋友能指教一下迁移中的注意事项,就更感激不尽了

解决方案 »

  1.   

    这是错误信息:2010-3-19 21:42:06 org.apache.catalina.core.StandardWrapperValve invoke
    严重: Servlet.service() for servlet action threw exception
    javax.naming.NamingException: Cannot create resource instance
    at org.apache.naming.factory.TransactionFactory.getObjectInstance(TransactionFactory.java:113)
    at javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:304)
    at org.apache.naming.NamingContext.lookup(NamingContext.java:793)
    at org.apache.naming.NamingContext.lookup(NamingContext.java:140)
    at org.apache.naming.NamingContext.lookup(NamingContext.java:781)
    at org.apache.naming.NamingContext.lookup(NamingContext.java:153)
    at org.apache.naming.SelectorContext.lookup(SelectorContext.java:137)
    at javax.naming.InitialContext.lookup(InitialContext.java:392)
    at com.usi.util.db.DbUtils.getUserTransaction(DbUtils.java:119)
    at com.usi.util.db.DbUtils.isActiveUserTransaction(DbUtils.java:169)
    at com.usi.util.db.DbUtils.getConnectionTransactionFriendly(DbUtils.java:482)
    at com.usi.util.db.DbUtils.getConnectionTransactionFriendly(DbUtils.java:469)
    at com.usi.util.db.dao.DAOUtils.getConnection(DAOUtils.java:412)
    at com.usi.util.db.dao.BaseEntityDAO.find(BaseEntityDAO.java:1241)
    at com.usi.util.db.dao.BaseEntityDAO.find(BaseEntityDAO.java:1344)
    at com.usi.util.db.dao.BaseEntityDAO.find(BaseEntityDAO.java:1322)
    at com.usi.util.db.dao.BaseEntityDAO.find(BaseEntityDAO.java:1312)
    at com.usi.util.db.dao.BaseEntityDAO.find(BaseEntityDAO.java:1302)
    at com.usi.util.db.dao.BaseEntityDAO.find(BaseEntityDAO.java:1299)
    at com.usi.util.db.dao.BaseEntityDAO.find(BaseEntityDAO.java:1286)
    at com.usi.security.user.dao.UserDAOImpl.findByName(UserDAOImpl.java:70)
    at com.usi.security.user.BaseUserHandler.getUser(BaseUserHandler.java:260)
    at com.usi.security.site.filters.LoginFilter.validateUser(LoginFilter.java:768)
    at com.usi.security.site.filters.LoginFilter.doFilter(LoginFilter.java:286)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
    at java.lang.Thread.run(Thread.java:619)
    5778516 [http-8080-1] ERROR JSPError
      <message><![CDATA[javax.naming.NamingException: Cannot create resource instance]]></message>
    <request time='2010-03-19 21:42:06,343' server='localhost' client='127.0.0.1' uri='/sla/error/error_jsp.jsp'>
    <parameter name='j_screenAvailWidth'><![CDATA[960]]></parameter>
    <parameter name='j_password'><![CDATA[admin]]></parameter>
    <parameter name='j_screenHeight'><![CDATA[600]]></parameter>
    <parameter name='j_browser'><![CDATA[Netscape]]></parameter>
    <parameter name='j_navigatorCpuClass'><![CDATA[]]></parameter>
    <parameter name='j_navigatorJavaEnabled'><![CDATA[true]]></parameter>
    <parameter name='j_browserVersion'><![CDATA[5.0 (Windows; en-US)]]></parameter>
    <parameter name='j_username'><![CDATA[admin]]></parameter>
    <parameter name='j_navigatorCookieEnabled'><![CDATA[true]]></parameter>
    <parameter name='j_javascriptMaxVersion'><![CDATA[1.3]]></parameter>
    <parameter name='j_screenWidth'><![CDATA[960]]></parameter>
    <parameter name='j_browserVersionNumber'><![CDATA[5]]></parameter>
    <parameter name='j_screenAvailHeight'><![CDATA[580]]></parameter>
    <parameter name='j_screenColorDepth'><![CDATA[24]]></parameter>
    <parameter name='j_platform'><![CDATA[Windows NT]]></parameter>
    <attribute name='javax.servlet.forward.request_uri' class='java.lang.String'><![CDATA[/sla/navigationAppClassic.do]]></attribute>
    <attribute name='javax.servlet.forward.context_path' class='java.lang.String'><![CDATA[/sla]]></attribute>
    <attribute name='javax.servlet.forward.servlet_path' class='java.lang.String'><![CDATA[/navigationAppClassic.do]]></attribute>
    <attribute name='javax.servlet.forward.path_info' class='java.lang.String'><![CDATA[/error/error_jsp.jsp]]></attribute>
    <attribute name='javax.servlet.error.message' class='java.lang.String'><![CDATA[]]></attribute>
    <attribute name='javax.servlet.error.status_code' class='java.lang.Integer'><![CDATA[500]]></attribute>
    <attribute name='javax.servlet.error.servlet_name' class='java.lang.String'><![CDATA[action]]></attribute>
    <attribute name='javax.servlet.error.exception' class='javax.servlet.ServletException'><![CDATA[javax.servlet.ServletException: Error in LoginFilter for /navigationAppClassic.do]]></attribute>
    <attribute name='javax.servlet.error.request_uri' class='java.lang.String'><![CDATA[/sla/navigationAppClassic.do]]></attribute>
    <attribute name='requestAudited' class='java.lang.String'><![CDATA[true]]></attribute>
    </request>
    <session id='FFC343B904B1BD94EF623E9C86D6F4E9'>
    <attribute name='com.usi.site.AUDIT' class='com.usi.common.list.RollingList'><![CDATA[<request time='2010-03-19 21:42:06,218' server='localhost' client='127.0.0.1' uri='/sla/navigationAppClassic.do'>
    <parameter name='j_browser'><![CDATA[Netscape]]]]><![CDATA[></parameter>
    <parameter name='j_browserVersionNumber'><![CDATA[5]]]]><![CDATA[></parameter>
    <parameter name='j_navigatorJavaEnabled'><![CDATA[true]]]]><![CDATA[></parameter>
    <parameter name='j_navigatorCpuClass'><![CDATA[]]]]><![CDATA[></parameter>
    <parameter name='j_screenAvailHeight'><![CDATA[580]]]]><![CDATA[></parameter>
    <parameter name='j_screenColorDepth'><![CDATA[24]]]]><![CDATA[></parameter>
    <parameter name='j_username'><![CDATA[admin]]]]><![CDATA[></parameter>
    <parameter name='j_screenWidth'><![CDATA[960]]]]><![CDATA[></parameter>
    <parameter name='j_javascriptMaxVersion'><![CDATA[1.3]]]]><![CDATA[></parameter>
    <parameter name='j_password'><![CDATA[admin]]]]><![CDATA[></parameter>
    <parameter name='j_screenHeight'><![CDATA[600]]]]><![CDATA[></parameter>
    <parameter name='j_screenAvailWidth'><![CDATA[960]]]]><![CDATA[></parameter>
    <parameter name='j_browserVersion'><![CDATA[5.0 (Windows; en-US)]]]]><![CDATA[></parameter>
    <parameter name='j_platform'><![CDATA[Windows NT]]]]><![CDATA[></parameter>
    <parameter name='j_navigatorCookieEnabled'><![CDATA[true]]]]><![CDATA[></parameter>
    </request>
    ]]></attribute>
    </session>
    <stackTrace><![CDATA[javax.servlet.ServletException: Error in LoginFilter for /navigationAppClassic.do
    at com.usi.security.site.filters.LoginFilter.doFilter(LoginFilter.java:332)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
    at java.lang.Thread.run(Thread.java:619)
    Caused by: java.lang.Exception: Error in find(null, null, null, [UserName = ?], null, null, [admin], false);
    SQL = 'SELECT CreateUserID,ContactID,AccountReActivationDate,UpdateDate,AccountLockoutDate,PasswordCreateDate,CreateDate,IsPasswordChangeRequired,IsLegalNoticeReviewed,SecurityAuthenticationModuleID,IsDisabled,SecurityUserID,UpdateUserID,UserPassword,UserName,Pseudonym
    FROM SecurityUsers
    WHERE UserName = ?'
    at com.usi.util.db.dao.BaseEntityDAO.find(BaseEntityDAO.java:1263)
    at com.usi.util.db.dao.BaseEntityDAO.find(BaseEntityDAO.java:1344)
    at com.usi.util.db.dao.BaseEntityDAO.find(BaseEntityDAO.java:1322)
    at com.usi.util.db.dao.BaseEntityDAO.find(BaseEntityDAO.java:1312)
    at com.usi.util.db.dao.BaseEntityDAO.find(BaseEntityDAO.java:1302)
    at com.usi.util.db.dao.BaseEntityDAO.find(BaseEntityDAO.java:1299)
    at com.usi.util.db.dao.BaseEntityDAO.find(BaseEntityDAO.java:1286)
    at com.usi.security.user.dao.UserDAOImpl.findByName(UserDAOImpl.java:70)
    at com.usi.security.user.BaseUserHandler.getUser(BaseUserHandler.java:260)
    at com.usi.security.site.filters.LoginFilter.validateUser(LoginFilter.java:768)
    at com.usi.security.site.filters.LoginFilter.doFilter(LoginFilter.java:286)
    ... 12 more
      

  2.   

    Caused by: javax.naming.NamingException: Cannot create resource instance
    at org.apache.naming.factory.TransactionFactory.getObjectInstance(TransactionFactory.java:113)
    at javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:304)
    at org.apache.naming.NamingContext.lookup(NamingContext.java:793)
    at org.apache.naming.NamingContext.lookup(NamingContext.java:140)
    at org.apache.naming.NamingContext.lookup(NamingContext.java:781)
    at org.apache.naming.NamingContext.lookup(NamingContext.java:153)
    at org.apache.naming.SelectorContext.lookup(SelectorContext.java:137)
    at javax.naming.InitialContext.lookup(InitialContext.java:392)
    at com.usi.util.db.DbUtils.getUserTransaction(DbUtils.java:119)
    at com.usi.util.db.DbUtils.isActiveUserTransaction(DbUtils.java:169)
    at com.usi.util.db.DbUtils.getConnectionTransactionFriendly(DbUtils.java:482)
    at com.usi.util.db.DbUtils.getConnectionTransactionFriendly(DbUtils.java:469)
    at com.usi.util.db.dao.DAOUtils.getConnection(DAOUtils.java:412)
    at com.usi.util.db.dao.BaseEntityDAO.find(BaseEntityDAO.java:1241)
    ... 22 more
    ]]></stackTrace>