웹 어플리케이션에서 클래스를, Class.forName() 으로 생성하는 것은 상당히 위험한 짓이다.
이는 또한 잘 생성되지도 않고, WAS 환경 하에서 되거나 안되거나 한다.
ContextClassLoader 를 사용하는 환경에서는, 자신이 클래스를 로드하기 위해 사용해야 하는 클래스로더를 제공하는 API 를 사용하여야 한다.
public static Class getClass(String name) throws Exception{ ClassLoader classLoader = Thread.currentThread().getContextClassLoader(); Class classInstance = null; try { classInstance = classLoader.loadClass(name.trim()); } catch (ClassNotFoundException e) { e.printStackTrace(); throw e; } return classInstance; }
대략 위와 같이 메소드를 작성하여 사용할 수 있다.
절대 Application Server 환경에서, forName 하지 말도록~!
반응형
'Software Development > JavaSE&EE' 카테고리의 다른 글
JNDI NamingResource 못찾는 문제 (Jeus/MySQL) (0) | 2009.11.16 |
---|---|
struts.xml 작성 시 주의사항 (0) | 2009.11.16 |
iBatis 에서 JNDI 설정 시 주의사항 (0) | 2009.10.25 |
Commons Logging 과 Log4J (0) | 2009.10.16 |
JSP 페이지를 직접 URL로 접근하지 못하게 하려면? (꽁수) (0) | 2009.10.16 |