jetty WebappClassLoader 问题
jetty WebappClassLoader 问题
一、背景:一个main方法启动一个java app和一个jetty webserver
但是jetty webserver 获取不到java app的数据。【就是jetty web action不能获取 app中对象的返回结果】原因:两部分程序有两个classLoadersun.misc.Launcher$AppClassLoader@558fe7c3jetty WebappClassLoader
解决方案:都用sun的AppClassLoader把jetty的loader设为sun的AppClassLoader:? ClassLoader t_classLoader = Thread.currentThread().getContextClassLoader();WebAppContext.setClassLoader();?二、然后访问web应用,出现jstl错误:http://java.sun.com/jsp/jstl/core cannot be resolved in either web.xml or the jar files deployed with this application?解决方案:1.只用jstl-1.2.jar? ,不需要standard.jar2.同时调整classLoader
URLClassLoader t_newClassLoader =?new?URLClassLoader(new?URL[] { t_urlTaglibs }, classLoader);
??????? Thread.?currentThread().setContextClassLoader(t_newClassLoader);jettyServer.start();