首页 \ 问答 \ 无法打开JPA EntityManager进行事务[...]无法获取驱动程序类“null”和URL“null”的连接(Could not open JPA EntityManager for transaction […] A connection could not be obtained for driver class “null” and URL “null”)

无法打开JPA EntityManager进行事务[...]无法获取驱动程序类“null”和URL“null”的连接(Could not open JPA EntityManager for transaction […] A connection could not be obtained for driver class “null” and URL “null”)

我在Tomcat 7上托管的基于Spring的Web应用程序中连接到我的数据库时遇到问题。在我寻找解决方案的过程中,我发现很多人遇到过类似的问题,但他们的解决方案似乎都不适合我。 我正在开发Eclipse(RAD 8.5)。

这是堆栈跟踪:

2015-05-18_13:36:49.625 [http-bio-8080-exec-3] ERROR c.m.g.s.TenancyDetailsServiceImpl - Error condition: Could not open JPA EntityManager for transaction; nested exception is <openjpa-2.3.0-r422266:1540826 nonfatal general error> org.apache.openjpa.persistence.PersistenceException: There were errors initializing your configuration: <openjpa-2.3.0-r422266:1540826 fatal user error> org.apache.openjpa.util.UserException: A connection could not be obtained for driver class "null" and URL "null".  You may have specified an invalid URL.
at org.apache.openjpa.jdbc.schema.DataSourceFactory.newConnectException(DataSourceFactory.java:255)
at org.apache.openjpa.jdbc.schema.DataSourceFactory.installDBDictionary(DataSourceFactory.java:241)
at org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.getConnectionFactory(JDBCConfigurationImpl.java:733)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:94)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55)
at java.lang.reflect.Method.invoke(Method.java:619)
at org.apache.openjpa.lib.conf.ConfigurationImpl.instantiateAll(ConfigurationImpl.java:310)
at org.apache.openjpa.conf.OpenJPAConfigurationImpl.instantiateAll(OpenJPAConfigurationImpl.java:1670)
at org.apache.openjpa.kernel.AbstractBrokerFactory.makeReadOnly(AbstractBrokerFactory.java:651)
at org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker(AbstractBrokerFactory.java:203)
at org.apache.openjpa.kernel.DelegatingBrokerFactory.newBroker(DelegatingBrokerFactory.java:155)
at org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:226)
at org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:153)
at org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:59)
at org.springframework.orm.jpa.JpaTransactionManager.createEntityManagerForTransaction(JpaTransactionManager.java:445)
at org.springframework.orm.jpa.JpaTransactionManager.doBegin(JpaTransactionManager.java:366)
at org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:371)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:94)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55)
at java.lang.reflect.Method.invoke(Method.java:619)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:319)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:196)
at com.sun.proxy.$Proxy56.getTransaction(Unknown Source)
at org.springframework.transaction.interceptor.TransactionAspectSupport.createTransactionIfNecessary(TransactionAspectSupport.java:336)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:105)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
at com.sun.proxy.$Proxy39.getTenancyDetailsWithTenantCode(Unknown Source)
at com.m.gsp.serviceimpl.TenancyDetailsServiceImpl.getTenancyDetailsWithTenantCode(TenancyDetailsServiceImpl.java:70)
at com.m.gsp.helper.TenancyDelegate.getTenancyDetailsWithTenantCode(TenancyDelegate.java:42)
at com.m.gsp.utils.WebUtils.fetchTenancyDetails(WebUtils.java:609)
at com.m.gsp.controllers.AuthenticationController.renderLoginPage(AuthenticationController.java:128)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:94)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55)
at java.lang.reflect.Method.invoke(Method.java:619)
at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:213)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:126)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:96)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:617)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:578)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:778)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:620)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
at com.m.gsp.tenancy.TenantDispatcherServlet.service(TenantDispatcherServlet.java:101)
at com.m.gsp.tenancy.TenantDispatcherServletProxy.service(TenantDispatcherServletProxy.java:82)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at com.m.gsp.logging.MDCServletFilter.doFilter(MDCServletFilter.java:140)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:186)
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160)
at com.m.gsp.tenancy.security.TenantDelegatingFilterProxy.doFilter(TenantDelegatingFilterProxy.java:65)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:503)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:421)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1070)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:314)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1176)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:795)

