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.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.