我正在重建我的開發環境,我無法使JDBC工作。我在Eclipse Java EE Mars.2下運行Tomcat 7,並使用mysql-connector-java。還有Linux Mint 17.2。我升級到最新的一堆東西,但我不認爲就是這樣。Tomcat在Eclipse下無法找到JDBC驅動程序?
當我在Eclipse下啓動Tomcat服務器時,我不斷收到以下內容。我沒有在這臺機器上單獨運行它。就在Eclipse下。
SEVERE:
Servlet.service() for servlet [jsp] in context with path [] threw exception [javax.servlet.ServletException: javax.servlet.jsp.JspException: Unable to get connection, DataSource invalid: "java.lang.NullPointerException"] with root cause
javax.servlet.jsp.JspException: Unable to get connection, DataSource invalid: "java.lang.NullPointerException"
我想這意味着它找不到驅動程序?所有的文件結構都和我的舊PC一樣。 IDE並不抱怨缺少任何東西。只是當我嘗試啓動服務器時。
我將mysql-connector-java-5.1.39-bin.jar
添加到Tomcat/lib文件夾中。具體來說:/opt/apache-tomcat-7.0.69/lib
。我確信服務器正在引用該文件夾。我也確定它不在webapp的lib文件夾中。這是我以前總是這樣做的。
我以爲這是一個驅動程序的事情。但也許不是?有人可以請建議一個好的方法來調試這個?因爲,我很難...
META-INF/context.xml
是因爲它是從以前的環境。密碼是正確的,並且可以從IDE連接沒有問題。
<?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/mydbdb"
auth="Container"
type="javax.sql.DataSource"
factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
driverClassName="com.mysql.jdbc.Driver"
testWhileIdle="true" testOnBorrow="true" testOnReturn="false"
validationQuery="SELECT /* ping */" validationInterval="30000"
timeBetweenEvictionRunsMillis="30000"
maxActive="100" minIdle="10" maxWait="10000" initialSize="10"
removeAbandonedTimeout="600" removeAbandoned="true" logAbandoned="true"
minEvictableIdleTimeMillis="30000"
jmxEnabled="true"
username="user" password="password"
useUnicode="true" useEncoding="true" characterEncoding="UTF-8"
url="jdbc:mysql://localhost:3306/mydb?useOldAliasMetadataBehavior=true&zeroDateTimeBehavior=convertToNull"
/>
<Resource name="mail/MailSession"
auth="Container"
type="javax.mail.Session"
mail.smtp.auth="false"
mail.smtp.host="localhost"
/>
</Context>
您的意思是JDBC驅動程序? – meskobalazs
'javax.servlet.jsp.JspException:無法獲取連接,DataSource無效:「java.lang.NullPointerException」意味着某行代碼嘗試訪問空引用。你應該找出哪一行代碼 - 這實際上可以保證幫助你。 – DavidS
我開始評論代碼,它只是移動到下一個數據庫引用。所以這是一個絕對的全球性問題...... – PrecisionPete