2016-05-24 90 views
0

我正在重建我的開發環境,我無法使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文件夾中。這是我以前總是這樣做的。

enter image description here

我以爲這是一個驅動程序的事情。但也許不是?有人可以請建議一個好的方法來調試這個?因爲,我很難...

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&amp;zeroDateTimeBehavior=convertToNull" 
/> 

<Resource name="mail/MailSession" 
    auth="Container" 
    type="javax.mail.Session" 
    mail.smtp.auth="false" 
    mail.smtp.host="localhost" 
/>   

</Context> 
+0

您的意思是JDBC驅動程序? – meskobalazs

+0

'javax.servlet.jsp.JspException:無法獲取連接,DataSource無效:「java.lang.NullPointerException」意味着某行代碼嘗試訪問空引用。你應該找出哪一行代碼 - 這實際上可以保證幫助你。 – DavidS

+0

我開始評論代碼,它只是移動到下一個數據庫引用。所以這是一個絕對的全球性問題...... – PrecisionPete

回答

0

我承認我忘了從舊環境中複製web.xml文件,真是尷尬...... Doh!坐得如此接近......有時你看不到樹林。

0

如果你的Eclipse下雙擊您的Tomcat實例它會帶你到設置服務器,並從那裏你可以選擇「打開啓動配置」選項,您可以將您的驅動jar添加到引導類路徑。

這就是說,我不認爲這個問題是一個缺少的驅動程序,因爲這通常會導致「未找到類」異常。仔細檢查你的日誌,確保你沒有收到任何錯誤。我假設你讓Tomcat打開你的數據庫連接來創建一個數據源。看起來你沒有在你的Tioomcat server.xml和context.xml中配置你的數據源,因此當你嘗試使用它時,你的servlet會拋出一個空指針異常。

+0

context.xml與過去幾年一樣。密碼是正確的。我不知道它是不是找到context.xml?往上看。 – PrecisionPete

相關問題