引起:org.apache.tomcat.dbcp.dbcp.SQLNestedException:无法为连接URL'jdbc:sqlserver:AX-RISCVMSQL74 \ SQL74:1435; databaseName =创建类'com.microsoft.sqlserver.jdbc.SQLServerDriver'的JDBC驱动程序GSPVN;” org.apache.tomcat.dbcp.dbcp.BasicDataSource.createConnectionFactory(BasicDataSource.java:1452)org.apache.tomcat.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1371)atg.apache.tomcat.dbcp .dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)org.apache.openjpa.lib.jdbc.DelegatingDataSource.getConnection(DelegatingDataSource.java:116)atg.apache.openjpa.lib.jdbc.DecoratingDataSource.getConnection(DecoratingDataSource) .java:93)at org.apache.openjpa.jdbc.schema.DataSourceFactory.installDBDictionary(DataSourceFactory.java:233)... 84更多引起:java.sql.SQLException:java.sql.DriverManager上没有合适的驱动程序。 getDriver(DriverManager.java:289)at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createConnectionFactory(BasicDataSource.java:1437)... 89更多

context.xml中:

<Resource name="jdbc/salesvietnamMssqlGspDS"
auth="Container"
factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"
driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
type="javax.sql.DataSource"
maxActive="50"
maxIdle="10"
maxWait="15000"
username="x"
password="y"
url="jdbc:sqlserver:server/instance:port;databaseName=dbname;"
removeAbandoned="true"
removeAbandonedTimeout="30"
logAbandoned="true" /> 

应用程序的WEB-INF / web.xml:

<resource-ref>
<description>JDBCconnection</description>
<res-ref-name>jdbc/salesvietnamMssqlGspDS</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>

我甚至将相同的resource-ref放在服务器的web.xml中。

sqljdbc4.jar存在于服务器的/lib目录中。 我将它添加到运行配置菜单中的用户条目下的Classpath中。 我甚至尝试在构建路径和部署程序集中添加它,我已经验证它确实显示在WEB-INF / lib中。

以上都没有任何影响。

我读到需要使用Class.forName("something.jdbc.driver.YourFubarDriver");注册驱动程序Class.forName("something.jdbc.driver.YourFubarDriver"); 但后来我也读到了不再需要JDBC4。

有任何想法吗?


I'm having an issue connecting to my DB in a Spring based web application hosted on Tomcat 7. In my search for a solution I've found many people who have had similar issues but none of their solutions seem to work for me. I'm developing in Eclipse (RAD 8.5).

Here is the stack trace:

2015-05-18_13:36:49.625 [http-bio-8080-exec-3] ERROR c.m.g.s.TenancyDetailsServiceImpl - Error condition: Could not open JPA EntityManager for transaction; nested exception is <openjpa-2.3.0-r422266:1540826 nonfatal general error> org.apache.openjpa.persistence.PersistenceException: There were errors initializing your configuration: <openjpa-2.3.0-r422266:1540826 fatal user error> org.apache.openjpa.util.UserException: A connection could not be obtained for driver class "null" and URL "null".  You may have specified an invalid URL.
at org.apache.openjpa.jdbc.schema.DataSourceFactory.newConnectException(DataSourceFactory.java:255)
at org.apache.openjpa.jdbc.schema.DataSourceFactory.installDBDictionary(DataSourceFactory.java:241)
at org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.getConnectionFactory(JDBCConfigurationImpl.java:733)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:94)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55)
at java.lang.reflect.Method.invoke(Method.java:619)
at org.apache.openjpa.lib.conf.ConfigurationImpl.instantiateAll(ConfigurationImpl.java:310)
at org.apache.openjpa.conf.OpenJPAConfigurationImpl.instantiateAll(OpenJPAConfigurationImpl.java:1670)
at org.apache.openjpa.kernel.AbstractBrokerFactory.makeReadOnly(AbstractBrokerFactory.java:651)
at org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker(AbstractBrokerFactory.java:203)
at org.apache.openjpa.kernel.DelegatingBrokerFactory.newBroker(DelegatingBrokerFactory.java:155)
at org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:226)
at org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:153)
at org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:59)
at org.springframework.orm.jpa.JpaTransactionManager.createEntityManagerForTransaction(JpaTransactionManager.java:445)
at org.springframework.orm.jpa.JpaTransactionManager.doBegin(JpaTransactionManager.java:366)
at org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:371)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:94)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55)
at java.lang.reflect.Method.invoke(Method.java:619)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:319)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:196)
at com.sun.proxy.$Proxy56.getTransaction(Unknown Source)
at org.springframework.transaction.interceptor.TransactionAspectSupport.createTransactionIfNecessary(TransactionAspectSupport.java:336)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:105)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
at com.sun.proxy.$Proxy39.getTenancyDetailsWithTenantCode(Unknown Source)
at com.m.gsp.serviceimpl.TenancyDetailsServiceImpl.getTenancyDetailsWithTenantCode(TenancyDetailsServiceImpl.java:70)
at com.m.gsp.helper.TenancyDelegate.getTenancyDetailsWithTenantCode(TenancyDelegate.java:42)
at com.m.gsp.utils.WebUtils.fetchTenancyDetails(WebUtils.java:609)
at com.m.gsp.controllers.AuthenticationController.renderLoginPage(AuthenticationController.java:128)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:94)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55)
at java.lang.reflect.Method.invoke(Method.java:619)
at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:213)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:126)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:96)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:617)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:578)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:778)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:620)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
at com.m.gsp.tenancy.TenantDispatcherServlet.service(TenantDispatcherServlet.java:101)
at com.m.gsp.tenancy.TenantDispatcherServletProxy.service(TenantDispatcherServletProxy.java:82)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at com.m.gsp.logging.MDCServletFilter.doFilter(MDCServletFilter.java:140)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:186)
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160)
at com.m.gsp.tenancy.security.TenantDelegatingFilterProxy.doFilter(TenantDelegatingFilterProxy.java:65)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:503)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:421)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1070)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:314)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1176)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:795)

