开发者

JNDI configuration/lookup in Glassfish

开发者 https://www.devze.com 2023-02-16 13:41 出处:网络
I\'m having trouble getting some basic JNDI configuration going in Glassfish. I have what I think ought to be a simple task: at run time, determine if a particular property is set to true or not.I t

I'm having trouble getting some basic JNDI configuration going in Glassfish.

I have what I think ought to be a simple task: at run time, determine if a particular property is set to true or not. I think this is a good application of JNDI, but can't seem to get the path correct between the app server and my servlet code.

Here's how I have configured the property in Glassfish:

JNDI configuration/lookup in Glassfish

In my servlet code, I'm trying to look up the value with:

B开发者_如何学编程oolean enabled = (Boolean) ctx.lookup("java:global/arizona/quartz_enabled");

In addition to this path, I've also tried the following without success:

  • java:global/arizona/arizona/quartz_enabled
  • java:module/arizona/quartz_enabled
  • java:module/arizona/arizona/quartz_enabled

My app is named "arizona", but deployed to the root context, if that matters.

I'm sure it's just a simple matter of figuring out the proper namespace to reach the property, but I feel like I'm just shooting in the dark trying to find it. Is there a simple way to browse the JNDI tree in Glassfish?


When looking up a JNDI resource created in the server, it's JNDI name is exactly what you entered as the name on the server. IE:

Boolean enabled = (Boolean)ctx.lookup("arizona");

For conventions on JNDI names and some example code on how to look everything up see this page:

http://www.javaworld.com/javaworld/jw-01-2000/jw-01-howto.html


In similar situations, I simply place a breakpoint where object (InitialContext in this case) is instantiated and evaluate it afterwards. IntelliJ IDEA has nice evaluator, not sure about other, arguably inferior, IDEs.

Btw, the correct prefix for all Java EE bindings is java:comp/env/, e.g. java:comp/env/arizona/quartz_enabled.

You might also want to look at this resource.


I can't make it work with javax.naming.InitialContext#lookup but injecting resource with

@Resource(name = "arizona/quartz_enabled")
private Boolean enabled;

works just fine.

0

精彩评论

暂无评论...
验证码 换一张
取 消