У меня есть webapp, развернутый в Tomcat 7.0.8. Недавно я начал внедрять MBeans, чтобы иметь возможность отслеживать несколько действий, которые обычно вызывается из планировщика кварца. Я подключаюсь к серверу MBean Tomcat с помощью JConsole и вызывается метод, который пытается подключиться к базе данных через JNDI.Инициализация контекста JNDI терпит неудачу в Tomcat при подключении через JMX
Когда выполнение достигает Context initContext = new InitialContext();
следующее исключение брошено:
javax.naming.NoInitialContextException: Невозможно создать класс: org.apache.naming.java.javaURLContextFactory исключение [Корень java.lang.ClassNotFoundException: org.apache.naming.java.javaURLContextFactory]
Когда метод вызывается из обычного сервлета (а JAX-WS WebService), нет никаких проблем с загрузкой классов. Кажется, загрузка классов работает по-разному, когда задействован JMX, но я не могу понять, как ... Может это что-то связано с RMI class loader disabled
, что мне говорит JConsole?
ОК, означает ли это, что я не могу достичь каких-либо ресурсов JNDI, определенных в файле web.xml/server.xml? Есть ли другой способ определить ресурсы, чтобы я, не меняя код реализации, мог получить источник данных JNDI? –
Используйте внешнюю [службу реестра] (http://docs.oracle.com/javase/1.5.0/docs/guide/jndi/jndi-rmi.html). –