2010-07-20 3 views
7

У меня есть веб-приложение с несколькими модулями maven, которое использует спящий режим.Использование Maven для развертывания на встроенном Tomcat с источником данных

Я использую цель tomcat: run, чтобы запустить ее на встроенном сервере tomcat maven. Пока все работает нормально.

Но теперь мне нужно переключиться с эксплицитной конфигурации jdbc в hibernate.properties на источник данных. Я сделал следующее:

  • измененного hibernate.properties

из

hibernate.connection.driver_class=oracle.jdbc.OracleDriver 
hibernate.connection.url=jdbc:somejdbcurl 
hibernate.connection.username=aUser 
hibernate.connection.password=aPassword 

в

hibernate.connection.datasource=java:comp/env/jdbc/datasourcename 
  • в web.xml я добавил
<resource-ref> 
    <res-ref-name>jdbc/datasourcename</res-ref-name> 
    <res-type>javax.sql.DataSource</res-type> 
    <res-auth>Container</res-auth> 
</resource-ref> 
  • добавил context.xml рядом с web.xml со следующим содержанием:
<Context> 
    <Resource name="jdbc/datasourcename" 
     auth="Container" 
     type="javax.sql.DataSource" 
     username="aUser" password="aPassword" 
     driverClassName="oracle.jdbc.OracleDriver" 
     url="jdbc:somejdbcurl" 
     maxActive="2" maxIdle="2"/> 
</Context> 

Это не работает, что так как я не нашел способ предоставить файл jar, содержащий драйвер Oracle jdbc. Я ожидал ClassNotFound Exception или что-то подобное, но вместо этого я получил

org.hibernate.exception.GenericJDBCException: Cannot open connection 

с корнем вызвать вниз в стопке:

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

Soooooo вопросы являются:

  • Почему Безразлично 't tomcat знает, что я хочу, чтобы он использовал драйвер Oracle?
  • Как я могу сообщить кому-нибудь о файле jar, который содержит драйвер?

ответ

11

Вы должны добавить драйвер JDBC в объявлении плагина:

<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>tomcat-maven-plugin</artifactId> 
    <version>1.0</version> 
    <configuration> 
    ... 
    </configuration> 
    <dependencies> 
    <dependency> 
     <groupId>...</groupId> 
     <artifactId>...</artifactId> 
     <version>...</version> 
    </dependency> 
    </dependencies> 
</plugin> 

Кстати, значение по умолчанию для contextFile является src/main/webapp/META-INF/context.xml.

+0

, который выглядит многообещающим, я попробую, что завтра –

+0

спасибо за указание по умолчанию contextFile location .. Я провел несколько часов, преследуя это. –

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