Конфигурация Spring Jndi, Server.xml

У меня проблема с настройкой конфигурации для JNDI с помощью Spring. Я проверил другие сообщения, но не смог решить свою проблему. Я использую Tomcat 6 в качестве контейнера. Насколько я понимаю, мне нужно настроить ресурс на сервере. Итак, в моем файле server.xml у меня есть следующее:

<GlobalNamingResources>
    <Resource auth="Container" driverClassName="org.postgresql.Driver"
            maxActive="100" maxIdle="5" maxWait="10000"
            minEvictableIdleTimeMillis="60000" name="jdbc/myTomcatPool"
            password="password" testOnBorrow="true" testWhileIdle="true"
            timeBetweenEvictionRunsMillis="10000" type="javax.sql.DataSource"
            url="jdbc:postgresql://localhost:5432/postgis" username="postgres"
            validationQuery="SELECT 1"/>
</GlobalNamingResources>

У меня есть следующее в моем spring-context.xml (который находится в пути к классам):

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

<bean id="geoCodeService" class="com.sample.SampleImpl">
    <property name="dataSource" ref="geoCodeData"/>
</bean>

Я затем иметь это в файле META-INF / context.xml :

<Context path="/myApp" reloadable="true" cacheMaxSize="51200"
        cacheObjectMaxSize="2560">
    <ResourceLink global="jdbc/myTomcatPool" name="jdbc/myTomcatPool"
            type="javax.sql.DataSource"/>
</Context>

Мой сервер запускается без ошибок.

Когда я пытаюсь запустить следующий тест (который работал до того, как я добавил код JNDI):

public class Test {
    public static void main(String[] args) {
        ApplicationContext ctx =
            new ClassPathXmlApplicationContext("spring-context.xml");
    }
}

Я получаю следующую ошибку:

Исключение в потоке "main" org.springframework.beans.factory.BeanCreationException: Ошибка при создании bean-компонента с именем 'geoCodeData': не удалось вызвать метод инициализации;

вложенное исключение - javax.naming.NoInitialContextException: необходимо указать имя класса в свойстве среды или системы, либо в качестве параметра апплета, либо в файле ресурсов приложения : java.naming.factory.initial

Моя конфигурация неправильная или я пытаюсь запустить тест неверно?

6
задан JasonMArcher 14 January 2015 в 18:47
поделиться