gpt4 book ai didi

java - WAR 中的配置

转载 作者:行者123 更新时间:2023-11-28 23:26:29 25 4
gpt4 key购买 nike

我在 Tomcat 中有一个 context.xml:

<Resource name="datasource/sconfiguration" auth="Container" connectionString=...

而且我能够像这样填充我的对象:

MyConfiguration sc = (MyConfiguration) envCtx.lookup("datasource/sconfiguration");

现在我想在 Glassfish 4.1 中使用我的 WAR...但它似乎不起作用:

javax.naming.NamingException: Lookup failed for 'datasource/sconfiguration' in SerialContext[myEnv={java.naming.factory.initial=com.sun.enterpr ....

为特定的应用程序服务器创建一个 WAR 似乎很奇怪。我怎样才能使这个 WAR 对任何 WAS 都有效?好像是Glassfish can use context.xml但很多人说不能。

最佳答案

管理内容不是标准 WAR 的一部分。老实说,它始终是应用程序服务器之间移植中最困难的部分。

在 Tomcat 中,您可以在 context.xml 中定义 JNDI 数据源,如您所见。我早就放弃了 Glassfish,但我知道有一个相当完整的 UI 来定义数据源。 WildFly 等其他应用程序服务器同时具有 UI 和 CLI 来定义数据源之类的东西(Glassfish 可能也有)。

为什么要问这个?因为允许每个应用程序服务器扩充数据库连接池等区域。 Tomcat 最近决定摆脱公共(public) DBCP 池,转而采用内部池。由于这些差异,每个应用程序服务器定义了一些不同的方式来配置 JDBC 连接和数据源。

要对此进行管理,您需要为您打算定位的每个应用程序服务器设置脚本/预配置配置文件。最终用户需要使用适合其环境的内容。

关于java - WAR 中的配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36505185/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com