Skip to Content.
Sympa Menu

grouper-users - RE: [grouper-users] Lists Returning but Not Rendering in UI

Subject: Grouper Users - Open Discussion List

List archive

RE: [grouper-users] Lists Returning but Not Rendering in UI


Chronological Thread 
  • From: "GW Brown, Information Systems and Computing" <>
  • To: Monica Crawford <>
  • Cc:
  • Subject: RE: [grouper-users] Lists Returning but Not Rendering in UI
  • Date: Sun, 24 Sep 2006 11:53:20 +0100

Hi Monica,

Responses below.

Gary

--On 22 September 2006 16:57 -0500 Monica Crawford <> wrote:

Hi Gary,

I replaced ObjectAsMap with the attached and it didn't work in JBoss or
Weblogic I get an NPE in the browseStems.jsp. Did it work for you? See
stack below this message.
It worked Ok in Tomcat.

However, it does lead me to believe that is part of another core issue. In
addition to the OjbjectAsMap the MapBundleWrapper is also not returning
values when accessed via jstl.
I noticed that from your source files.

I performed a few tests in Weblogic. Looks like the ${map['value']} works
fine if you are using a map that contains name/value pairs. But somehow,
the empty map of the MapBundleWraper isn't really working in the jstl
Weblogic. I even removed the jstl1.1.jar file from WEB-INF/lib to see if
there was another instance loaded from another classloader but it really
does need the jar file in web-inf.
It definitely looks like some level of abstraction is being broken. I'd hoped the JSTL was making 'assumptions' about HashMaps, and that implementing the Map interface directly would get around this

I'm still investigating the issues, let me know if the ObjectAsMap works
for your environment. Also what are the chances of changing
MapBundleWrapper to not extend the HashMap either? It isn't necessarily
being used as a true 'Map' but maybe there is another reason to have it
extend HashMap beyond the convenience of fooling clients into thinking it
is a Map :)?
Extending HashMap is a convenience, and I could rework it - but if the new ObjectAsMap doesn't work, I doubt changing MapBundleWrapper would work either.

I think the only way to crack this is to step through the code in a debugger to see exactly what is happening. JSTL really ought to call 'get' on the Map - and for Tomcat it appears to.

I'll have a go at downloading Weblogic or JBoss, but it may take me a few days to find the time.


ERROR STACK WHEN REPLACING ObjectAsMap

javax.servlet.jsp.JspException: ServletException in
'/WEB-INF/jsp/body.jsp': ServletException in '/WEB-INF/jsp/content.jsp':
ServletException in '/WEB-INF/jsp/MyGroups.jsp': ServletException in
'/WEB-INF/jsp/browseStems.jsp': null at
org.apache.struts.taglib.tiles.InsertTag$InsertHandler.doEndTag(InsertTag
.ja va:921) at
org.apache.struts.taglib.tiles.InsertTag.doEndTag(InsertTag.java:460) at
org.apache.jsp.WEB_002dINF.jsp.template_jsp._jspx_meth_tiles_insert_2(org
.ap ache.jsp.WEB_002dINF.jsp.template_jsp:417) at
org.apache.jsp.WEB_002dINF.jsp.template_jsp._jspService(org.apache.jsp.WE
B_0 02dINF.jsp.template_jsp:167) at
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97) at
javax.servlet.http.HttpServlet.service(HttpServlet.java:810) at
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.jav
a:3 22) at
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264) at
javax.servlet.http.HttpServlet.service(HttpServlet.java:810) at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applicat
ion FilterChain.java:252) at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilte
rCh ain.java:173) at
org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatch
er. java:672) at
org.apache.catalina.core.ApplicationDispatcher.processRequest(Application
Dis patcher.java:463) at
org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispa
tch er.java:398) at
org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatc
her .java:301) at
org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java
:10 56) at
org.apache.struts.tiles.TilesRequestProcessor.doForward(TilesRequestProce
sso r.java:261) at
org.apache.struts.tiles.TilesRequestProcessor.processTilesDefinition(Tile
sRe questProcessor.java:237) at
org.apache.struts.tiles.TilesRequestProcessor.processForwardConfig(TilesR
equ estProcessor.java:300) at
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:2
31) at
I need to add some better error handling. Unfortunately the stack trace doesn't pin down where the actual NullPointerException originated.

Smiles,
Monica
-----Original Message-----
From: GW Brown, Information Systems and Computing
[mailto:]
Sent: Wednesday, September 20, 2006 11:37 AM
To: Monica Crawford
Cc:

Subject: Re: [grouper-users] Lists Returning but Not Rendering in UI

Hi Monica,