Caused by: org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class 'com.microsoft.sqlserver.jdbc.SQLServerDriver' for connect URL 'jdbc:sqlserver:AX-RISCVMSQL74\SQL74:1435;databaseName=GSPVN;' at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createConnectionFactory(BasicDataSource.java:1452) at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1371) at org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044) at org.apache.openjpa.lib.jdbc.DelegatingDataSource.getConnection(DelegatingDataSource.java:116) at org.apache.openjpa.lib.jdbc.DecoratingDataSource.getConnection(DecoratingDataSource.java:93) at org.apache.openjpa.jdbc.schema.DataSourceFactory.installDBDictionary(DataSourceFactory.java:233) ... 84 more Caused by: java.sql.SQLException: No suitable driver at java.sql.DriverManager.getDriver(DriverManager.java:289) at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createConnectionFactory(BasicDataSource.java:1437) ... 89 more

Context.xml:

<Resource name="jdbc/salesvietnamMssqlGspDS"
auth="Container"
factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"
driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
type="javax.sql.DataSource"
maxActive="50"
maxIdle="10"
maxWait="15000"
username="x"
password="y"
url="jdbc:sqlserver:server/instance:port;databaseName=dbname;"
removeAbandoned="true"
removeAbandonedTimeout="30"
logAbandoned="true" /> 

Application's WEB-INF/web.xml:

<resource-ref>
<description>JDBCconnection</description>
<res-ref-name>jdbc/salesvietnamMssqlGspDS</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>

I even put the same resource-ref in the server's web.xml as well.

sqljdbc4.jar is present in the server's /lib directory. I added it to the Classpath under user entries in the run configurations menu. I even tried adding it in the build path and deployment assembly, I've verified it does show up in WEB-INF/lib.

None of the above have had any effect.

I read about needing to register the driver using Class.forName("something.jdbc.driver.YourFubarDriver"); but then I also read that was no longer necessary with JDBC4.

Any ideas?


原文:https://stackoverflow.com/questions/30311285
更新时间:2023-02-03 13:02

最满意答案

您需要在代码中包含一些头文件:

  1. unordered_map使用unordered_map STL。 而且,您只能在C ++ 11和C ++ 14中使用它。
  2. vector使用矢量STL。
  3. algorithm使用内置的sort()函数。

还有一些错误:

  1. 函数的名称是MakeSet() ,你使用Makeset()调用它
  2. 您在for(Edge e: g.edges){}循环中使用了roo2而不是root2
  3. for(Edge e: A){}循环中的cout语句在语法上不正确。

