웹 어플리케이션에서 클래스를, 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 하지 말도록~!
반응형
블로그 이미지

Good Joon

IT Professionalist Since 1999

,