Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法创建类';的JDBC驱动程序';用于连接URL';始终为空_Java_Eclipse_Tomcat_Jdbc_Context.xml - Fatal编程技术网

Java 无法创建类';的JDBC驱动程序';用于连接URL';始终为空

Java 无法创建类';的JDBC驱动程序';用于连接URL';始终为空,java,eclipse,tomcat,jdbc,context.xml,Java,Eclipse,Tomcat,Jdbc,Context.xml,你好,我有以下问题: 每当我尝试连接MySQL DB时,都会出现以下错误: com.pbs.web.jdbc.ParkingBookSystem.BookControllerServlet doGet SEVERE: null **java.sql.SQLException: Cannot create JDBC driver of class '' for connect URL 'null'** at org.apache.tomcat.dbcp.dbcp2.BasicDataSou

你好,我有以下问题: 每当我尝试连接MySQL DB时,都会出现以下错误:

com.pbs.web.jdbc.ParkingBookSystem.BookControllerServlet doGet
SEVERE: null
**java.sql.SQLException: Cannot create JDBC driver of class '' for connect URL 'null'**
    at org.apache.tomcat.dbcp.dbcp2.BasicDataSource.createConnectionFactory(BasicDataSource.java:2224)
    at org.apache.tomcat.dbcp.dbcp2.BasicDataSource.createDataSource(BasicDataSource.java:2104)
    at org.apache.tomcat.dbcp.dbcp2.BasicDataSource.getConnection(BasicDataSource.java:1563)
    at com.pbs.web.jdbc.ParkingBookSystem.BookDbUtil.doesBookExist(BookDbUtil.java:91)
    at com.pbs.web.jdbc.ParkingBookSystem.BookControllerServlet.addBook(BookControllerServlet.java:117)
    at com.pbs.web.jdbc.ParkingBookSystem.BookControllerServlet.doGet(BookControllerServlet.java:70)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:634)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:490)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
    at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:668)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
    at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)
    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:770)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1415)
    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Unknown Source)

**Caused by: java.sql.SQLException: No suitable driver
    at java.sql.DriverManager.getDriver(Unknown Source)**
    at org.apache.tomcat.dbcp.dbcp2.BasicDataSource.createConnectionFactory(BasicDataSource.java:2209)
    ... 29 more
我将context.xml放在:C:\Users\userName\eclipse workspace\WebAppName\src\main\resources\META-INF中 代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xml>
<Context>
<Resource 
    name="ParkingBookSystem" 
    auth="Container"
    type="javax.sql.DataSource"
    maxTotal="20"
    maxIdle="5"
    maxWaitMillis="10000"
    username="sql2226123"
    password="cccccccc"
    driverClassName="com.mysql.jdbc.Driver"
    url="jdbc:mysql://sql2.freemysqlhosting.net:3306/sql2226123"
/>
</Context>
我正在使用Maven、Eclipse和Tomcat这是我迄今为止尝试过的:

  • 我将mysql-connector-java-5.1.38-bin放入tomcat库
  • 手动将context.xml放入C:\Program Files\Apache Software Foundation\Tomcat 9.0\conf\Catalina\localhost
  • 如上所述,但名称已从context.xml更改为projectName.xml
  • 将所有内容放入server.xml(并注释掉此处的默认资源)
  • 我还发现tomcat文件中的任何更改都需要管理员权限,所以我为每个用户添加了完全控制,以确保情况并非如此
我没有更多的想法了,有人能帮忙吗?

将mysql连接器jar文件放在WEB-INF/lib目录中

和context.xml中的更改

<Context>
    <Resource name="jdbc/ParkingBookSystem" ...

好的,我找到了解决办法。。。问题是,当我将带有context.xml的META-INF放入以下文件时,它位于C:\Users\lukas\eclipse workspace\ParkingBookSystem\src\main\resources\META-INF\context.xml中: C:\Users\lukas\eclipse workspace\ParkingBookSystem\src\main\webapp
它开始工作。

我已将mysql-connector-java-5.1.38-bin放入:C:\Users\userName\eclipse workspace\WebAppName\src\main\webapp\WEB-INF\lib并编辑了context.xml、WEB.xml和lookup,但仍然有相同的错误:(您是否
clean
install
并重新启动服务器?是的。我停止了服务器,然后在项目上单击鼠标右键,然后作为Maven build运行,而不是作为目标运行:我提供:clean install。然后再次运行服务器,仍然存在相同的错误:(请尝试在
C:\Program Files\Apache Software Foundation\Tomcat 9.0\conf\context.xml
添加
Resource
元素,记住在JNDI名称中添加
jdbc/
。另外,您是如何从Eclipse启动Tomcat的?是的,完全是从Eclipse开始的这可能会有帮助:……请记住更改您的密码,除非您在此处发布了密码。)不是你的真实答案。如果这是你问题的答案(例如,它解决了你的问题),你可能会将其标记为接受答案(即使你自己给出了)。如果这是另一个问题,请不要在回答中发布,因为这里不会有任何人回答。此外,您必须更改您最初在问题中发布的密码。最好在其他人之前更改。
// constructor
public BookDbUtil() {
    try {
        Context initContext = new InitialContext();
        Context envContext = (Context) initContext.lookup("java:/comp/env");
        dataSource = (DataSource) envContext.lookup("ParkingBookSystem");
    } catch (NamingException e) {
        throw new IllegalStateException("Could not initialize database", e);
    }
}
<Context>
    <Resource name="jdbc/ParkingBookSystem" ...
<res-ref-name>jdbc/ParkingBookSystem</res-ref-name>
Context initContext = new InitialContext();
Context envContext  = (Context)initContext.lookup("java:/comp/env");
dataSource = (DataSource)envContext.lookup("jdbc/ParkingBookSystem");