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")有什么区别,前者可以使用的,后者却不行,有过迁移经验的朋友能指教一下迁移中的注意事项,就更感激不尽了
严重: 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
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>