2017-06-05 39 views
0

我试图弄清楚使用websphere 8.5和spring的连接问题。我在本网站和其他网站上阅读了一些问题,但似乎没有任何效果。使用websphere 8.5.5.0和Spring配置数据源?

在websphere中,我们必须将数据源的jndi名称设置为jdbc/connection0。

比我试图在web应用程序中使用web.xml和spring配置文件来设置连接。

<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> 

比弹簧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目录下):

< XML版本= “1.0” 编码= “UTF-8”>?< web-bnd xmlns =“http://websphere.ibm.com/xml/ns/javaee” xmlns:xsi =“http://www.w3.org/2001/XMLSchema-instance” xsi:的schemaLocation = “http://websphere.ibm.com/xml/ns/javaee>http://websphere.ibm.com/xml/ns/javaee/ibm-web-bnd_1_0.xsd” 版本= “1.0”?>

我们生产EAR文件和我们成功部署在应用程序服务器上。 但是,当我们试图访问数据库,我们收到一个错误,这是堆栈跟踪:

[17年5月6日9.59.33:514 CEST] 0000006f SystemOutØ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 ERROR [WebContainer:1] it.XXXX.sicurezza.taglib.allow.AllowTag - NamingManager.getURLContext找不到此方案的工厂:java javax.naming.ConfigurationException:NamingManager.getURLContext无法找到此方案的工厂:java at com.ibm.ws.naming.util.Helpers.checkForUrlContext(Helpers.java:1631) at com.ibm.ws.naming.util.WsnInitCtx.lookup(WsnInitCtx.java:160) at com.ibm.ws.naming.util.WsnInitCtx.lookup(WsnInitCtx.java:179) at org.apache.aries。在javax.naming.InitialContext.lookup(InitialContext.java:423) at it.XXXX.sicurezza.db.DbHelper.openJndiConnection(DbHelper.java:78) at it.XXXX.sicurezza.db.DbHelper.openConnection(DbHelper.java:53) at it.XXXX.sicurezza.db.DaoManager.isInternalSecurityEnabled(DaoManager.java:108) at it.XXXX.sicurezza.manager。 AbilitazioniManagerFactory.getAbilitazioniManager(AbilitazioniManagerFactory.java:29) 在it.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) at javax.servlet.http.HttpServlet.service(HttpServlet.java:668) at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1227) at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:776) at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:458) at com.ibm。 ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:178) at com.ibm.wsspi.webcontainer.servlet.GenericServletWrapper.handleRequest(GenericServletWrapper.java:122) at com.ibm.ws.jsp.webcontainerext。 AbstractJSPExtensionServletWrapper.handleRequest(AbstractJSPExtensionServletWrapper.java:216) at com.ibm.ws.webcontainer.filter.WebA ppFilterChain.invokeTarget(WebAppFilterChain.java:136) at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:79) at 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) at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:1045) at org.apache.jasper.runtime。 PageContextImpl.include(PageContextImpl.java:527) at org.apache.struts.tiles.TilesUtil Impl.doInclude(TilesUtilImpl.java:99) at org.apache.struts.tiles.TilesUtil.doInclude(TilesUtil.java:135) at 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) at com.ibm._jsp._layout._jspService(_layout.java:201) at com.ibm.ws.jsp.runtime.HttpJspBase.service( (ServletWrapper.java:1227) at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:776) at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:458) at com.ibm。 ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:178) at com.ibm.wsspi.webcontainer.servlet.GenericServletWrapper.handleRequest(GenericServletWrapper.java:122) at 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) at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilt erManager.java:928) at com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1025) at 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) at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1174) at org.springframework.web.servlet.DispatcherServlet.doDispatch( DispatcherServlet.java:901) at org.springframework.web.servlet。DispatcherServlet.doService(DispatcherServlet.java:809) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571) at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:501) at javax.servlet.http.HttpServlet.service(HttpServlet.java:575) at javax.servlet.http.HttpServlet.service(HttpServlet.java:668) at com.ibm.ws.webcontainer.servlet.ServletWrapper。服务(ServletWrapper.java:1227) at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:776) at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java: 458) at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:178) at com.ibm.ws.webcontainer.filter.WebAppFilterChain.invokeTarget(WebAppFilterChain.java:136) at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:79) at com.ibm。 ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:928) at com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1025) at com.ibm.ws.webcontainer.webapp。 WebAppRequestDispatcher.dispatch(WebAppRequestDispatcher.java:1385) at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:194) at org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView。 java:240) at 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) 在有机.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:809) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571) at org.springframework.web.servlet.FrameworkServlet.doGet (FrameworkServlet.java:501) at javax.servlet.http.HttpServlet.service(HttpServlet.java:575) at javax.servlet.http.HttpServlet.service(HttpServlet.java:668) at com.ibm.ws .webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1227) at com.ibm.ws.we bcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:776) at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:458) at 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) 在it.XXXX.oppe0.allow.filter.AllowFilter.doFilter(AllowFilter.java:125) 在org.acegisecurity。 util.FilterChainProxy $ VirtualFilterChain.doFilter(FilterChainProxy.java:275) at org.acegisecurity.interc ept.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) at org.acegisecurity.util.FilterChainProxy $ VirtualFilterChain.doFilter(FilterChainProxy.java:275) at 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) 的组织。 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。 CON text.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249) 在org.acegisecurity.util.FilterChainProxy $ VirtualFilterChain.doFilter(FilterChainProxy.java:275) 在it.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。在Web应用程序中, 91) at org.disp laytag.filter.ResponseOverrideFilter.doFilter(ResponseOverrideFilter.java:125) at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:195) at com.ibm.ws.webcontainer.filter.WebAppFilterChain。 doFilter(WebAppFilterChain.java:91) at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:928) at 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) 在融为一体。 ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:976) at com.ibm.ws.webcontainer.WSWebContainer.handleReques t(WSWebContainer.java:1662) at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:200) at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination( HttpInboundLink.java:459) at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:526) at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink。 processRequest(HttpInboundLink.java:312) at com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:88) at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener。 futureCompleted(AioReadCompletionListener.java:175) at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217) at com.ibm.io.async.AsyncChannelFuture .fireCompletionActions(AsyncChannelFuture.java:161) at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138) at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:204) com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:775) at com.ibm.io.async.ResultHandler $ 2.run(ResultHandler.java:905) at com.ibm.ws.util。 ThreadPool $ Worker.run(ThreadPool.java:1862)

