执行客户项目时,在jboss应用服务器上开发的项目上传附件一切正常,当部署到测试服务器(weblogic应用服务器)时,出现附件上传失败的情况,出现如下错误:
初始化上下文错误!javax.naming.NameNotFoundException: While trying to look up /jc in /app/webapp/js/81733736.; remaining name '/jc'
java.lang.Exception: javax.naming.NameNotFoundException: While trying to look up /jc in /app/webapp/js/81733736.; remaining name '/jc'
at cn.com.chx.database.DataSourceFactory.getJndiDataSource(Unknown Source:89)
at cn.com.chx.database.TransactionDAO._$1(Unknown Source:97)
at cn.com.chx.database.TransactionDAO._$2(Unknown Source:80)
at cn.com.chx.database.TransactionDAO.getNextKey(Unknown Source:508)
at cn.com.chx.bo.DatabaseBo.getNextKey(Unknown Source:104)
at cn.com.chx.component.attach.UploadServlet.saveFileInfotoDb(UploadServlet.java:265)
at cn.com.chx.component.attach.UploadServlet.doPost(UploadServlet.java:206)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:292)
at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:176)
at org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:145)
at org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:92)
at org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:381)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3592)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2202)
at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2108)
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1432)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
Caused by: javax.naming.NameNotFoundException: While trying to look up /jc in /app/webapp/js/81733736.; remaining name '/jc'
at weblogic.jndi.internal.BasicNamingNode.newNameNotFoundException(BasicNamingNode.java:1139)
at weblogic.jndi.internal.ApplicationNamingNode.lookup(ApplicationNamingNode.java:144)
at weblogic.jndi.internal.WLEventContextImpl.lookup(WLEventContextImpl.java:254)
at weblogic.jndi.internal.WLContextImpl.lookup(WLContextImpl.java:393)
at weblogic.jndi.factories.java.ReadOnlyContextWrapper.lookup(ReadOnlyContextWrapper.java:45)
at weblogic.jndi.internal.AbstractURLContext.lookup(AbstractURLContext.java:130)
at javax.naming.InitialContext.lookup(InitialContext.java:392)
at cn.com.chx.database.DataSourceFactory.getJndiDataSource(Unknown Source:85)
... 26 more
java.lang.Exception: javax.naming.NameNotFoundException: While trying to look up /jc in /app/webapp/js/81733736.; remaining name '/jc'
at cn.com.chx.database.DataSourceFactory.getJndiDataSource(Unknown Source:89)
at cn.com.chx.database.TransactionDAO._$1(Unknown Source:97)
at cn.com.chx.database.TransactionDAO._$2(Unknown Source:80)
at cn.com.chx.database.TransactionDAO.getNextKey(Unknown Source:508)
at cn.com.chx.bo.DatabaseBo.getNextKey(Unknown Source:104)
at cn.com.chx.component.attach.UploadServlet.saveFileInfotoDb(UploadServlet.java:265)
at cn.com.chx.component.attach.UploadServlet.doPost(UploadServlet.java:206)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:292)
at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:176)
at org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:145)
at org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:92)
at org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:381)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3592)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2202)
at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2108)
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1432)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
Caused by: javax.naming.NameNotFoundException: While trying to look up /jc in /app/webapp/js/81733736.; remaining name '/jc'
at weblogic.jndi.internal.BasicNamingNode.newNameNotFoundException(BasicNamingNode.java:1139)
at weblogic.jndi.internal.ApplicationNamingNode.lookup(ApplicationNamingNode.java:144)
at weblogic.jndi.internal.WLEventContextImpl.lookup(WLEventContextImpl.java:254)
at weblogic.jndi.internal.WLContextImpl.lookup(WLContextImpl.java:393)
at weblogic.jndi.factories.java.ReadOnlyContextWrapper.lookup(ReadOnlyContextWrapper.java:45)
at weblogic.jndi.internal.AbstractURLContext.lookup(AbstractURLContext.java:130)
at javax.naming.InitialContext.lookup(InitialContext.java:392)
at cn.com.chx.database.DataSourceFactory.getJndiDataSource(Unknown Source:85)
... 26 more
百思不得其解......
后苦苦追踪,竟然是一个很容易忽视的问题。
<iso2gb>true</iso2gb>
<span style="color:#ff0000;"><application-server>weblogic</application-server> <!--竟然是这个服务器类型没有变为weblogic--></span>
<recordperpage>20</recordperpage>
<database>
<type>oracle</type>
<jdbcdriver>oracle.jdbc.driver.OracleDriver</jdbcdriver>
<url>jdbc:oracle:thin:@ip:1521:jc</url>
<user>user</user>
<password>pwd</password>
</database>