There are a few header files you need to include in your code:

  1. unordered_map to use the unordered_map STL. Moreover, you can use it only in C++11 and C++14.
  2. vector to use the vector STL.
  3. algorithm to use the inbuilt sort() function.

A few more bugs:

  1. The name of the function is MakeSet(), and you're calling it using Makeset()
  2. You have used roo2 instead of root2 in your for(Edge e: g.edges){} loop
  3. The cout statement in your for(Edge e: A){} loop is not syntactically correct.

相关问答

更多
  • 您可以快速删除优先级队列结构,但它们需要大量额外内存。 将rt交叉点留在队列中实际上更有效。 然后,当需要处理事件时,如果它无效(因为r和t不相邻)或者它已经完成,则忽略它。 为了检测何时已经完成rt,只需确保优先级队列按总排序排序 ,即不要只比较事件的x值。 当多个事件具有相同的x值时,请使用所涉及的段的标识符来断开关系。 然后,当rt在队列中多次出现时,所有出现的内容都将在一起,您可以按顺序将它们全部弹出。 There are priority queue structures that you can ...
  • 你的代码中有很多错误,我认为因为你是从1而不是0对你的顶点进行编号。其中一个错误导致它崩溃,我认为另一个导致错误的结果产生。 我将所有内部编号更改为基于0并且已经使其工作。 我重命名了你的变量,因为它们被非常荒谬地命名(你称之为Vertex是一个边缘),我无法理解它们的代码。 我担心我失去了改变的一切,但我希望你能看到我做了什么,如果你把它与原始代码进行比较。 请注意,我添加了一些调试行。 当你无法弄清楚你的代码在做什么时,只需打印相关的变量,你很快就会发现问题所在。 #include # ...
  • 您需要在代码中包含一些头文件: unordered_map使用unordered_map STL。 而且,您只能在C ++ 11和C ++ 14中使用它。 vector使用矢量STL。 algorithm使用内置的sort()函数。 还有一些错误: 函数的名称是MakeSet() ,你使用Makeset()调用它 您在for(Edge e: g.edges){}循环中使用了roo2而不是root2 for(Edge e: A){}循环中的cout语句在语法上不正确。 There are a few head ...
  • 看起来mysql头文件定义了一个宏min 。 #if !defined(max) #define max(a, b) ((a) > (b) ? (a) : (b)) #define min(a, b) ((a) < (b) ? (a) : (b)) #endif 这已被报告给MySQL作为bug 28184 。 该错误被标记为关闭,因此请尝试更新到最新版本。 根据错误页面,它应该在版本5.1.23,版本6.0.4和更新版本中修复。 It seems that the mysql h ...
  • 目前在C ++中没有all或any算法,但C ++ 0x将std::all_of和std::any_of算法添加到C ++标准库。 你的实现可能已经支持这些。 由于这两种算法都需要测试范围内的每个元素(至少直到他们发现匹配或不匹配),所以没有任何理由将它们专门用于不同类型的迭代器:与前向迭代器一起使用时的性能应该是与使用随机访问迭代器时的性能相同。 你all实施all很好; Visual C ++ all_of实现实际上是相同的,除了它使用for循环而不是while循环。 如何将这个最佳转换为迭代两个序列, ...
  • 正如svenningsson所言, 优先搜索队列非常适合Kruskal和Prim(至少作者在他的论文中声明了它)。Kruskal的问题在于它需要你有一个O(log n) 联合发现算法 。 这里描述了一个具有纯功能接口的联合查找数据结构,但它在内部使用可变状态,并且纯功能实现可能是不可能的,实际上,有一些问题尚未知晓高效的纯功能解决方案,如这个相关的SO问题。 一个非纯粹的替代品是在ST monad中实现union-find算法。 对Hackage的搜索发现等价包适合我们的需求。 以下是使用来自等价包的Dat ...
  • Kruskals算法想要添加某个边(a, b) 。 但是,在这样做之前,必须检查a和b是否已经连接(如果是,它将不会添加边缘)。 您的四条线路只检查a和b是否已连接。 要完全理解这一点,您必须知道以下内容:最初u和v分别设置为a和b 。 阵列p存储连接的组件。 即p[x] = y表示: x位于y的连通分量中。 注意,最初每个顶点表示它自己的连通分量,由p[n1] = 0, p[n2] = 0, ... (即组件设置为0)。 此外,请注意每个连接的组件由一个顶点表示。 所以,这里我们去: while(p[u] ...
  • 引用评论流: std::adjacent_find与std::greater_equal应该做的 - 它会找到第一个大于或等于下一个的元素; 如果不存在这样的元素,则序列严格增加。 #include #include #include int main() { std::vector v1{0, 1, 2, 3, 40, 41}; auto i2 = std::adjacent_find(v1.begin(), v ...
  • 出于实现Kruskal算法的目的,您以何种方式表示图形并不重要,因为您从不对属于顶点的边进行排序。 而是将所有边放入单个数组中,然后按升序对该数组进行排序。 图表的表示无关紧要,只要你可以走它,并将所有边缘收集到一个数组中(首先,你走图形来计算边缘,然后分配一个足够容量的数组,最后你走了再次绘制图形,将指向边缘的指针放入动态分配的数组中)。 一旦指向边缘的指针位于数组中,就对数组进行排序(例如,使用qsort )并运行Kruskal的算法。 您需要实现Disjoint Sets才能有效地合并森林; 只要你没 ...
  • 是的你可以。 但是你的比较器应该采用两个const log & (非int )参数。 Yes, you can. But your comparator should take two const log & (not int) arguments.

相关文章

更多

最新问答

更多
  • 您如何使用git diff文件,并将其应用于同一存储库的副本的本地分支?(How do you take a git diff file, and apply it to a local branch that is a copy of the same repository?)
  • 将长浮点值剪切为2个小数点并复制到字符数组(Cut Long Float Value to 2 decimal points and copy to Character Array)
  • OctoberCMS侧边栏不呈现(OctoberCMS Sidebar not rendering)
  • 页面加载后对象是否有资格进行垃圾回收?(Are objects eligible for garbage collection after the page loads?)
  • codeigniter中的语言不能按预期工作(language in codeigniter doesn' t work as expected)
  • 在计算机拍照在哪里进入
  • 使用cin.get()从c ++中的输入流中丢弃不需要的字符(Using cin.get() to discard unwanted characters from the input stream in c++)
  • No for循环将在for循环中运行。(No for loop will run inside for loop. Testing for primes)
  • 单页应用程序:页面重新加载(Single Page Application: page reload)
  • 在循环中选择具有相似模式的列名称(Selecting Column Name With Similar Pattern in a Loop)
  • System.StackOverflow错误(System.StackOverflow error)
  • KnockoutJS未在嵌套模板上应用beforeRemove和afterAdd(KnockoutJS not applying beforeRemove and afterAdd on nested templates)
  • 散列包括方法和/或嵌套属性(Hash include methods and/or nested attributes)
  • android - 如何避免使用Samsung RFS文件系统延迟/冻结?(android - how to avoid lag/freezes with Samsung RFS filesystem?)
  • TensorFlow:基于索引列表创建新张量(TensorFlow: Create a new tensor based on list of indices)
  • 企业安全培训的各项内容
  • 错误:RPC失败;(error: RPC failed; curl transfer closed with outstanding read data remaining)
  • C#类名中允许哪些字符?(What characters are allowed in C# class name?)
  • NumPy:将int64值存储在np.array中并使用dtype float64并将其转换回整数是否安全?(NumPy: Is it safe to store an int64 value in an np.array with dtype float64 and later convert it back to integer?)
  • 注销后如何隐藏导航portlet?(How to hide navigation portlet after logout?)
  • 将多个行和可变行移动到列(moving multiple and variable rows to columns)
  • 提交表单时忽略基础href,而不使用Javascript(ignore base href when submitting form, without using Javascript)
  • 对setOnInfoWindowClickListener的意图(Intent on setOnInfoWindowClickListener)
  • Angular $资源不会改变方法(Angular $resource doesn't change method)
  • 在Angular 5中不是一个函数(is not a function in Angular 5)
  • 如何配置Composite C1以将.m和桌面作为同一站点提供服务(How to configure Composite C1 to serve .m and desktop as the same site)
  • 不适用:悬停在悬停时:在元素之前[复制](Don't apply :hover when hovering on :before element [duplicate])
  • 常见的python rpc和cli接口(Common python rpc and cli interface)
  • Mysql DB单个字段匹配多个其他字段(Mysql DB single field matching to multiple other fields)
  • 产品页面上的Magento Up出售对齐问题(Magento Up sell alignment issue on the products page)