Would you try replacing
grouper-ui/java/src/edu/internet2/middleware/grouper/ui/util/ObjectAsMap
with the version attached, and rebuild.

I've re-implemented ObjectAsMap so that it doesn't extend HashMap. I
expect the changes will either fix the problem in Weblogic - or,
possibly, make them worse. If there is still a problem would you send me
the equivalent source files as before?

Thanks,

Gary


--On 15 September 2006 14:43 +0100 "GW Brown, Information Systems and
Computing"
<>
wrote:

Hi Monica,

Thanks for sending the html. I'm not sure if I'm more, or less, confused
than before, but here are some deductions/observations:

1) The Struts actions are creating objects as expected
2) The webapp loads the correct dynamic templates - which shows that the
objects are working in the Java layer
3) Some JSTL is working. Looking at the 'Welcome' message we get
<span class="applicationSubject"></span>. This indicates that:

<c:out value="${viewObject.subjectType}"/> is working, but
<c:out value="${viewObject.desc}" /> is not working.

subjectType is a direct key in the Map, but desc maps to description,
which, internally, calls Subject.getDescription() - which isn't
returning a printable value. Ordinarily I would suspect that the
description attribute had not been set, however, for GrouperSystem, it
would be available, and, in any case, you see Subjects in Tomcat.

In the case of Stems, <c:out value="${viewObject.displayExtension}"/> is
failing to return a printable value. In this case, a WrapDynaBean is
invoked to request 'displayExtension'. Unfortunately, if there is an
exception I'm discarding it, but I'm suspicious that accessing Maps
directly appears to work, but when the Maps try to invoke methods on the
objects they wrap, this is failing - some sort of security layer?

I'll try and come up with a test of some sort to to confirm the last
supposition, but I won't get a chance to do that until next week.

Gary

--On 13 September 2006 18:07 -0500 Monica Crawford
<>
wrote:

Apologies for the delay, See inline and attached. Thanks.


GW Brown, Information Systems and Computing wrote:
Hi Monica,

Very strange!
Yes very. I'll try loading some simple lists using jstl under wl
(weblogic) as soon as possible.

Would you send me the HTML source of the screens? You can
also include a search results page.

If you create groups and add members using Tomcat, can you display
memberships in Weblogic?
Well, I can't get to a membership page. After I create the group I can't
select it.

If you log on as a user from the LDAP
directory, does the welcome message show their name? If you login as
GrouperSystem does the welcome message show GrouperSystem?
Yes tomcat. No weblogic.


The majority of objects that the UI deals with are Maps - usually
subclasses of ObjectAsMap. It looks like the Maps are behaving
differently between Tomcat and Weblogic, or that JSTL is treating them
differently. Do you know if Weblogic uses the reference JSTL
implementation or one of their own?
Weblogic has a jstl instance of its own (I'm thinking this is integrated
with jsp 2.0). However, it appears that having jstl in the webapp it
will load from WEB-INF lib.
I tested where javax.servlet.jsp.jstl.core.Config class is loaded on my
sample helloworld app... which has the same jstl jar as my modified
grouper app. Later, I will modify the grouper app to ensure the same
behavior but I'm pretty confident it would load in the same fashion;
from WEB-INF lib first.
file:/C:/tools/bea/weblogic92/samples/domains/wl_server/./servers/examp
le
sServer/tmp/_WL_user/_appsdir_helloworld_war/q284bk/war/WEB-INF/lib/jst
l1 .1.jar


Gary




--On 11 September 2006 18:41 -0500 Monica Crawford
<>
wrote:



Hi,



I have a few questions regarding the UI and the behavior I'm noticing.
I'm running 1.0 grouper-ui in Weblogic 9.2 and experience a couple
strange things. I've attached screen shots because there are no error
messages in the log files and I get an error with the
populateDebugPrefs.do. Now, this same behavior doesn't appear to
happen in my Tomcat instance with the same .war file.


* When searching for People (going against an ldap directory) it
reaches the directory server and returns results but they don't
display * When creating groups or stems the stems and groups get
created in the database, but don't display back on 'All Groups'
'Subject Results'. But I see the name of the group and stem in the
'Add Composite' section * When adding a group or stem I get 3 submit
buttons.



Thanks for the second set of eyes. Much appreciated.



Monica





----------------------
GW Brown, Information Systems and Computing


--
Monica Crawford
University of Wisconsin-Madison
Division of Information Technology
1210 West Dayton Street, Rm 3159
Madison, Wisconsin 53706
608.890.0782





----------------------
GW Brown, Information Systems and Computing




----------------------
GW Brown, Information Systems and Computing





----------------------
GW Brown, Information Systems and Computing




Archive powered by MHonArc 2.6.16.

Top of Page