Do these strings need to change dynamically without app redeployment?
If it's just error messages and the like, why not use
java.util.ResourceBundle?
String msg = ResourceBundle.getBundle("mymessages").getString(MSG_KEY);
You can store the resources in any format you like if you implement your
own ResourceBundle subclass, or you can use a .properties file. If you
pass in the cool Orion classloader I believe it will dynamically reload
the data, too. Check the javadocs.
Jeff
>-----Original Message-----
>From: Neal Kaiser [mailto:[EMAIL PROTECTED]]
>Sent: Monday, March 12, 2001 4:41 PM
>To: Orion-Interest
>Subject: Design Advice (And Orion JNDI syntax) Needed
>
>
>
>Hello;
>
>Problem: My application has many text strings (i.e. email
>messages, email
>recipient addresses, canned messages, etc) that both my
>servlets and EJBs
>need to access. It needs to be done in a way that these are
>not hardcoded
>and can be accessed easily from servlets, ejbs, and possibly
>even standalone
>applications.
>
>My Solution: Have a MessageResources object that is created by
>a startup
>servlet that contains all these strings. You can then use a
>MessageResources.getValue(String) to get the desired string
>you want. This
>is all done, the startup servlet runs, reads in the XML file,
>and creates
>the MessageResources.
>
>My Problem: I now need a way to pass that MessageResource
>object into scope
>so it is accessible by Servlets and EJBs (I'll worry about standalone
>applications later).
>
>However, I somehow need a way for the Stateless session bean
>to get this
>MessageResource object. I can't do StartupServlet.getMR()
>because the EJBs
>might be remote.
>
>Is it possible to use JNDI and store an object? IF that is the
>case, then I
>could do something like this in my stateless session bean:
>
>public String getMessage(String key) {
> if (messageResources == null) {
> // lookup messageResources with JNDI
> }
>}
>
>How would I do this in OrionServer? I believe it is app server
>specific,
>right?
>
>Does anyone have any input? Is it the right way to do it?
>This must be a
>common problem (global variables needed). How is everyone else
>doing this?
>
>
>
>