Deployment Weblogic 10共享库未显示在引用应用中

Deployment Weblogic 10共享库未显示在引用应用中,deployment,jakarta-ee,weblogic,shared-libraries,classpath,Deployment,Jakarta Ee,Weblogic,Shared Libraries,Classpath,在WebLogic10.0上,我使用WLS的“共享J2EE库”(sharedJ2EE Libraries)功能对一些JAR进行分组,这些JAR需要在多个ear中访问。这些JAR驻留在系统类路径上,我尝试将它们从那里移动到共享库中 我的问题是: 在WLS web管理控制台中,我单击部署下的共享库(名为“共享库”) “引用此库的应用程序”列表为空 我还可以使用weblogic.Deployer取消部署库,但在下次重新启动服务器时,它会抱怨在加载引用应用程序时缺少引用库 因此,在启动时,引用似乎生

在WebLogic10.0上,我使用WLS的“共享J2EE库”(sharedJ2EE Libraries)功能对一些JAR进行分组,这些JAR需要在多个ear中访问。这些JAR驻留在系统类路径上,我尝试将它们从那里移动到共享库中

我的问题是:

  • 在WLS web管理控制台中,我单击部署下的共享库(名为“共享库”)
  • “引用此库的应用程序”列表为空
  • 我还可以使用weblogic.Deployer取消部署库,但在下次重新启动服务器时,它会抱怨在加载引用应用程序时缺少引用库
因此,在启动时,引用似乎生效,但在运行时WLS不知何故忘记了这一点(我需要一些魔术吗?)

我也可以做到这一点:

  • 取消部署共享库(无投诉)
  • 取消部署SomeReferenceGapp(确定)
  • 部署SomeReferenceGapp(错误!缺少库)
  • 部署共享库(确定)
  • 部署SomeReferenceGapp(确定;应用程序将在web控制台中列出;但是在下次重新启动时,或在其他随机部署后,该列表将再次变为空)
分解目录格式的共享库ear结构:

  • META-INF
    • MANIFEST.MF
    • application.xml
  • 解放党
    • (我需要作为罐子分享的东西)
  • dummeyejb.jar(因为它必须包含某些内容)
MANIFEST.MF包含:
..
扩展名:共享库
规格版本:1.0
实施版本:1.0.0
..

xml包含基本元素(一个ejb模块)

引用应用程序的结构:

其中包括META-INF/weblogic-application.xml,其中包含:




共享库
1.0
1.0.0
正确

有什么问题吗?我是否应该在共享库或引用应用程序中执行任何其他操作(1)正确设置引用列表,最重要的是(2)在应用程序之间共享JAR

我假设库中的共享JAR是使用每个应用程序的共享库中相同的类加载器加载的,其行为与sys类路径行为非常相似。你能确认一下吗


谢谢

我认为共享库(EAR)的MANIFEST.MF应该包含一个引用库中JAR的
类路径
条目(这告诉类加载器在哪里查找类)。大概是这样的:

Class-Path: lib/foo.jar lib/bar.jar lib/foobar.jar

谢谢你提供的信息。事实上,这就是我发现的:

1) 如果引用应用程序在部署时失败,那么引用应用程序的列表将从web控制台中消失(奇怪的是,可能有更深层次的原因,但现在这是一致的)


2) 不幸的是,共享库中的类是由不同引用应用程序的类加载器加载的,因此,通过这种方式,不可能出于应用程序间通信的目的共享例如接口类。

很抱歉(因为您花了时间键入了一个冗长的问题)但尚不清楚您的共享库是否实际部署良好。你能澄清这个问题吗?@Pascal:是的,我使用weblogic.Deployer部署了共享库-成功的图书馆。在web控制台中,已部署库的状态为“library”。在没有部署共享库的情况下,引用应用程序会在域启动时抱怨并获得“新建”状态,但即使部署了共享库,也会看到所描述的效果。奇怪的是,事情看起来不错。lib中的jar是否在MANIFEST.MF中被引用?@Pascal:不,它们不是,是吗?在哪个清单文件中,共享库还是应用程序(以及如何使用)?您能对此进行一点扩展吗?我们不能将接口定义共享到共享库中,这是真的吗?这看起来不对JEE共享库的全部要点是重用?