Skip to Content.
Sympa Menu

grouper-users - Re: [grouper-users] Trying to get QuickStart working

Subject: Grouper Users - Open Discussion List

List archive

Re: [grouper-users] Trying to get QuickStart working


Chronological Thread 
  • From: Curt Blank <>
  • To: "GW Brown, Information Systems and Computing" <>
  • Cc: Grouper Users <>
  • Subject: Re: [grouper-users] Trying to get QuickStart working
  • Date: Thu, 25 Jan 2007 10:57:07 -0600

Thanks, I really appreciate your effort and your patience.

When I put your jsp in place I get stuff besides the debug output, I get the Internet 2 logo, the Grouper logo and text. It's all below.

And I installed this version of Tomcat and it's only used for Grouper and there's no guarantee it's installed correctly. :)

-Curt

OK, an Exception:

java.lang.ExceptionInInitializerError
at
edu.internet2.middleware.grouper.GrouperHelper.getFieldsAsMap(GrouperHelper.java:2682)
at
edu.internet2.middleware.grouper.ui.SessionInitialiser.init(SessionInitialiser.java:174)
at
edu.internet2.middleware.grouper.ui.SessionInitialiser.init(SessionInitialiser.java:79)
at
org.apache.jsp.WEB_002dINF.jsp.initPreLoginSession_jsp._jspService(initPreLoginSession_jsp.java:100)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:334)
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:802)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at
org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672)
at
org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:574)
at
org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:499)
at
org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:966)
at
org.apache.jasper.runtime.PageContextImpl.include(PageContextImpl.java:602)
at
org.apache.struts.tiles.TilesUtilImpl.doInclude(TilesUtilImpl.java:101)
at org.apache.struts.tiles.TilesUtil.doInclude(TilesUtil.java:137)
at
org.apache.struts.taglib.tiles.InsertTag.doInclude(InsertTag.java:758)
at
org.apache.struts.taglib.tiles.InsertTag$InsertHandler.doEndTag(InsertTag.java:890)
at
org.apache.struts.taglib.tiles.InsertTag.doEndTag(InsertTag.java:460)
at
org.apache.jsp.WEB_002dINF.jsp.template_jsp._jspx_meth_tiles_insert_0(template_jsp.java:395)
at
org.apache.jsp.WEB_002dINF.jsp.template_jsp._jspService(template_jsp.java:156)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:334)
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:802)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at
org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672)
at
org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:463)
at
org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:398)
at
org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
at
org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1056)
at
org.apache.struts.tiles.TilesRequestProcessor.doForward(TilesRequestProcessor.java:261)
at
org.apache.struts.tiles.TilesRequestProcessor.processTilesDefinition(TilesRequestProcessor.java:237)
at
org.apache.struts.tiles.TilesRequestProcessor.processForwardConfig(TilesRequestProcessor.java:300)
at
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:231)
at
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1164)
at
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:397)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at
edu.internet2.middleware.grouper.ui.LoginCheckFilter.doFilter(LoginCheckFilter.java:167)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:204)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:432)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
at
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
at
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:595)
Caused by: edu.internet2.middleware.grouper.GrouperRuntimeException: unable
to find all fields: Could not execute query
at edu.internet2.middleware.grouper.FieldFinder.findAll(Unknown
Source)
at edu.internet2.middleware.grouper.FieldFinder.(Unknown Source)
... 63 more
Caused by: net.sf.hibernate.exception.GenericJDBCException: Could not execute
query
at
net.sf.hibernate.exception.ErrorCodeConverter.handledNonSpecificException(ErrorCodeConverter.java:90)
at
net.sf.hibernate.exception.ErrorCodeConverter.convert(ErrorCodeConverter.java:79)
at
net.sf.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:29)
at net.sf.hibernate.impl.SessionImpl.convert(SessionImpl.java:4131)
at net.sf.hibernate.impl.SessionImpl.find(SessionImpl.java:1557)
at net.sf.hibernate.impl.QueryImpl.list(QueryImpl.java:49)
... 65 more
Caused by: org.apache.commons.dbcp.SQLNestedException: Borrow
prepareStatement from pool failed
at
org.apache.commons.dbcp.PoolingConnection.prepareStatement(PoolingConnection.java:93)
at
org.apache.commons.dbcp.DelegatingConnection.prepareStatement(DelegatingConnection.java:185)
at
org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.prepareStatement(PoolingDataSource.java:278)
at
net.sf.hibernate.impl.BatcherImpl.getPreparedStatement(BatcherImpl.java:263)
at
net.sf.hibernate.impl.BatcherImpl.getPreparedStatement(BatcherImpl.java:236)
at
net.sf.hibernate.impl.BatcherImpl.prepareQueryStatement(BatcherImpl.java:67)
at
net.sf.hibernate.loader.Loader.prepareQueryStatement(Loader.java:784)
at net.sf.hibernate.loader.Loader.doQuery(Loader.java:269)
at
net.sf.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:138)
at net.sf.hibernate.loader.Loader.doList(Loader.java:1063)
at net.sf.hibernate.loader.Loader.list(Loader.java:1054)
at net.sf.hibernate.hql.QueryTranslator.list(QueryTranslator.java:854)
at net.sf.hibernate.impl.SessionImpl.find(SessionImpl.java:1554)
... 66 more
Caused by: java.sql.SQLException: Table not found: GROUPER_FIELDS in
statement [select field0_.id as id, field0_.group_type as group_type,
field0_.field_type as field_type, field0_.field_name as field_name,
field0_.read_priv as read_priv, field0_.write_priv as write_priv,
field0_.nullable as nullable from grouper_fields field0_ order by field_name
asc]
at org.hsqldb.jdbc.jdbcUtil.throwError(Unknown Source)
at org.hsqldb.jdbc.jdbcPreparedStatement.(Unknown Source)
at org.hsqldb.jdbc.jdbcConnection.prepareStatement(Unknown Source)
at
org.apache.commons.dbcp.PoolingConnection.makeObject(PoolingConnection.java:188)
at
org.apache.commons.pool.impl.GenericKeyedObjectPool.borrowObject(GenericKeyedObjectPool.java:797)
at
org.apache.commons.dbcp.PoolingConnection.prepareStatement(PoolingConnection.java:87)
... 78 more


