Tomcat在Eclipse下找不到JDBC驱动程序?

时间:2016-05-24 13:05:07

标签: java mysql eclipse tomcat

我正在重建我的开发环境,我无法让JDBC工作。我在Eclipse Java EE Mars.2下运行Tomcat 7并使用mysql-connector-java。 Linux Mint 17.2。我升级到最新的一堆东西,但我认为不是这样。

当我在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>

2 个答案:

答案 0 :(得分:1)

我非常尴尬地承认我忘了从旧环境中复制web.xml文件...... Doh!坐得这么近......有时你看不到森林里的树木。

答案 1 :(得分:0)

如果您在Eclipse下双击Tomcat实例,它将转到服务器的设置,然后您可以从中选择&#34; Open Launch Configuration&#34;选项,您可以将驱动程序jar添加到引导程序类路径中。

那就是说,我不认为这个问题是一个缺失的驱动因素,因为这通常会导致#34; Class not found&#34;例外。仔细检查您的日志,确保您没有收到任何错误。我假设您让Tomcat打开您的数据库连接以创建数据源。您似乎没有在Tioomcat server.xml和context.xml中配置数据源,因此在尝试使用它时,您的servlet会抛出空指针异常。