JBoss AS 5 中的共享库应该放在哪里?

2024-05-12

我是 Jboss 新手,但我有多个 Web 应用程序,每个应用程序都使用 spring-hibernate 和其他开源库和 portlet,所以基本上现在每个 war 文件都包含这些 jar 文件。如何将这些 jar 移动到一个公共位置,以便不必将它们放入每个 war 文件中?我猜位置是server/default/lib,但我不确定。

另外,将这些罐子放在WEB-INF/lib vs. JBOSS/server/default/lib?我会遇到任何类加载器问题吗?

我也将静态数据存储在静态字段中,例如Singleton,这些会在所有 WAR 文件之间共享吗?


类加载:

你说得对,把.jars to JBOSS/server/<configuration>/lib, or JBOSS/lib.

JBoss AS 附带捆绑的 Hibernate 库,这些库已使用该 AS 版本进行了测试。

See jboss-6.0.0-SNAPSHOT\server\default\conf\jboss-service.xml:

<server>
  <!-- Load all jars from the JBOSS_HOME/server/<config>/lib directory and
       the shared JBOSS_HOME/common/lib directory. This can be restricted to
       specific jars by specifying them in the archives attribute.
       TODO: Move this configuration elsewhere
  -->
  <classpath codebase="${jboss.server.lib.url}" archives="*"/>
  <classpath codebase="${jboss.common.lib.url}" archives="*"/>
</server>

另请参阅:

  • http://community.jboss.org/wiki/classloadingconfiguration http://community.jboss.org/wiki/classloadingconfiguration
  • http://community.jboss.org/wiki/JbossClassLoadingUseCases http://community.jboss.org/wiki/JbossClassLoadingUseCases

之间的区别WEB-INF/lib and JBOSS/server/default/lib:

Libs in WEB/lib与您的 WAR 一起提供,并且仅在该 WAR 中可见。 如果您有其他模块,例如EJB JAR,它们不会从中可见,你会得到ClassNotFoundException或(如果您在多个地方上课)ClassCastException.

Libs in JBOSS-AS/server/<config>/lib对整个服务器可见,因此所有已部署的应用程序及其模块都是可见的。然而(IIRC)它们没有优先级,所以如果你带那个库,例如在 WAR 中,但不在 EJB jar 中,您最终可能会使用两个不同的版本,这是不可取的(可能会导致前面提到的ClassCastException).

类加载行为可以通过多种方式进行调整,请参见例如JBoss 维基 http://community.jboss.org/wiki/ClassLoadingConfiguration.

静态数据:

不要依赖 Java EE 中的静态字段,这会带来麻烦。例如,。同一个类可以由不同的类加载器加载,因此这些静态值会有多个实例。
如果您想在多个 WAR 之间共享数据,请使用外部存储 - 数据库、文件(如果写入则需要同步)、JBoss Cache 等。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JBoss AS 5 中的共享库应该放在哪里? 的相关文章

