问题标签 [initial-context]

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.

0 投票
1 回答
524 浏览

java - 关闭 InitialContext

我有一个类使用另一个EJBHelper类中的方法,该类调用该方法getInitialContext来初始化InitialContext.

现在,问题是我需要InitialContext在 EJB 进程结束后关闭。请帮忙; 我怎样才能做到这一点?

0 投票
1 回答
12994 浏览

java - 以编程方式为 Spring 创建 JNDI 数据源

我有一个现有的基于 Spring Web 的应用程序,它具有使用 JNDI 定义的数据源,并且我正在尝试创建一个独立的应用程序来使用 bean。如何在独立应用程序中以编程方式创建 JNDI 条目和数据库属性?

编辑:

我尝试了类似的方法,但现在出现错误“javax.naming.NoInitialContextException:需要在环境或系统属性中指定类名”

0 投票
1 回答
352 浏览

ejb - InitialContext.lookup(ejbMappedName) 返回一个新实例或一个旧的相同实例

对于有状态的 EJB,如果我使用 InitialContext.lookup(itsMappedName) 获取它的引用,对于 (InitialContext.lookup(itsMappedName)) 的每次调用,它将返回一个新的有状态 EJB 还是相同的有状态 EJB?

0 投票
0 回答
1041 浏览

osgi - OSGI 中的 JNDI 与 Apache Aries

我是 OSGi 和 JNDI 的新手。我正在尝试使用 HornetQ 打包一个 JMS 客户端。为此,我使用 JNDI。据我所知,我需要使用 Apache Aries 来做到这一点。

感谢 iPOJO,我得到了 JNDIContextManager,这似乎运作良好。必须有一个 Apache Aries 捆绑包来注册它,这样我才能得到它。由于 JNDIContextManager.newInitialcontest,当我尝试获取新的 InitialContext 时,问题就出现了。

所以,这是我的代码:

我明白了:

我花了很多时间,我无法解决问题。任何帮助,将不胜感激。

提前致谢 ;)

0 投票
0 回答
347 浏览

java - 如何从 Storm jar 中加载 jndi 绑定?

我们有一个项目要使用 Storm,因此我们的代码必须打包在一个 jar 中。我们之前使用com.sun.jndi.fscontext.RefFSContextFactory作为我们的InitialContextFactory实现jndicontext从系统配置目录中的文件加载绑定classpath(工作正常)。然而,当尝试使用这个工厂从 jar 中加载上下文时,我们得到以下信息:

这是由于工厂试图从以下 URL 加载 jdni 上下文:

“jar:file:/mount/storm-dir/data/storm.jar!/jndicontext”

这是一个有效的 URL,但工厂不知道如何打开一个 jar。有没有实现javax.naming.spi.InitialContextFactory呢?或者有没有办法解决这个问题并将配置目录添加到 Storm 的classpath

0 投票
0 回答
307 浏览

java - 查找 MailResource 与模块名称结合时的 Glassfish 无限循环

Glassfish 在查找邮件资源时会陷入无限循环。仅当在 ejb.jar.xml 中定义自定义 <module-name> 时才会出现该错误。

例外:

