Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Service Glassfish上web服务之间的共享库_Service_Jar_Shared - Fatal编程技术网

Service Glassfish上web服务之间的共享库

Service Glassfish上web服务之间的共享库,service,jar,shared,Service,Jar,Shared,我需要在jax ws应用服务器glassfish 3上部署多个web服务。这些web服务需要有共享库,这意味着同一类的共享实例 我知道我可以通过在“~/glassfish3/glassfish/domains/domain1/lib”目录中放置一个jar来实现这一点。但我想知道这是否可能以一种更优雅的方式实现:我想将共享库jar放在我部署的web服务war中,然后从我部署在同一应用服务器上的另一个war访问该库 如何做到这一点?我自己为Glassfish找到了一个解决方案:基本上,我只是部署了一

我需要在jax ws应用服务器glassfish 3上部署多个web服务。这些web服务需要有共享库,这意味着同一类的共享实例

我知道我可以通过在“~/glassfish3/glassfish/domains/domain1/lib”目录中放置一个jar来实现这一点。但我想知道这是否可能以一种更优雅的方式实现:我想将共享库jar放在我部署的web服务war中,然后从我部署在同一应用服务器上的另一个war访问该库


如何做到这一点?

我自己为Glassfish找到了一个解决方案:基本上,我只是部署了一个类(
SharedClassLoader
),它继承自
URLClassLoader
,作为上述目录中的共享库jar。然后我使用这个类加载器作为引导:在调用web服务时,类加载器层次结构扩展如下:如果URL的
SharedClassLoader
还不存在,则实例化它,并将其作为委托添加到类加载器树中的
DelegatingClassLoader
。通过对具有相同
SharedClassLoader
实例的每个web服务执行此操作,它将充当引导,以引入更多类加载。
SharedClassLoader
引用的jar也可以与一个web服务一起部署,因为Glassfish将容器解压缩到
$AS\u HOME/domains/domain1/applications/APPLICATION\u NAME/LIBRARY\u NAME.jar

我希望这能帮助任何有同样问题的人。我为我的学士论文解决了这个问题。如果有人需要更多的信息,尽管问,我可以把我的论文寄给你