2013-05-06 5 views
2

У меня есть странная проблема с TomEE и использование DataSource, указанного в tomee.xml. Возможно, стоит отметить, что я использую Netbeans, TomEE и MySQL. Работает на Ubuntu 13.04 (Xubuntu последней)TomEE DataSource не найден

Файл tomee.xml выглядит следующим образом:

<?xml version="1.0" encoding="UTF-8"?> 
<tomee> 
    <Resource id="booktablesDS" type="DataSource"> 
     JdbcDriver com.mysql.jdbc.Driver 
     JdbcUrl jdbc:mysql:localhost:3306/book_tables 
     UserName juser 
     Password jpassword 
     JtaManaged true 
    </Resource> 
</tomee> 

и небольшой codesnippet, тестирование пула соединений:

@Resource DataSource booktablesDS; 

    protected void processRequest(HttpServletRequest request, HttpServletResponse response) 
      throws ServletException, IOException { 
     try { 

    Connection c = booktablesDS.getConnection(); 
    Statement stmt = c.createStatement(); 
    ResultSet rs = stmt.executeQuery("SELECT * FROM BOOKS"); 

Выход Я получение от TomEE:

SEVERE: null 
org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null' 

Полный стоп-курс следует за ним.

May 06, 2013 11:08:53 AM org.apache.catalina.util.LifecycleBase start 
INFO: The start() method was called on component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/EJBTest]] after start() had already been called. The second call will be ignored. 
May 06, 2013 11:08:54 AM MainS processRequest 
SEVERE: null 
org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null' 
    at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createConnectionFactory(BasicDataSource.java:1452) 
    at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1371) 
    at org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044) 
    at MainS.processRequest(MainS.java:35) 
    at MainS.doGet(MainS.java:64) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:621) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:728) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) 
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99) 
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) 
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004) 
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589) 
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
    at java.lang.Thread.run(Thread.java:722) 
Caused by: java.lang.NullPointerException 
    at sun.jdbc.odbc.JdbcOdbcDriver.getProtocol(JdbcOdbcDriver.java:524) 
    at sun.jdbc.odbc.JdbcOdbcDriver.knownURL(JdbcOdbcDriver.java:493) 
    at sun.jdbc.odbc.JdbcOdbcDriver.acceptsURL(JdbcOdbcDriver.java:307) 
    at java.sql.DriverManager.getDriver(DriverManager.java:273) 
    at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createConnectionFactory(BasicDataSource.java:1437) 
    ... 22 more 

May 06, 2013 11:08:55 AM org.apache.catalina.startup.HostConfig deleteRedeployResources 
INFO: Undeploying context [/EJBTest] 

В основном, похоже, что netbeans развертывает проект с другим файлом tomee.xml? Невзирая на значения в моем tomee.xml, который находится под tom-ee/conf/tomee.xml

Помощь была бы потрясающей.

ответ

4

Похоже, ваш URL неправильно.

jdbc:mysql:localhost:3306/book_tables 

должен быть

jdbc:mysql://localhost:3306/book_tables 

Вы можете перепроверить ли драйвер JAR MySQL действительно есть в tomee/lib папке.

+0

В этом была проблема. // не было там ... О, хорошо, хорошо знать! Теперь у меня есть некоторые неприятные проблемы настойчивости ... –

+0

Рад, что сейчас работает. Часто возникает проблема, когда «//» находится в неправильном месте. :-) –

1

Попробуйте изменить свой код так:

@Resource(name = "booktablesDS", type = javax.sql.DataSource.class) 
DataSource booktablesDS; 
+0

Неа, все та же ошибка выхода: СИЛЬНЫЙ: нулевой org.apache.tomcat.dbcp.dbcp.SQLNestedException: Невозможно создать драйвер JDBC класса «» для подключения URL «нулевой» –

+0

Вы добавили в зависимости JDBC ваш pom.xml (я полагаю, вы используете maven)? – Eugene

+0

Ну NetBeans строит его автоматически, но он использует maving по умолчанию. Однако, я не добавил jdbc dep, так как я думал, что это не обязательно, потому что сервер имеет его в папке _BASE_/lib. Я еще не коснулся файла pom.xml –

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