在 javax.naming.InitialContext.lookup(InitialContext.java:392) 在 com.sun.enterprise.naming.util.JndiNamingObjectFactory.create(JndiNamingObjectFactory.java:90) 在 com.sun.enterprise.naming.impl.GlassfishNamingManagerImpl.lookup (GlassfishNamingManagerImpl.java:776) 在 com.sun.enterprise.naming.impl.GlassfishNamingManagerImpl.lookup(GlassfishNamingManagerImpl.java:744) 在 com.sun.enterprise.naming.impl.JavaURLContext.lookup(JavaURLContext.java:180) 在com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:498) 在 com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:455) 在 javax.naming.InitialContext.lookup( InitialContext.java:392) 在 com.sun.enterprise.naming.util.JndiNamingObjectFactory 的 javax.naming.InitialContext.lookup(InitialContext.java:392)。在 com.sun.enterprise.naming.impl.GlassfishNamingManagerImpl.lookup(GlassfishNamingManagerImpl.java:744) 的 com.sun.enterprise.naming.impl.GlassfishNamingManagerImpl.lookup(GlassfishNamingManagerImpl.java:776) 处创建 (JndiNamingObjectFactory.java:90)在 com.sun.enterprise.naming.impl.JavaURLContext.lookup(JavaURLContext.java:180) 在 com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:498) 在 com.sun.enterprise.naming .impl.SerialContext.lookup(SerialContext.java:455) 在 javax.naming.InitialContext.lookup(InitialContext.java:392) 在 javax.naming.InitialContext.lookup(InitialContext.java:392) 在 com.sun.enterprise。命名.util.JndiNamingObjectFactory.create(JndiNamingObjectFactory.java:90)776)在 com.sun.enterprise.naming.impl.GlassfishNamingManagerImpl.lookup(GlassfishNamingManagerImpl.java:744) 在 com.sun.enterprise.naming.impl.JavaURLContext.lookup(JavaURLContext.java:180) 在 com.sun.enterprise .naming.impl.SerialContext.lookup(SerialContext.java:498) at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:455) at javax.naming.InitialContext.lookup(InitialContext.java:392 ) 在 javax.naming.InitialContext.lookup(InitialContext.java:392) 在 com.sun.enterprise.naming.util.JndiNamingObjectFactory.create(JndiNamingObjectFactory.java:90)776)在 com.sun.enterprise.naming.impl.GlassfishNamingManagerImpl.lookup(GlassfishNamingManagerImpl.java:744) 在 com.sun.enterprise.naming.impl.JavaURLContext.lookup(JavaURLContext.java:180) 在 com.sun.enterprise .naming.impl.SerialContext.lookup(SerialContext.java:498) at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:455) at javax.naming.InitialContext.lookup(InitialContext.java:392 ) 在 javax.naming.InitialContext.lookup(InitialContext.java:392) 在 com.sun.enterprise.naming.util.JndiNamingObjectFactory.create(JndiNamingObjectFactory.java:90)在 com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:455) 中查找(SerialContext.java:498) 在 javax.naming.InitialContext.lookup(InitialContext.java:392) 在 javax.naming.InitialContext .lookup(InitialContext.java:392) 在 com.sun.enterprise.naming.util.JndiNamingObjectFactory.create(JndiNamingObjectFactory.java:90)在 com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:455) 中查找(SerialContext.java:498) 在 javax.naming.InitialContext.lookup(InitialContext.java:392) 在 javax.naming.InitialContext .lookup(InitialContext.java:392) 在 com.sun.enterprise.naming.util.JndiNamingObjectFactory.create(JndiNamingObjectFactory.java:90)

这是我的配置:

glassfish-resources.xml

EMailService.java 中的注入

ejb.jar.xml

当然,上面提到的所有文件都驻留在同一个模块 => 后端。

使用 JNDI-Internals 的详细日志记录,我可以将问题深入到以下点:

工作场景(无模块名称):没有特殊模块名称时,模块名称将是带有我们文件扩展名的文件名,例如 backend-1.1.1-SNAPSHOT。这将导致以下查找场景,最终重新使用 MailResource:

.SerialContext;MethodName=lookup;|SerialContext ==> 查找(java:module/mail/MailSession)|#] .SerialContext;MethodName=lookup;|SerialContext ==> 查找相对名称:java:module/mail/MailSession|# ] .JavaURLContext;MethodName=lookup;|在 javaURLContext.lookup 中,name = java:module/mail/MailSession serialcontext...null|#] .SerialContext;MethodName=lookup;|SerialContext ==>lookup(java:global/portal -1.1.1/backend-1.1.1-SNAPSHOT/mail/MailSession)|#] .SerialContext;MethodName=lookup;|SerialContext ==> 查找相对名称:java:global/portal-1.1.1/backend-1.1。 1-SNAPSHOT/mail/MailSession|#] .SerialContextProviderImpl;MethodName=lookup;| SerialContextProviderImpl :: 查找 java:global/portal-1.1.1/backend-1.1.1-SNAPSHOT/mail/MailSession|#] .GlassfishNamingManagerImpl;MethodName=lookup;|GlassfishNamingManager..null|#] 中的串行上下文。

错误场景(自定义模块名称):添加自定义模块名称(如上面提到的 ejb.jar.xml 中所示)将因查找无限循环而失败。

相关的查找日志如下所示:

