我使用Java创建了一个简单的Web服务。我想在运行时加载与Web服务相关的jar。我已经为普通的Java应用程序完成了这项任务。那里我做的是
JarFile jar = new JarFile(f.getPath());
final Manifest manifest = jar.getManifest();
final Attributes mattr = manifest.getMainAttributes();
// Read the manifset in jar files and get the Name attribute
// whare it specified the class that need to load
//for (Object a : mattr.keySet()) {
for (Iterator iter = mattr.keySet().iterator(); iter.hasNext();) {
Object obj = (Object)iter.next();
if ("ServiceName".equals(obj.toString()))
className = mattr.getValue((Name) obj);
//System.out.println(className);
}
/*
* Create the jar class loader and use the first argument passed
* in from the command line as the jar file to use.
*/
JarClassLoader jarLoader = new JarClassLoader(f.getPath());
/* Load the class from the jar file and resolve it. */
Class c = jarLoader.loadClass(className, true);
我的问题是
我可以将需要在运行时加载的jar放入单独的文件夹而不是放入WEBINF文件夹。
我是否必须将jar放在轴和web应用程序中。
提前感谢您对此问题的任何贡献。
答案 0 :(得分:2)
你的jar放在哪里取决于你的应用程序服务器,对于tomcat i.g. ${catalina.home}/common/lib
将是一个已添加到类路径并且对您的应用程序可见的地方。