Tomcat 7.0.8에 webapp가 배포되었습니다. 최근에는 쿼츠 스케줄러에서 호출되는 몇 가지 작업을 모니터링 할 수 있도록 MBeans를 구현하기 시작했습니다. JConsole을 사용하여 Tomcat의 MBean 서버에 연결하고 JNDI를 통해 데이터베이스에 연결을 시도하는 메소드를 호출합니다.JMX를 통해 연결할 때 Tomcat에서 JNDI 컨텍스트 초기화가 실패합니다
실행은 다음과 같은 예외가 발생 Context initContext = new InitialContext();
에 도달하면 :
는 javax.naming.NoInitialContextException : 클래스를 인스턴스화 할 수 없습니다 org.apache.naming.java.javaURLContextFactory [루트 예외가 java.lang.ClassNotFoundException가이다 : org.apache.naming.java.javaURLContextFactory]
메소드가 일반 서블릿 (JAX-WS 웹 서비스)에서 호출 될 때 클래스로드에 문제가 없습니다. JMX가 관련되어있을 때 클래스 로딩이 다르게 작동하는 것으로 보이지만 어떻게 될지 알 수 없습니다 ... RMI class loader disabled
과 관련이 있으며 JConsole에서 알려줍니다.
OK, web.xml/server.xml에 정의 된 JNDI 리소스에 연결할 수 없다는 의미입니까? 리소스를 정의하는 다른 방법이 없으므로 구현 코드를 변경하지 않고도 JNDI 데이터 소스에 연결할 수 있습니다. –
외부 [레지스트리 서비스] (http://docs.oracle.com/javase/1.5.0/docs/guide/jndi/jndi-rmi.html)를 사용하십시오. –