Access Grouper

Login <http://grouper02.imt.uwm.edu:8080/grouper/callLogin.do>


Grouper - intro

Grouper is a system for creating and maintaining institutional groups in a central repository. Such groups may be used for many different reasonpurposes e.g. for mailing lists, or for determining which set of people are allowed to access specific web applications, or for sharing resources. The goal is to create a group once, but use it as often as necessary in as wide a range of systems as possible.

In order to use Grouper effectively you must first understand some key concepts:

Group
A group represents a collection of 'items' which are themselves
considered to be members of the group.
Subject
A subject is an abstraction for any 'item' which may be a member of
a group. A subject has a 'type' e.g. person or group. To specify
that group B is a member of group A is to specify that all members
of group B are also members of group A. In the future, other subject
types may be available to define computers or applications.

Membership
A specific relationship between a subject and a group.

Stem
A stem is a name space in which groups exist. Stems are hierarchical
so one way of thinking about stems is as folders. Folders may
contain subfolders or files while stems can contain substems or
groups. Stems can be used to collect together related groups and
provide a means of controlling access to groups. Some examples of
stems are:

* uob:faculties:artf:fren = University of Bristol: Faculties:
Arts Faculty: Department of French
* uob:personal:[username] = University of Bristol: Personal
groups: [name]

In this web application, groups and stems are distinguished by the
addition of square brackets [] around group names.

Privileges
Grouper provides fine control over who can create stems and groups,
who can change the membership of a group, and who can grant
privileges for specific stems or groups to others. In fact,
privileges are granted to subjects. By granting a privilege to a
subject which is a group, all members of that group are granted the
privilege (for as long as they are a member of the group).

