一个疑问,模拟bootstrap获取webappclassloader的class却不成功,无语了。

来源:互联网 发布:宾馆记账软件 编辑:程序博客网 时间:2024/06/03 16:49
public boolean setRequestTmp(org.apache.catalina.connector.Request tmpRequest) {System.err.println("requestInfo------------>" + this.getClass().getClassLoader());ClassLoader loader = Thread.currentThread().getContextClassLoader();try {Class<?> forName = Class.forName(tmpRequest.getClass().getName(), true, loader);System.err.println(forName.getName() + ":" + forName + ":" + forName.getClassLoader());Method method = tmpRequest.getClass().getDeclaredMethod("getHost", null);Object invoke = method.invoke(tmpRequest.getClass().newInstance(), null);Object invoke1 = method.invoke(forName.newInstance(), null);System.out.println(invoke);System.out.println(invoke1);ServiceLoader<Request> loader1 = (ServiceLoader<Request>) ServiceLoader.load(tmpRequest.getClass());Iterator<Request> iterator = loader1.iterator();while (iterator.hasNext()) {Request driver = (Request) iterator.next();System.out.println("driver:" + driver.getClass() + ",loader:" + driver.getClass().getClassLoader());}} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}if (tmpRequest != null) {HttpSession session = tmpRequest.getSession();}return false;}

原创粉丝点击