MethodName=lookup;|SerialContext ==> 查找相对名称:java:global/private-ear-1.2.0-SNAPSHOT/backend/mail/MailSession|#] FINE|glassfish3.1.1|com.sun.enterprise.naming|_ThreadID =23;_ThreadName=Thread-2;ClassName=com.sun.enterprise.naming.impl.SerialContextProviderImpl;MethodName=lookup;| SerialContextProviderImpl :: 查找 java:global/private-ear-1.2.0-SNAPSHOT/backend/mail/MailSession|#] FINE|glassfish3.1.1|com.sun.enterprise.naming|_ThreadID=23;_ThreadName=Thread-2; ClassName=com.sun.enterprise.naming.impl.GlassfishNamingManagerImpl;MethodName=lookup;|GlassfishNamingManager..null|#] FINE|glassfish3.1.1|com.sun.enterprise.naming|_ThreadID=23;_ThreadName=Thread- 2;ClassName=com.sun.enterprise.naming.impl.GlassfishNamingManagerImpl;MethodName=lookup;|GlassfishNamingManager : 查找名称 : java: MethodName=lookup;|SerialContext ==>lookup(java:global/private-ear-1.2.0-SNAPSHOT/backend/mail/MailSession)|#] FINE|glassfish3.1.1|com.sun.enterprise.naming|_ThreadID= 23;_ThreadName=Thread-2;ClassName=com.sun.enterprise.naming.impl.SerialContext;MethodName=lookup;|SerialContext ==> 查找相对名称:java:global/private-ear-1.2.0-SNAPSHOT/backend /mail/MailSession|#] FINE|glassfish3.1.1|com.sun.enterprise.naming|_ThreadID=23;_ThreadName=Thread-2;ClassName=com.sun.enterprise.naming.impl.SerialContextProviderImpl;MethodName=lookup;| SerialContextProviderImpl :: 查找 java:global/private-ear-1.2.0-SNAPSHOT/backend/mail/MailSession|#] FINE|glassfish3.1.1|com.sun.enterprise.naming|_ThreadID=23;_ThreadName=Thread-2; ClassName=com.sun.enterprise.naming.impl.GlassfishNamingManagerImpl;MethodName=lookup;|GlassfishNamingManager 中的串行上下文..

从 asadmin 手动检查 glassfish 资源会获取以下条目:

如果那里有专家,请给我一个提示。

0 投票
2 回答
1339 浏览

java - How to get Queue using context.lookup() in oracle 11g

I want to create Queue and the MessageDrivenBean in Oracle 11g.
I created the JMS Module on Weblogic and into it I created Queue and ConnectionFactory. JDBC names looks like:
Queue: jms/EvZahQueue
ConnectionFactory: jms/ConnectionFactory

I tried to get them with:

But, I've got an exception like this:

Also, I tried with:

And I tried to create default properties and to put them into new InitialContext() but nothing changed.

What should I do? Maybe I need to write something in web.xml, ejb-jar.xml, weblogic-ejb-jar.xml?

0 投票
1 回答
1022 浏览

java - 无法从与另一个主题同名的 InitialContext 队列中查找

这行代码产生异常

背景资料:

  • 我尝试过使用另一个队列名称,它工作正常。

  • 这个“样本”队列的问题是有另一个同名的主题

有没有办法解决这个问题?

0 投票
1 回答
2574 浏览

jboss7.x - 无法在 JBoss AS 7.1 中初始化 InitialContext

我无法初始化InitialContext和查找字符串。这是我的代码片段:

总是ic为空,我得到 Exception NullPointer Exception。谁能告诉我我做错了什么或任何配置?任何建议/意见都是可以接受的。

编辑:1

0 投票
1 回答
1291 浏览

java - 使用 InitialContext 进行 EJB 查找

我在查找托管在服务器上的 EJB 时遇到问题。服务器本身是一个SAP环境,基本上就是一个修改过的tomcat。

我尝试了几个查找字符串

但没有任何效果。

这是服务器对查找字符串所说的:

对于远程部分:

我尝试了这个查找字符串的不同组合,但都失败了。我可以使用以下方法将代理对象获取到 Bean:

但是我需要直接访问bean。

以下是 Bean 的定义方式:

本地接口:

远程接口:

BPMFacadeBean简化接口:

在这种情况下,正确的查找字符串是什么?

谢谢您的帮助!