随机推荐

  • H264 字节流到图像文件

    第一次来这里所以要温柔 我已经在给定的 H 264 字节流上工作了几个星期 一般注意事项 字节流不是来自文件 它是从外部源实时提供给我的 字节流使用 Android 的媒体编解码器进行编码 当将流写入扩展名为 H264的文件时 VLC能够正
  • 通过删除连续的重复项来减少字符串长度

    我有一个包含 2 个字段的 R 数据框 ID WORD 1 AAAAABBBBB 2 ABCAAABBBDDD 3 我想通过仅保留字母而不是重复中的重复项来简化具有重复字母的单词 e g AAAAABBBBB应该给我AB and ABCAA
  • 除了在 Unity3D 中使用“Assets/Gizmos”之外,如何拥有自定义脚本图标

    我知道这个问题可能被问过很多次了 但它经常被回答错误 我想要的是 Use a custom icon for specific components scripts in the Inspector e g Figure 2 and Fig
  • 如何使用 jackson 反序列化为 Kotlin 集合

    我想要的示例代码 data class D val a String val b Int val jsonStr a value1 b 1 a value2 b 2 what I need val listOfD List
  • 在 JavaScript 中计算不包括周末和节假日的天数

    我正在尝试编写一个代码 其中将计算总天数 不包括周末和自定义假期 我通过 stackoverflow 和 adobe 论坛进行搜索以找到解决方案 并提供了以下代码 如果公共假期恰逢工作日 周六至周三 则不计算在内 我的问题是 如果公共假期落
  • Pylance:“property”与“int”不兼容

    from typing extensions import Protocol class IFoo Protocol value int class Foo IFoo property def value self gt int retur
  • ASP.Net Web API:在读取/上传请求正文之前发送响应

    我的控制器上有一个操作 应该上传大型 500mb 2gb 文件 例如 HttpPost public void PostFile FromUri Guid uploadId 在正文内部 执行一些检查 例如 uploadId 是否存在 然后将
  • 用 C 更快地读取文件

    嗯 我想知道是否有一种比使用 fscanf 更快地读取文件的方法 例如假设我有这个文本 4 55 k 52 o 24 l 523 i 首先 我想读取第一个数字 它给出了接下来的行数 令这个数称为N N 之后 我想读取 N 行 其中有一个整数
  • 为 Linux 安装 R 包时出错

    我试图在 R 3 3 上安装一个名为 rgeos 的包 但是当我输入 install packages rgeos 但它返回给我以下错误 其他包也会发生同样的情况 但不是所有包 gt installing source package rg
  • 在资源中找到未签名的条目....jar

    我正在使用 Netbeans 来编译和签署我的所有 jar 所有这些都使用相同的证书 但是 当我使用 Sun Java SE 6 运行 Webstart 时 出现错误 Found unsigned entry in resource jar
  • Java中定义类型后同时初始化多个变量?

    这里需要一些语法方面的帮助 我正在尝试在定义类型后重新初始化多个变量 例如 int bonus sales x y 50 这工作正常 但是我想稍后在程序中将不同的值放入其中一些变量中 但我收到语法错误 bonus 25 x 38 sales
  • 如何运行指定 node.js 版本 8 的 eb init?

    I run eb init并部署 我得到了node js版本6 如何在执行时指定我想要node js版本8eb init命令 这是一个有趣的问题 我很想知道是否有更简单的方法 但我是这样实现的 确定最新的SolutionStack名称如所列
  • 如何在 docker 容器中仅设置 python 2.7?

    我有节点应用程序 在一个用例中 我使用以下命令从节点调用 python 脚本python shell https www npmjs com package python shell 我正在尝试在 docker 上设置这个应用程序 我的 D
  • 错误 - AttributeError:“DirectoryIterator”对象在 keras 的自动编码器设计中没有属性“ndim”

    我是 Python 3 5 的新手 我正在尝试编写一个简单的自动编码器 它将在 60 张苹果图像的数据集上进行训练 并尝试重建根中给出的图像 我使用了以下代码 from keras layers import Input Dense fro
  • Swagger UI 下载 PDF

    我使用 swagger UI 2 1 3 作为 API 文档 在后端 我使用 spring webmvc 我有一个返回 pdf 文件的 API 如果我在浏览器中输入 URL 它就可以正常工作 它会弹出一个下载窗口 下载的文件也可以正常工作
  • Asp.Net Core 挑战返回 Null URI 异常错误

    我正在创建 ASP NET Core Web API 并希望集成 Microsoft Azure AD 身份验证服务 在编译时一切正常 但是 当我访问旨在返回挑战的路由时 我收到一个 null URI 异常 下面的 Stacktrace 我
  • Onclick 不会在 CardView 上触发

    我有一个OnClickListener on a CardView 仅当我点击内容之外的区域 TextViews ImageViews 时 侦听器才起作用 我的内部也有一个线性布局CardView 我希望当我点击屏幕上的任意位置时它就能工作
  • 在 while 循环之外使用变量(作用域)

    关于 PHP 范围的小问题 我似乎无法在 while 循环之外调用变量 report 我尝试过各种事情 包括return 这不起作用 这里唯一起作用的两个函数是如果我echo变量 report在循环内 或者如果我print它 我不想这样做
  • 在哈希图中存储字符和二进制数

    我正在尝试存储字母到二进制数的映射 这是我的映射 h 001 i 010 k 011 l 100 r 101 s 110 t 111 为此 我创建了一个哈希映射并存储了键值对 我现在想显示给定句子的相应二进制值 这是我的代码 package
  • JBoss AS 5 中的共享库应该放在哪里?

    我是 Jboss 新手 但我有多个 Web 应用程序 每个应用程序都使用 spring hibernate 和其他开源库和 portlet 所以基本上现在每个 war 文件都包含这些 jar 文件 如何将这些 jar 移动到一个公共位置 以