Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/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
Java OSGi中的JCE安全提供程序_Java_Osgi_Jce - Fatal编程技术网

Java OSGi中的JCE安全提供程序

Java OSGi中的JCE安全提供程序,java,osgi,jce,Java,Osgi,Jce,我们在OSGi包中使用自定义JCA实现时遇到问题。客户强迫我们使用的JCA实现导致了类加载器内存泄漏。这会阻止它在我们的包中的部署和使用,因为我们很快就会遇到perm gen空间问题 JCA提供者提出的解决方案是将JAR放在jre/lib/ext文件夹中,但它不是从那里加载的。据我所知,这是由于OSGi(EclipseEquinox)类加载器策略将引导类加载器作为每个bundle类加载器的父级,这排除了从jre/lib/ext文件夹加载的扩展类加载器。也就是说,在jre/lib/ext文件夹中没

我们在OSGi包中使用自定义JCA实现时遇到问题。客户强迫我们使用的JCA实现导致了类加载器内存泄漏。这会阻止它在我们的包中的部署和使用,因为我们很快就会遇到perm gen空间问题

JCA提供者提出的解决方案是将JAR放在jre/lib/ext文件夹中,但它不是从那里加载的。据我所知,这是由于OSGi(EclipseEquinox)类加载器策略将引导类加载器作为每个bundle类加载器的父级,这排除了从jre/lib/ext文件夹加载的扩展类加载器。也就是说,在jre/lib/ext文件夹中没有任何包可以看到任何东西


有没有办法让EclipseEquinox加载一个注册为安全提供程序的jar,只加载一次,这样所有包或特定包都可以看到该提供程序?在这种情况下,JCA库没有通过OSGi卸载是可以容忍的。

您应该编辑系统包,并从JCA-custom.jar添加包

您可以通过多种方式定义应包括哪些包

  • 创建equinox的配置文件并定义包。您可以在eclipse.osgi jar中找到每个jdk版本的示例。例如,查找JavaSE-1.6.profile并尝试查找条目org.osgi.framework.system.packages
  • 您可以在启动OSGi容器时将其定义为系统变量。系统变量相同:-Dorg.osgi.framework.system.packages=用逗号分隔的包名

您应该编辑系统包并从JCA-custom.jar添加包

您可以通过多种方式定义应包括哪些包

  • 创建equinox的配置文件并定义包。您可以在eclipse.osgi jar中找到每个jdk版本的示例。例如,查找JavaSE-1.6.profile并尝试查找条目org.osgi.framework.system.packages
  • 您可以在启动OSGi容器时将其定义为系统变量。系统变量相同:-Dorg.osgi.framework.system.packages=用逗号分隔的包名