GrouperAll is a /special internal subject/. Any privilege granted to
GrouperAll is, in effect, granted to all subjects.

GrouperSystem is also a special internal subject which has implicit
admin privileges for stems and groups.

A /wheel/ group, if defined, conveys implicit GrouperSystem
privileges to its members. Members of this group, by default, act as
themselves with privileges limited to those assigned to them. This
UI allows wheel group members to opt to /Act as admin/.

*Stem privileges*
Create
subject may create groups in this stem
Stem
subject may create stems in this stem


*Group privileges*

Member
subject is a member of this group
Optin
subject may elect to become a member of this group
Optout
subject may elect to stop being a member of this group
View
subject may see that this group exists
Read
subject may see the membership list for this group
Update
subject may modify the membership of this group
Admin
subject may modify the membership of this group, delete the
group or assign privileges for the group

logo
Grouper logo


GW Brown, Information Systems and Computing wrote:

I also managed to get the WAR to work. I modified the log4j.properties, like Tom, started up an existing QuickStart database and then started up Tomcat. Everything worked as expected - which suggests that the build is OK, and that the problem probably lies with Tomcat - but without any errors in the logs that may be difficult to track down.

Is this a Tomcat instance you have installed, or was it set up by someone else and are other webapps deployed to it?

At this point I would normally attach a Java debugger to Tomcat and try to catch an Exception, however, it sounds like that is something you won't have done before.

I have attached a jsp which you can use to overwrite the one expanded from the WAR in WEB-INF/jsp. It should capture any Exception thrown at initialisation and print a stacktrace to the screen. Please send me the actual page source. Hopefully that will give a clue as to what is happening.

Gary







--On 23 January 2007 15:37 -0600 Tom Barton
<>
wrote:

I dropped your war file into my tomcat 5.5 webapps folder, restarted
tomcat, substituted sources.xml and grouper.hibernate.properties for my
own (which point to my prototype sources and groups registry, not the
quickstart ones) and changed the pathnames in log4j.properties to point
to someplace that exists in my file system. Restarted tomcat again, and
it works fine.

Not sure what to conclude, but perhaps that helps you to focus your
search for the trouble.

Tom

Curt Blank wrote:

At first I thought I was on to something when you asked for the war file
and I didn't have one, so I made one, but it acts the same. I did the
dist and copied everything from the dist/grouper directory to
webapps/grouper. Now that I have a war file I see when I start tomcat it
creates and populates the webapps/grouper directory itself.

I seem to have made some head way though. I am not running apache
anymore during this endeavor.

I think I'm starting to understand some things, I got this:


HTTP Status 404 - /grouper/index.jsp

------------------------------------------------------------------------

*type* Status report

*message* _/grouper/index.jsp_

*description* _The requested resource (/grouper/index.jsp) is not
available._

------------------------------------------------------------------------


Apache Tomcat/5.5.20


When neither the grouper.war file nor the webapps/grouper copied from
the dist existed. So that the fact I didn't get that when I did the dist
says it was sort of working. So now by the fact I'm getting a blank
screen says it's trying to work.

I've included my .war file which I am now using. (gzip'ing it didn't
help much so I didn't.)

-Curt



Curt Blank wrote:

Sorry, meant to answer these questions.

> What versions of Java, Ant and Tomcat are you using?

Java jdk-1.5.0_10-fcs
Ant 1.7.0
Tomcat 5.5.20

> Do you get any error in the Tomcat logs e.g. catlina.out?

No, nothing.

-Curt

Curt Blank wrote:

Thank you for this! Very informative. Gives me a path to go down, I
will give it all a try.

-Curt

GW Brown, Information Systems and Computing wrote:



--On 22 January 2007 15:09 -0600 Curt Blank
<>
wrote:

I'm trying to get QuickStart working and this is frustrating. I
follow the instructions provided but I can't get it to work. I am no
java or tomcat expert so that probably has a lot to do with it.




