We help IT Professionals succeed at work.

servlet context syntax

blue-genie
blue-genie asked
on
Medium Priority
250 Views
Last Modified: 2013-11-24
i have this .....

TreeNode rootNode = (TreeNode)getServletContext().getAttribute("mediaLibRootTreeNode"); which resides in a back end section

now i have to recreate this in the front end section

now normally i have this ..
getServlet().getServletContext().getAttribute("rolms_front_dir").toString() to get to the front bit.
but now how do i set my rootNode of TreeNode type to get the servlet attribute?
i'm not sure if i'm explaining this properly but i'm hoping you guys will understand this when u see it.
Comment
Watch Question

Top Expert 2009

Author

Commented:
ok let me try explain it this way. i have a getContext.setAttribute("") that gets set on startup of tomcat.
i have 2 folders, the admin and front bits, and in the front, i have a jsp that needs to get hold of that attribute.
Java Developer
CERTIFIED EXPERT
Top Expert 2010
Commented:
use something like:

Object value = application.getAttribute(name);

Not the solution you were looking for? Getting a personalized solution is easy.

Ask the Experts
Top Expert 2009

Author

Commented:
objects, it returns a null, but the value is set when the server starts up - it's in the logs.
i'm thinking it doesn't know where the servletcontext is. so i have to set somethign to the rolms_front_dir bit, but then get another attribute.

i want to do something like this

Object value = pageContext.getServletConfig().getServletContext().getAttribute("rolms_front_dir").toString();
            out.println(value); //this prints out correctly
            TreeNode rootNode=(TreeNode)value.getAttribute("mediaLibRootTreeNode");

the other bit gives me a cannot resolve symbol

symbol  : method getAttribute (java.lang.String)
location: class java.lang.Object
            TreeNode rootNode=(TreeNode)value.getAttribute("mediaLibRootTreeNode");
Mick BarryJava Developer
CERTIFIED EXPERT
Top Expert 2010

Commented:
where exactly is that code?

>    TreeNode rootNode=(TreeNode)value.getAttribute("mediaLibRootTreeNode");

'value' is a string, it doesn't have a getAttribute method

do u mean:

TreeNode rootNode=(TreeNode) pageContext.getServletConfig().getServletContext().getAttribute("mediaLibRootTreeNode");
Top Expert 2009

Author

Commented:
that code is in the jsp in the front bit

thing is the servlet is in the back, and the attribute gets set there, and i'm trying to access it from the front.
The web application has a administration section and a front view.
Top Expert 2009

Author

Commented:
ok, part 2, we've managed to pull something back but...when we getClass().getName() returns TreeNode
but if we cast to TreeNode - throws a classcast exeptinon?
Mick BarryJava Developer
CERTIFIED EXPERT
Top Expert 2010

Commented:
can u post your code
Top Expert 2009

Author

Commented:
thanks objects.... appreciate it

my serlet on start up calls

treeNodeCreator.buildCourseListWithLearningProgramesAsTree(getServletContext());

the buildCourse... method does a whole bunch of things then at the end

servletContext.setAttribute("mediaLibRootTreeNode", rootNode);

in my jsp....

we've been fiddling around with this a bit, so might look a bit disjointed...

TreeNode rootNode = null;

try{
      TreeNode rootNode =getServletContext().getContext("/" + getServletContext().getAttribute("rolms_admin_dir")).getAttribute("mediaLibRootTreeNode");
} catch (ClassCastException ce) {
      out.println(ce.getMessage());
}
out.println("Object type: " + rootNode.getClass().toString());//returns TreeNode

i need what's returned by the servet attribute to be cast to the TreeNode so that i can access it's methods....

shout if this is still not enough.

            
            
Mick BarryJava Developer
CERTIFIED EXPERT
Top Expert 2010

Commented:
there is no casting in that code??
Top Expert 2009

Author

Commented:
yeah sorry
when we try TreeNode rootNode = (TreeNode)getServletContext().getContext("/" + getServletContext().getAttribute("rolms_admin_dir")).getAttribute("mediaLibRootTreeNode");

it throws the error.
Mick BarryJava Developer
CERTIFIED EXPERT
Top Expert 2010

Commented:
> out.println("Object type: " + rootNode.getClass().toString());//returns TreeNode

that doesn't make sense, if u were getting a CCE then rootNode would be null and that line would not return TreNode
Top Expert 2009

Author

Commented:
ok, like is said, we've been playing around with the code and putting out prints and trying all sorts of wierd stuff.

bottom line, when we return the attribute from the servlet attribute and do a getClass on it, it brings back TreeNode, however when we explicitly cast it to TreeNode it throws the exception.
Mick BarryJava Developer
CERTIFIED EXPERT
Top Expert 2010

Commented:
if thats the case then they must be different TreeNode classes.
Top Expert 2009

Author

Commented:
is that possible if they're both the same package and all?
Top Expert 2009

Author

Commented:
managed to come right, thanks for your efforts anyway.
Access more of Experts Exchange with a free account
Thanks for using Experts Exchange.

Create a free account to continue.

Limited access with a free account allows you to:

  • View three pieces of content (articles, solutions, posts, and videos)
  • Ask the experts questions (counted toward content limit)
  • Customize your dashboard and profile

*This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

OR

Please enter a first name

Please enter a last name

8+ characters (letters, numbers, and a symbol)

By clicking, you agree to the Terms of Use and Privacy Policy.