无法打开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
最满意答案
您需要在代码中包含一些头文件:
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 header files you need to include in your code:
unordered_map
to use the unordered_map STL. Moreover, you can use it only in C++11 and C++14.vector
to use the vector STL.algorithm
to use the inbuilt sort() function.A few more bugs:
- The name of the function is
MakeSet()
, and you're calling it usingMakeset()
- You have used
roo2
instead ofroot2
in yourfor(Edge e: g.edges){}
loop- The
cout
statement in yourfor(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循环。 如何将这个最佳转换为迭代两个序列, ...
-
我如何在Haskell中编写MST算法(Prim或Kruskal)?(How can I write a MST algorithm (Prim or Kruskal) in Haskell?)[2021-06-24]
正如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] ...
-
有没有STL算法来检查范围是否严格排序?(c++ Is there STL algorithm to check if the range is strictly sorted?)[2023-04-09]
引用评论流: 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.