当前位置: 首页 > 面试题库 >

如何在EAR或WAR之外存储Java EE配置参数?

邵飞宇
2023-03-14
问题内容

我想将Web项目的配置存储在Web项目之外(ear / war文件)。应用程序不应该知道它在哪个容器中运行(WebSphere / JBoss等)。

处理此问题的最佳方法是什么?

JNDI是否干净?如果JNDI可以解决我的问题,该如何配置?(自定义对象?)

就我而言,只有简单的Key = > Value对(String,String)用于SOAP / WS端点。


问题答案:

我相信这是最好的解决方案。您可以使用以下代码读取String变量:

Context initialContext = new InitialContext();
String myvar = (String) initialContext.lookup("java:comp/env/myvar");

上面的代码将在所有容器上运行。在Tomcat中,您在conf / server.xml中声明以下内容:

<GlobalNamingResources ...>
  <Environment name="myvar" value="..."
         type="java.lang.String" override="false"/>
</GlobalNamingResources>

以上将创建一个全局资源。也可以在应用程序上下文中定义资源。在大多数容器中,JNDI资源可通过MBeans管理控制台获得。其中一些提供了图形界面来进行编辑。进行更改时,最多需要重新启动应用程序。

如何定义和编辑JNDI资源是特定于容器的。配置程序/管理员的工作是应用适当的设置。

这些是JNDI提供的好处:

  • 您可以在WAR / EAR文件中定义参数的默认值。
  • 可以在容器上轻松配置参数。
  • 修改参数值时,无需重新启动容器。


 类似资料:
  • 问题内容: 在哪里可以在客户端存储配置参数?我无法将参数存储在Servlet初始化参数(web.xml)中(因为我必须使用PHP)。那么如何在客户端存储初始化应用程序参数(例如PHP脚本位置,一些密码等)? 问题答案: 为此,您有以下选择: 将数据存储在客户端代码中。GWT会编译为javascript,最简单的方法是创建一个具有硬编码值的类。 在浏览器中存储数据。您可以使用Cookie或HTML5

  • 我有一个EAR项目,部署在Wildfly10.1.0上。Final这个EAR由一些JAR和WAR组成。我的jar文件中有一个WebService。 我无法清楚地理解如何配置我的项目。我花了很多时间在谷歌和调试器...所以我需要帮助) 我的目标:在EAR/服务器级别的JAR中为我的EJB WebService设置默认的authtype/security-domain。 > standalone.xm

  • 还尝试将从中排除,但仍然不起作用。 例外 原因:org.springframework.beans.beanInstantiationException:未能实例化[com.amazonaws.services.SimpleSystemsManagement.awsSimpleSystemsManagement]:工厂方法'SSM Client'引发异常;嵌套异常是com.amazonaws.sd

  • KeyValueStore is an alternative OSD backend compared to FileStore. Currently, it uses LevelDB as backend. KeyValueStore doesn’t need journal device. Each operation will flush into the backend directly

  • 我尝试设置一个JavaEE环境,用gradle构建。最后,我希望有一个EAR文件,其中包含一个EJB-Jar和某种可以部署到Glassfish的应用程序客户端(可能)。设置将是非常基本的。 目前我面临两个问题: 1)运行“耳朵”任务来组装EAR存档在tmp/耳朵中创建了一个错误的application.xml文件,如下所示: eclipse报告的错误消息是: cvc复合型。2.4.答:发现以元素“

  • 当你创建存储池并给它设置归置组数量时,如果你没指定 Ceph 就用默认值。我们建议更改某些默认值,特别是存储池的副本数和默认归置组数量,可以在运行 pool 命令的时候设置这些值。你也可以把配置写入 Ceph 配置文件的 [global] 段来覆盖默认值。 [global] # By default, Ceph makes 3 replicas of objects. If you want