2016-05-24 4 views
0

Я перестраиваю свою среду разработки, и я не могу заставить JDBC работать. Я запускаю Tomcat 7 под Eclipse Java EE Mars.2 и использую mysql-connector-java. Также Linux Mint 17.2. Я обновился до самого последнего из множества вещей, но я не думаю, что это так.Tomcat не может найти драйвер JDBC под Eclipse?

Когда я запускаю сервер Tomcat под Eclipse, я продолжаю получать следующее. Я не запускаю его отдельно на этой машине. Просто под 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" 

Я предполагаю, что это означает, что он не может найти водителя? Все структуры файлов такие же, как у моего старого ПК. И IDE не жалуется ни о чем. Это просто, когда я пытаюсь запустить сервер.

Я добавил mysql-connector-java-5.1.39-bin.jar в папку Tomcat/lib. В частности: /opt/apache-tomcat-7.0.69/lib. И я убедился, что сервер ссылается на эту папку. Я также убедился, что это не в папке lib Webapp. Так я всегда это делал раньше.

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

Если вы дважды щелкните экземпляр Tomcat под Eclipse, это приведет вас к настройке для сервера, а оттуда вы можете выбрать опцию «Open Launch Configuration», где вы можете добавить свою баночку драйвера на bootstrap classpath.

Это не означает, что проблема заключается в отсутствующем драйвере, так как обычно это приводит к исключению «Класс не найден». Внимательно проверьте свои журналы и убедитесь, что у вас нет ошибок. Я полагаю, что вы позволяете Tomcat открывать соединения с базой данных для создания источника данных. Похоже, что у вас нет источника данных, настроенного в вашем Tioomcat server.xml и context.xml, и поэтому ваш сервлет бросает исключение нулевого указателя при попытке его использовать.

+0

Контекст.xml такой же, как и в течение многих лет. И пароль правильный. Интересно, не нашел ли он context.xml? См. Выше. – PrecisionPete

Смежные вопросы