Спящий режим с JNDI: невозможно создать драйвер JDBC класса '' для URL-адреса подключения 'null' - PullRequest
0 голосов
/ 30 марта 2011

Я пытался использовать Hibernate для работы с MySQL через JNDI, но не могу (из catalina.out):

INFO: Deploying web application archive mystamps.war
Cannot create JDBC driver of class '' for connect URL 'null'
java.lang.NullPointerException
    at sun.jdbc.odbc.JdbcOdbcDriver.getProtocol(JdbcOdbcDriver.java:507)
    at sun.jdbc.odbc.JdbcOdbcDriver.knownURL(JdbcOdbcDriver.java:476)
    at sun.jdbc.odbc.JdbcOdbcDriver.acceptsURL(JdbcOdbcDriver.java:307)

(Я сокращаю трассировку полного стека, потому что она бесполезна: без причины или каких-либо других исключений.)

весна-servlet.xml:

    <jee:jndi-lookup id="dataSource" jndi-name="java:comp/env/jdbc/mystamps" />

    <bean id="sessionFactory"
        class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
        <property name="dataSource" ref="dataSource" />
        <property name="packagesToScan" value="ru.mystamps.web.dao" />
        <property name="hibernateProperties">
            <props>
                <prop key="hibernate.show_sql">true</prop>
                <prop key="hibernate.format_sql">true</prop>
                <prop key="hibernate.use_sql_comments">true</prop>
                <prop key="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</prop>
                <prop key="hibernate.hbm2ddl.auto">validate</prop>
                <prop key="hibernate.connection.charSet">UTF-8</prop>
            </props>
        </property>
    </bean>

/ и т.д. / tomcat6 / server.xml:

<Host name="my-stamps" appBase="webapps"
    unpackWARs="false" xmlValidation="false"
    xmlNamespaceAware="false">
</Host>

/ и т.д. / tomcat6 / Catalina / мои штемпелюет / mystamps.xml:

<?xml version='1.0' encoding='utf-8'?>
<Context path="" docBase="mystamps" allowLinking="true" reloadable="true">
    <Resource name="jdbc/mystamps" auth="Containter"
        type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000"
        username="root" password="password" driverClassName="com.mysql.jdbc.Driver"
        url="jdbc:mysql://localhost:3306/mystamps" />
</Context>

Я использую следующие версии: Spring MVC 3.0.5, Hibernate 3.6.2.Final, MySQL 5.1.52, mysql-connector-java 5.1.15 (находится в / usr / share / tomcat6 / lib) и Tomcat 6.0. 30

Я использую Google и пытаюсь исправить это самостоятельно, но без удачи: (

Можете ли вы помочь мне - что я делаю не так?

ТИА

Ответы [ 2 ]

0 голосов
/ 01 ноября 2013

Была такая же ошибка, когда я переместил местоположение, в котором JNDI объявлен в context.xml, и моя ошибка ушла.Эта ошибка означает, что пружина не может найти информацию JNDI.Не было необходимости в ссылке на server.xml

/etc/tomcat6/context.xml

<?xml version='1.0' encoding='utf-8'?>
<Context path="" docBase="mystamps" allowLinking="true" reloadable="true">
    <Resource name="jdbc/mystamps" auth="Containter"
        type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000"
        username="root" password="password" driverClassName="com.mysql.jdbc.Driver"
        url="jdbc:mysql://localhost:3306/mystamps" />
</Context>

Ссылка: http://tomcat.apache.org/tomcat-6.0-doc/jndi-datasource-examples-howto.html

Надеюсь, это поможет!

0 голосов
/ 30 марта 2011

Вы пытались поместить файл jar коннектора mysql в папку WEB-INF / lib вашего упакованного файла war?

Или может быть полезна следующая ссылка: http://ubuntuforums.org/showthread.php?t=430133

...