What versions of Java, Ant and Tomcat are you using?


It seems to be doing something I connect to
http://localhost:8080/grouper
and it takes me to http://localhost:8080/grouper/populateIndex.do but
then I get a white screen and a Done. I look at the page source and I
have this:

<?xml version="1.0" encoding="iso-8859-1"?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd";>




<!--start:/WEB-INF/jsp/template.jsp-->

<html xmlns="http://www.w3.org/1999/xhtml"; lang="en-US"
xml:lang="en-US">



<!--init-->




Do you get any error in the Tomcat logs e.g. catlina.out?



In httpd.conf I put this:

# <IfModule \!mod_jk.c>
LoadModule jk_module modules/mod_jk.so
# </IfModule>
# JkWorkersFile "/usr/local/tomcat/conf/jk/workers.properties"
JkLogFile "/var/log/httpd/mod_jk.log"
JkLogLevel emerg
JkMount /grouper/* ajp13

I had to comment out the IfModule(s) otherwise it wouldn't load.
And if I
don't comment out 'JkWorkersFile
"/usr/local/tomcat/conf/jk/workers.properties"' apache won't start. I
don't know if I need that for QuickStart but the instructions don't
address it either way and if I need a workers.properties where does
it come from?




In a production environment it is quite likely you would place
Apache in front of Tomcat and use mod_jk, however, in order to get
the QuickStart to work you don't need to do anything with Apache or
mod_jk - you can connect to Tomcat directly.


I'm also still getting this when I try to stop HSQLDB:

[java] Exception in thread "HSQLDB Connection @1b543c88"
java.lang.OutOfMemoryError: Java heap space




This is a direct consequence of using Telnet to shutdown the
database. I've never tried doing it this way before.

The QuickStart build file also has a 'dbgui' target which will load
a simple database manager ui which lets you query the database, and
also shut it down. If you can't do this directly on the machine
where the database is installed i.e. no X windows capability, you
can connect from a 'desktop' machine by changing the localhost in
the URL below:

<java dir="." classname="org.hsqldb.util.DatabaseManager"
classpathref="db.class.path" fork="true">
<arg line="-url jdbc:hsqldb:hsql://localhost:9001"/>


This is all extremely frustrating when you follow the instructions
and it
doesn't work. Granted being unfamiliar with java and tomcat doesn't
help
and I think I have the jk connector installed properly, but the
instructions should take this into account that people not familiar
with
all these components will be asked to install this.




I hear your frustration, and the QuickStart is supposed to make it
easy to get started specifically to avoid such frustration - and it
generally seems to achieve this.

If there is no error in the Tomcat log, I will try and come up with
a 'patch' which will produce some diagnostic output. It looks like
the error is occurring during initialisation before any Grouper /
Subject API calls are made.

In addition you could send me your WAR file + the contents of
grouper-qs/grouper/conf and I'll take a look at them to see if I can
spot anything.


-Curt Blank





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










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


------------------------------------------------------------------------

<%-- @annotation@ Ensures that session is initialised with ResourceBundles. May be called even when not needed - so must review --%><%-- @author Gary Brown. @version $Id: initPreLoginSession.jsp,v 1.2 2006/10/05 09:07:38 isgwb Exp $ --%> <%@include file="/WEB-INF/jsp/include.jsp"%> <% try { if(Boolean.TRUE.equals(session.getAttribute("sessionInited"))) return; %> <% org.apache.struts.config.ModuleConfig config1 = (org.apache.struts.config.ModuleConfig) request.getAttribute("org.apache.struts.action.MODULE"); %> <% String module = config1.getPrefix(); %> <% //if(0==0) throw new IllegalStateException("A made up Exception"); SessionInitialiser.init(module,session); }catch(Throwable e) { java.io.PrintWriter pw = new java.io.PrintWriter(out); out.print("OK, an Exception:"); out.print("

");
e.printStackTrace(pw);
out.print("

"); } %>





Archive powered by MHonArc 2.6.16.

Top of Page