有关安装的任何建议?

+0

您需要仔细查看此行。 '[05/06/17 9.59.33:514 CEST] 0000006f SystemOut O it.infogroup.sicurezza.db.DbHelper - > openJndiConnection:未找到initCtx.lookup(“java:comp/env/url/connection0”)。坟!! '路径似乎是不正确的,因为我期望看到“jdbc/connection0”,但是我看到“url/connection0”。 –

+0

请发布查找数据源的代码。 –

回答

0

如果您有想要查找的数据源,

java:comp/env/url/connection0 

和你的服务器配置定义了在网络

jdbc/connection0 

那么你的资源引用JNDI名称的数据源的应用.xml应该是

<resource-ref > 
    <description>connection0</description> 
    <res-ref-name>url/connection0</res-ref-name> 
    <res-type>javax.sql.DataSource</res-type> 
    <res-auth>Container</res-auth> 
    <res-sharing-scope>Shareable</res-sharing-scope> 
</resource-ref> 

并且您可以在bi中定义映射ndings文件(ibm-web-bnd.xml)如下:

<resource-ref name="url/connection0" binding-name="jdbc/connection0"> 
</resource-ref> 
+0

感谢您的快速回复。但是我在spring-datasource.xml中遇到问题(它看起来并不像您所建议的那样) –

+0

为了澄清,我没有建议对spring-datasource.xml进行任何修改,仅用于部署描述符(web.xml)和绑定(ibm-web-bnd.xml) – njr

相关问题