Web服务可以在运行时加载jar

时间:2010-04-16 06:12:49

标签: java web-services

我使用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);

我的问题是

  1. 我可以将需要在运行时加载的jar放入单独的文件夹而不是放入WEBINF文件夹。

  2. 我是否必须将jar放在轴和web应用程序中。

  3. 提前感谢您对此问题的任何贡献。

1 个答案:

答案 0 :(得分:2)

你的jar放在哪里取决于你的应用程序服务器,对于tomcat i.g. ${catalina.home}/common/lib将是一个已添加到类路径并且对您的应用程序可见的地方。