【发布时间】:2017-11-05 23:16:16
【问题描述】:
我试图找出有关使用 websphere 8.5 和 spring 连接的问题。我阅读了有关此站点和其他站点的一些问题,但似乎没有任何效果。
在 websphere 中,我们必须将数据源的 jndi 名称设置为 jdbc/connection0。
比我尝试使用 web.xml 和 spring 配置文件在 web 应用程序中设置连接。
<resource-ref >
<description>connection0</description>
<res-ref-name>connection0</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
<res-sharing-scope>Shareable</res-sharing-scope>
<mapped-name>connection0</mapped-name>
</resource-ref>
我们尝试在spring-datasource.xml中引用连接:
<property name="jndiName" value="jdbc/connection0"/>
<property name="lookupOnStartup" value="false"/>
<property name="cache" value="true"/>
<property name="proxyInterface" value="javax.sql.DataSource"/>
</bean>
我还添加了文件ibm-web-bnd.xml来引用数据源(该文件在web-inf目录下):
http://websphere.ibm.com/xml/ns/javaee/ibm-web-bnd_1_0.xsd" 版本="1.0" >
我们生成了一个 EAR 文件,并且我们成功地部署在了应用服务器上。 但是当我们尝试访问数据库时,我们收到一个错误,这是堆栈跟踪:
[05/06/17 9.59.33:514 CEST] 0000006f SystemOut O it.XXXX.sicurezza.db.DbHelper --> openJndiConnection: 未找到 initCtx.lookup("java:comp/env/url/connection0" )。坟!! [05/06/17 9.59.33:515 CEST] 0000006f SystemOut O 05-06-2017 09:59:33 错误 [WebContainer:1] it.XXXX.sicurezza.taglib.allow.AllowTag - NamingManager.getURLContext 找不到该方案的工厂:java javax.naming.ConfigurationException:NamingManager.getURLContext 找不到此方案的工厂:java 在 com.ibm.ws.naming.util.Helpers.checkForUrlContext(Helpers.java:1631) 在 com.ibm.ws.naming.util.WsnInitCtx.lookup(WsnInitCtx.java:160) 在 com.ibm.ws.naming.util.WsnInitCtx.lookup(WsnInitCtx.java:179) 在 org.apache.aries.jndi.DelegateContext.lookup(DelegateContext.java:161) 在 javax.naming.InitialContext.lookup(InitialContext.java:423) 在它.XXXX.sicurezza.db.DbHelper.openJndiConnection(DbHelper.java:78) 在它.XXXX.sicurezza.db.DbHelper.openConnection(DbHelper.java:53) 在它.XXXX.sicurezza.db.DaoManager.isInternalSecurityEnabled(DaoManager.java:108) 在它.XXXX.sicurezza.manager.AbilitazioniManagerFactory.getAbilitazioniManager(AbilitazioniManagerFactory.java:29) 在它.XXXX.sicurezza.taglib.allow.AllowTag.doStartTag(AllowTag.java:116) 在 com.ibm._jsp._editOrdineForm._jspx_meth_allow_allow_8(_editOrdineForm.java:7626) 在 com.ibm._jsp._editOrdineForm._jspx_meth_c_if_39(_editOrdineForm.java:7668) 在 com.ibm._jsp._editOrdineForm._jspService(_editOrdineForm.java:658) 在 com.ibm.ws.jsp.runtime.HttpJspBase.service(HttpJspBase.java:99) 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:668) 在 com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1227) 在 com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:776) 在 com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:458) 在 com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:178) 在 com.ibm.wsspi.webcontainer.servlet.GenericServletWrapper.handleRequest(GenericServletWrapper.java:122) 在 com.ibm.ws.jsp.webcontainerext.AbstractJSPExtensionServletWrapper.handleRequest(AbstractJSPExtensionServletWrapper.java:216) 在 com.ibm.ws.webcontainer.filter.WebAppFilterChain.invokeTarget(WebAppFilterChain.java:136) 在 com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:79) 在 com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:928) 在 com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1025) 在 com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch(WebAppRequestDispatcher.java:1385) 在 com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.include(WebAppRequestDispatcher.java:549) 在 org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:1045) 在 org.apache.jasper.runtime.PageContextImpl.include(PageContextImpl.java:527) 在 org.apache.struts.tiles.TilesUtilImpl.doInclude(TilesUtilImpl.java:99) 在 org.apache.struts.tiles.TilesUtil.doInclude(TilesUtil.java:135) 在 org.apache.struts.taglib.tiles.InsertTag.doInclude(InsertTag.java:760) 在 org.apache.struts.taglib.tiles.InsertTag$InsertHandler.doEndTag(InsertTag.java:892) 在 org.apache.struts.taglib.tiles.InsertTag.doEndTag(InsertTag.java:462) 在 com.ibm._jsp._layout._jspx_meth_tiles_insert_3(_layout.java:451) 在 com.ibm._jsp._layout._jspService(_layout.java:201) 在 com.ibm.ws.jsp.runtime.HttpJspBase.service(HttpJspBase.java:99) 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:668) 在 com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1227) 在 com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:776) 在 com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:458) 在 com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:178) 在 com.ibm.wsspi.webcontainer.servlet.GenericServletWrapper.handleRequest(GenericServletWrapper.java:122) 在 com.ibm.ws.jsp.webcontainerext.AbstractJSPExtensionServletWrapper.handleRequest(AbstractJSPExtensionServletWrapper.java:216) 在 com.ibm.ws.webcontainer.filter.WebAppFilterChain.invokeTarget(WebAppFilterChain.java:136) 在 com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:79) 在 com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:928) 在 com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1025) 在 com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch(WebAppRequestDispatcher.java:1385) 在 com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:194) 在 org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:240) 在 org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:258) 在 org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1174) 在 org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:901) 在 org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:809) 在 org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571) 在 org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:501) 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:575) 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:668) 在 com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1227) 在 com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:776) 在 com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:458) 在 com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:178) 在 com.ibm.ws.webcontainer.filter.WebAppFilterChain.invokeTarget(WebAppFilterChain.java:136) 在 com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:79) 在 com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:928) 在 com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1025) 在 com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch(WebAppRequestDispatcher.java:1385) 在 com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:194) 在 org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:240) 在 org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:258) 在 org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1174) 在 org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:901) 在 org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:809) 在 org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571) 在 org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:501) 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:575) 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:668) 在 com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1227) 在 com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:776) 在 com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:458) 在 com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:178) 在 com.ibm.ws.webcontainer.filter.WebAppFilterChain.invokeTarget(WebAppFilterChain.java:136) 在 com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:97) 在 org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:265) 在它.XXXX.oppe0.allow.filter.AllowFilter.doFilter(AllowFilter.java:125) 在 org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275) 在 org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:107) 在 org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:72) 在 org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275) 在 org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:124) 在 org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275) 在 org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125) 在 org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275) 在 org.acegisecurity.wrapper.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:81) 在 org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275) 在 org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271) 在 org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275) 在 org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271) 在 org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275) 在 org.acegisecurity.ui.logout.LogoutFilter.doFilter(LogoutFilter.java:110) 在 org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275) 在 org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249) 在 org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275) 在它.XXXX.oppe0.acegi.SessionExpirationFilter.doFilter(SessionExpirationFilter.java:76) 在 org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275) 在 org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:149) 在 org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:98) 在 com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:195) 在 com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:91) 在 org.displaytag.filter.ResponseOverrideFilter.doFilter(ResponseOverrideFilter.java:125) 在 com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:195) 在 com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:91) 在 com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:928) 在 com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1025) 在 com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3761) 在 com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:304) 在 com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:976) 在 com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1662) 在 com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:200) 在 com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:459) 在 com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:526) 在 com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:312) 在 com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:88) 在 com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:175) 在 com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217) 在 com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161) 在 com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138) 在 com.ibm.io.async.ResultHandler.complete(ResultHandler.java:204) 在 com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:775) 在 com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:905) 在 com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1862)
对设置有什么建议吗?
【问题讨论】:
-
您需要仔细查看这一行。
[05/06/17 9.59.33:514 CEST] 0000006f SystemOut O it.infogroup.sicurezza.db.DbHelper --> openJndiConnection: Not found initCtx.lookup("java:comp/env/url/connection0"). GRAVE!!路径似乎不正确,因为我希望看到“jdbc/connection0”,但我看到的是“url/connection0”。 -
请贴出查找数据源的代码。
标签: java spring-mvc datasource websphere-8