簡體   English   中英

Tomcat 7無法與MySQL 5.5建立數據庫連接

[英]Tomcat 7 cannot get a database connection with MySQL 5.5

當嘗試訪問從數據庫讀取的servlet時,出現以下錯誤:

HTTP Status 500 -
...
java.lang.NullPointerException
    com.pdq.sms.db.DatabaseAccess.getConnection(DatabaseAccess.java:39)
    com.pdq.sms.db.DataRow.Read(DataRow.java:79)
    com.kessel.controllers.Home.doPost(Home.java:50)
    com.kessel.controllers.Home.doGet(Home.java:39)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
note The full stack trace of the root cause is available in the Apache Tomcat/7.0.26 logs.

在Tomcat日志文件中查找,我發現:“名稱testapp在此上下文中未綁定”

這是server.xml的相關部分

<Host name="myserver.org" appBase="webapps/test" 
      unpackWARs="true" autoDeploy="true">
   <Context path="/" docBase="testapp" reloadable="false">
      <Resource name="jdbc/testapp" auth="Container"
          type="javax.sql.DataSource" maxActive="100" maxIdle="10" maxWait="10000"
          validationQuery="SELECT 1" driverClassName="com.mysql.jdbc.Driver"
          username="myuser" password="mypass"
          url="jdbc:mysql://localhost:3306/test_db?zeroDateTimeBehavior=convertToNull" />
    </Context>"
</Host>"

我還修改了04webapps.policy以授予應用程序連接權限:

   permission java.net.SocketPermission "127.0.0.1:3306", "resolve, connect";

用戶已在MySQL服務器上正確設置,我可以手動連接並選擇,插入相關數據庫。

我在做什么不對?

更改您的resourceName;

   java:comp/env/jdbc/testapp

  java://comp/env/jdbc/testapp

首先,將jdbc代碼編寫為簡單的Java程序,不要忘記將jdbc驅動程序添加為外部jar文件。 您也可以嘗試將jdbc jar文件放在tomcat的lib文件夾或jre / lib / ext文件夾中 ,這是因為,當servlet編譯時,它將在第3方jar中將cse的lib jar文件用於cse。 如果jdbc連接代碼沒有錯誤,則它將在添加jar文件后運行文件

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM