这几天写了一个工具,需要用到很多的第三方Jar包,在Linux下运行了半天Java -cp lib/*.jar -jar myJar.jar才知道当使用-jar的时候,-cp是没用的。然后就写了一个JarLoader,来运行程序。ClassLoader classLoader = new URLClassLoader(urls, Thread.currentThread().getContextClassLoader());Method method = classLoader.loadClass("com.test.main.Entrance").getMethod("main", String[].class);method.invoke(null, new Object[] { args });当然,这个jarLoader在运行普通程序的时候是没问题的,但是现在问题是我作的是一个WebService,
当用我的JarLoader去调用Webservice的Entrance.java -> Main 主程序,然后EndPoint.publish(address,new ServiceImpl());
的时候,抱错说是找不到ServiceImpl实现的接口Service。我自己的理解是,我自己定义了一个ClassLoader,WebService中定义了一个ClassLoader,这两个之间的信息是互相透明的,导致WebService的ClassLoader找不到这个接口。对么?有什么实现方法么?
求大牛!!!!求JVM高人!!!!classloaderLinuxJavaWebService