Hi,
I get the following exception: Name java:comp is not bound in this Context while trying to get the JNDI context from a plugin:
InitialContext ic = new InitialContext(); Context env = (Context) ic.lookup("java:comp/env");
Any idea?
Thanks!
Pablo.
I found the solution. Binding the missing names resolves the problem.
Hi zezeto, thanks for the link. I read all those links some days ago but I was unable to find any solution there as I do not want use JNDI to get datasources. I want to use JNDI to bind a string (object) in order to configure some 3rd party code expecting be configured through JNDI. Thanks.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
This is very confusing...
According to the AMPS-737 issue jndi is supported for datasources since the AMPS 4.1 version:
I'm using AMPS:
<amps.version>4.2.9</amps.version>
Following the AMPS-737, there is an Atlassian's example on Bitbucket to configure a datasource from a plugin:
As expected, the jndi string is:
<jndi-datasource> <jndi-name>java:comp/env/jdbc/JiraDS</jndi-name> </jndi-datasource>
It means the name java:com/env is already binded.
However, fron a plugin, the javaURLContextFactory class must be added as a dependency (it is not exported by the JIRA system plugin):
<dependency> <groupId>directory-naming</groupId> <artifactId>naming-java</artifactId> <version>0.8</version> </dependency>
in order to use the InitialContext class.
As the factory is provided by the plugin rather by the application contanier (Tomcat/Catalina), it might not be properly initialized as accordingly to the Apache's documentation, it requires some environment configuration:
This factory MUST be associated with the "java" URL prefix, which can be done by setting an environment variable named Context.URL_PKG_PREFIXES with its value including the org.apache.catalina.util.naming package name.
It is not the case. By debugging I saw that is properly itinialized and the InitialContext properties are:
java.naming.factory.initial=org.apache.naming.java.javaURLContextFactory
and
java.naming.factory.url.pkgs=org.apache.catalina.util.naming
But when I'm try to get the java.com/env context (which is the same used by the JNDI datasources supported from the 4.1 version!), it is not bound:
Context env = (Context) ic.lookup(
"java:comp/env"
);
How is it possible?
Thanks!
Pablo
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi,
Browse this link, it can help you.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Online forums and learning are now in one easy-to-use experience.
By continuing, you accept the updated Community Terms of Use and acknowledge the Privacy Policy. Your public name, photo, and achievements may be publicly visible and available in search engines.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.