Источник данных Jetty, Hibernate, источник данных не найден - PullRequest
1 голос
/ 10 октября 2011

Я пытаюсь настроить источник данных в Jetty 7.4.Я смог сделать это успешно с моим веб-приложением в Tomcat context.xml.

Вот что у меня есть в jetty.xml (это будет единственное приложение в этом экземпляре Jetty, поэтому я нене против иметь соединение с БД для всего сервера - я бы предпочел не настраивать его во время войны).Он находится в самом низу чуть выше последнего </Configure>:

<New class="org.eclipse.jetty.plus.jndi.Resource" id="myDB">
    <Arg>
      <Ref id="Server"/>
    </Arg>
    <Arg>jdbc/myDB</Arg>
    <Arg>
        <New class="com.microsoft.sqlserver.jdbc.SQLServerDataSource">
            <Set name="URL">jdbc:sqlserver://SERVERNAME;databaseName=DATABASENAME;sendStringParametersAsUnicode=false</Set>
            <Set name="user">USERNAME</Set>
            <Set name="password">PASSWORD</Set>
        </New>
    </Arg>
</New>

В WEB-INF / web.xml моего веб-приложения:

<resource-ref>
  <description>Database Connection</description>
  <res-ref-name>jdbc/myDB</res-ref-name>
  <res-type>javax.sql.DataSource</res-type>
  <res-auth>Container</res-auth>
</resource-ref>

Наконец, в моем hibernate.cfg.xml:

<property name="connection.datasource">java:comp/env/jdbc/myDB</property>

Тем не менее, я получаю ошибку источника данных не найден, и я также вижу следующее исключение NameNotFoundException:

javax.naming.NameNotFoundException; remaining name 'env/jdbc/myDB'

Когда я запускаю Jetty с включенной отладкой, онПохоже, он регистрирует имя и все такое, хотя я далеко не эксперт по Jetty.Я пропустил шаг здесь?Что осталось?

1 Ответ

4 голосов
/ 10 октября 2011

Да, это странные сервера некоторых приложений. Некоторым нужен «java: comp / env», предварительно добавленный к имени ресурса JNDI, другим нет. Я думаю, что у Spring есть даже опция для включения / выключения этого префикса, когда вы объявляете компонент JNDI (например, источник данных).

Попытка:

<property name="connection.datasource">jdbc/myDB</property>

в вашей конфигурации Hibernate.

...