问题标签 [jndi]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
design-patterns - 在实现 EJBHomeFactory 模式时是否需要同步映射?
当您想从客户端调用 an时,首先您需要通过 JNDI 查找EJBBean
来获取对象引用。EJBHome
每次您需要使用此代码时都需要执行此代码,EJBBean
这样会变得多余且昂贵。
要解决此问题,您可以缓存EJBHome
对象引用并从缓存中一次又一次地重用它们,而无需重复 JNDI 查找。
这是EJBHomeFactory Pattern
(或更通用的服务定位器模式)。
我见过的大多数实现都使用同步Map
作为缓存,或者Hashtable
. 如果缓存是在应用程序部署在服务器上时构建的,并且之后没有对缓存进行任何修改(仅执行 get() 方法),我真的需要同步Map
或HashMap
意志吗?
我知道HashMap
如果至少有一个线程修改了地图是不安全的(这里甚至有一个 SO 帖子),但在这种情况下线程只执行读取。
那么,在HashMap
中使用安全EJBHomeFactory Pattern
吗?
java - 为什么我对 QueueConnectionFactory 的 JNDI 查找返回 null?
我正在尝试通过 Geronimo 的 JNDI查找QueueConnectionFactory
和查找。Queue
得到很好的Queue
返回,但QueueConnectionFactory
查找总是返回 null。它不会抛出NamingException
,如果 JNDI 名称不正确,这是我所期望的。
谁能看到我做错了什么?下面的测试代码输出:
如果它有所作为:我已将 openejb-client-3.0.1.jar、geronimo-ejb_3.0_spec-1.0.1.jar 和 activemq-core-4.1.2-G20090207.jar 添加到我的类路径中,并且我的 jndi.properties 文件具有以下属性:
java - Tomcat JDBC 连接池是否在实例之间共享?
我们现在有一个 Web 应用程序,我们为每个客户端部署一个副本。我们当前的部署策略是为每个实例创建一个唯一命名的 jdbc 连接池。所以说jdbc/client。它们是这样指定的......
问题是,如果我要对其进行标准化,以便在所有部署的实例上将连接池称为 jdbc/database 而不是唯一名称,是否存在数据库交叉的机会,即另一个客户的数据库中的一个客户,或者这些本地化到一个特定的部署实例?
想法?谢谢,斯科特
java - 从 Spring 应用程序上下文中解析 JNDI 查找?
在我们的 Spring 应用程序中,我们使用带有 ActiveMQ 的集群 Hibernate Search,它通过 JNDI 设置一些对象。这些对象是通过 Spring 应用程序上下文配置的,我正在寻找一种方法来解决对这些对象的 JNDI 调用。
我只能找到来自 Spring 上下文的 JNDI 查找。
我们需要它的另一种方式:从 Spring 应用程序上下文中解析 JNDI 查找。
任何指针表示赞赏。
java - 为什么在 InitialContext 上调用 close() 会破坏所有未来查找的 JNDI(Glassfish)?
以下代码中的第二个 JNDI 查找在作为针对 Glassfish 的独立应用程序(已配置为通过 JNDI公开 aQueueConnectionFactory
和 a )运行时失败并出现异常。DataSource
但是,删除该行后代码可以正常工作jndiContext.close()
。
在实际代码中,调用close()
是由 Spring 在 a 中进行的JndiObjectFactoryBean
,所以我不能轻易删除它。
这是 Glassfish 中的错误,还是我做错了什么(例如配置错误或编码不正确)?
java - 我可以使用 ObjectChangeListener 来监听任何对象的变化吗?
我有一个Integer
叫 x;如果它发生变化,那么我想在 GUI 中更新我的表。听“x”我试过
我实施javax.naming.event.ObjectChangeListener
:
我重写了objectChanged
更新表的方法。没啥事儿
如果我更改“x”,那么我的表中没有任何变化。我做错了什么?
第二个问题是,x 只能按值调用。我只能从我的数据库或我的属性文件中访问 x。当数据库发生变化时,即使监听器监听,x 也无法理解它是否发生变化。我所做的就是听 y 等于 x。当 x 更改时,y 不明白,因为 x 没有被引用调用。我能做些什么?
java - JNDI的目的是什么
您如何实现 JNDI 的使用,如果可能的话,举个例子?
java - Apache Tomcat:添加/删除/编辑 JNDI 资源
Tomcat(版本 6)中是否有添加/删除/编辑 JNDI 资源的工具?如果可能,我将如何更新 JDBC 数据源(例如)?请注意,我正在寻找一种在不重新部署应用程序的情况下更新 JNDI 资源的可能性。显然 Glassfish 让你这样做,不幸的是,使用另一个应用程序服务器目前不是我的选择。
websphere - 两个 WAS 配置文件共享同一台机器时的 JNDI 查找
我的机器中有两个配置文件,在一个配置文件中我部署了一个 EJB,可以从另一个配置文件中的 POJO 中查找该 EJB。但是我从中进行查找的配置文件最终会在其自己的节点中进行查找。如果我将这两个应用程序部署在两台不同的机器上,我可以执行查找。有人告诉我在 WAS 中创建虚拟机名称会有所帮助,但我不知道如何使用它。有人可以帮助我如何解决这个问题吗?
谢谢,
克什蒂·古普塔
java - GWT 1.7 - 在 Jetty 中配置数据源(托管模式)
我是 GWT (1.7) 的新手,并试图从 servlet 建立到我的 MySQL 数据库的连接。因为我遇到了一些错误,所以我搜索了它们并发现,我必须在 Jetty 中配置一个 DataSource 才能让它在托管模式下工作。我遵循了本教程: 教程
我按照描述创建了自己的 JettyLauncher 类,并将相应的参数添加到 Run 配置中。之后,我将此条目添加到我的 WEB-INF/web.xml 中:
之后,我使用以下内容创建了 jetty-env.xml:
当我现在尝试在 Eclipse 中启动应用程序(Galileo,使用 GWT 插件)时,我收到以下错误:
我使用 jetty-naming-6.1.11.jar 和 jetty-plus-6.1.11.jar。两者都在 WEB-INF/lib 目录中。我已经尝试了两个库的更新版本,结果相同。
谁能告诉我,我哪里出错了?