I am trying to get Turbine up and running and I have solved a number of configuration issues but I am having trouble getting past this one. After the login screen I enter User: turbine Password turbine and I recieve the following exception:
Exception: java.lang.NoClassDefFoundError at org.apache.turbine.om.user.TurbineUser.retrieveFromStorage(TurbineUser.java:346) at org.apache.turbine.om.user.peer.UserFactory.getUser(UserFactory.java:113) at org.apache.turbine.om.user.peer.UserFactory.getUser(UserFactory.java:88) at org.apache.turbine.modules.actions.LoginUser.doPerform(LoginUser.java:96) at org.apache.turbine.modules.Action.perform(Action.java:77) at org.apache.turbine.modules.ActionLoader.exec(ActionLoader.java:111) at Turbine.doGet(Turbine.java:288) at Turbine.doPost(Turbine.java:387) at javax.servlet.http.HttpServlet.service(HttpServlet.java:760) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.tomcat.core.ServletWrapper.handleRequest(ServletWrapper.java:503) at org.apache.tomcat.core.ServletWrapper.handleRequest(ServletWrapper.java:597) at org.apache.tomcat.servlets.InvokerServlet.service(InvokerServlet.java:257) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.tomcat.core.ServletWrapper.handleRequest(ServletWrapper.java:503) at org.apache.tomcat.core.ContextManager.service(ContextManager.java:559) at org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(HttpConnectionHandler.java:160) at org.apache.tomcat.service.TcpConnectionThread.run(SimpleTcpEndpoint.java:338) at java.lang.Thread.run(Thread.java:484)
I am using Tomcat with the following classpath:
Starting tomcat install="d:\Portal\jakarta-tomcat" home="D:\portal\jakarta-tomca
t" classPath="d:\Portal\jakarta-tomcat\classes;d:\Portal\jakarta-tomcat\lib\webs
erver.jar;d:\Portal\jakarta-tomcat\lib\jasper.jar;d:\Portal\jakarta-tomcat\lib\x
ml.jar;d:\Portal\jakarta-tomcat\lib\servlet.jar;c:\jdk1.3\lib\tools.jar;D:\Porta
l\Jetspeed-1.2b1\JetSpeed.jar;D:\Portal\Jetspeed-1.2b1\lib\turbine-2.0.jar;D:\Po
rtal\Apache-Turbine-20000808\lib\\mail-1.1.3.jar;D:\Portal\Apache-Turbine-200008
08\lib\village-1.3.jar;D:\Portal\Jetspeed-1.2b1\lib\ecs.jar;D:\Portal\Apache-Tur
bine-20000808\lib\activation-1.0.1.jar;D:\Portal\Apache-Turbine-20000808\lib\jnd
i-1.2.1.jar;D:\Portal\Jetspeed-1.2b1\lib\castor.jar;D:\Portal\Jetspeed-1.2b1\lib
\cocoon.jar;D:\Portal\Jetspeed-1.2b1\lib\cocoon-ext-servlet2.2.jar;D:\Portal\Jet
speed-1.2b1\lib\xalan.jar;D:\Portal\Jetspeed-1.2b1\lib\xerces.jar;D:\Portal\jdbc
\mm.mysql-2.0.2-bin.jar"
and my TurbineResources.properties file contains:
# Set this to specify the path to your webmacro.properties file.
# If this is not set, Turbine will look for the WebMacro.properties
# file in your classpath
# webmacro.properties=FULLPATH HERE
# Your mail server for outgoing email.
# Default: null
mail.server=
# This is the module to handle building AccessControlLists
# Default: org.apache.turbine.om.security.DefaultAccessControl
access.control=org.apache.turbine.om.security.DefaultAccessControl
# This determines whether or not to cache the modules in memory.
# For development, turn this off. For production, turn this on.
# Default: false
module.cache=false
# If module.cache=true, then how large should we make the
# hashtables by default.
action.cache.size=20
layout.cache.size=10
navigation.cache.size=10
page.cache.size=5
screen.cache.size=50
scheduledjob.cache.size=10
wmnavigationloader.cache.size=10
wmlayoutscreenloader.cache.size=50
# This is the "classpath" for Turbine. In order to locate
# your own modules, you should add them to this path.
# For example, if you have com.company.actions,
# com.company.screens, com.company.navigations, then
# this setting would be "com.company,org.apache.turbine.modules"
# This path is searched in order. For example, Turbine
# comes with a screen module named "Login". If you wanted
# to have your own screen module named "Login", then you
# would specify the path to your modules before the others.
# Default: org.apache.turbine.modules
module.packages=
# This is the class that implements the User interface
# Default: org.apache.turbine.om.user.TurbineUser
user.class=org.apache.turbine.om.user.TurbineUser
# These are your database settings, look in the
# org.apache.turbine.util.db.pool.* packages for more information.
#### ORACLE
#database.default.driver=oracle.jdbc.driver.OracleDriver
#database.default.url=jdbc:oracle:thin:@localhost:1521:ORCL
#### MySQL MM Driver
database.default.driver=org.gjt.mm.mysql.Driver
database.default.url=jdbc:mysql://localhost/Turbine
#### InstantDB
#database.default.driver=org.enhydra.instantdb.jdbc.idbDriver
#database.default.url=C:/TurbineDB/Turbine.prp
#### HypersonicSQL
#database.default.driver=org.hsql.jdbcDriver
#database.default.url=jdbc:HypersonicSQL:C:\TurbineDB\turbine
#### ODBC bridge
#database.default.driver=sun.jdbc.odbc.JdbcOdbcDriver
#database.default.url=jdbc:odbc:turbine
database.default.username=bgebbie
database.default.password=bgebbie
# The number of database connections to cache in the ConnectionPool.
database.maxConnections=3
# The time in milliseconds that database connections will be cached.
# Default: one hour
database.expiryTime=3600000
# These are the supported jdbc-drivers and their adaptors.
# These properties are used by the DBFactory.
database.adaptor=DBMM
database.adaptor.DBMM=org.gjt.mm.mysql.Driver
database.adaptor=DBWeblogic
database.adaptor.DBWeblogic=weblogic.jdbc.pool.Driver
database.adaptor=DBOracle
database.adaptor.DBOracle=oracle.jdbc.driver.OracleDriver
database.adaptor=DBInstantDB
database.adaptor.DBInstantDB=org.enhydra.instantdb.jdbc.idbDriver
database.adaptor=DBPostgres
database.adaptor.DBPostgres=postgresql.Driver
database.adaptor=DBDB2Net
database.adaptor.DBDB2Net=COM.ibm.db2.jdbc.net.DB2Driver
database.adaptor=DBDB2App
database.adaptor.DBDB2App=COM.ibm.db2.jdbc.app.DB2Driver
database.adaptor=DBSybase
database.adaptor.DBSybase=com.sybase.jdbc.SybDriver
database.adaptor=DBHypersonicSQL
database.adaptor.DBHypersonicSQL=org.hsql.jdbcDriver
database.adaptor=DBOdbc
database.adaptor.DBOdbc=sun.jdbc.odbc.JdbcOdbcDriver
# Determines if the quantity column of the IDBroker's
# id_table should be increased automatically if requests
# for ids reaches a high volume.
database.idbroker.cleverquantity=true
# These are variables to set if you're using a template system
# (WebMacro, FreeMarker, etc.) with Turbine.
#
# default: /default.wm
# Used by the Turbine as the default if no other templates are specified
#default.template=/default.wm
# Used to set the template homepage if you are using a
# template layout.
# default: /index.wm
#template.homepage=/index.wm
# This is the default screen to show to people when they
# first access the system. You can override this by
# specifying module.packages to include your own modules.
# Default: Login
screen.homepage=Login
# This is the page that is shown on an incorrect login
# attempt. It is referenced in the LoginUser action
# Default: Login
screen.login=Login
# This is the default error screen
# Default: Error
screen.error=Error
# This is the screen that is displayed when the user's
# web page is in an invalid state.
# Default: error.InvalidState
screen.invalidstate=error.InvalidState
# set the default Doctype. The default Doctype can be set by
# using the single strings: Html40Strict, Html40Transitional,
# or Html40Frameset. Additionally the default can be supplied as
# two strings separated by a comma giving the dtd and uri.
# Default: ignored if not set to some value
# default.doctype=Html40Transitional
# The default location for ImageServer to find its files
# Default: d:/
screen.ImageServer.root=d:/
# This is the default action to log a user in.
# Default: LoginUser
action.login=LoginUser
# This is the default action to validate whether or not
# a session is valid. For example, if you want to make
# sure if a user has already logged in or not.
# Default: SessionValidator
action.sessionvalidator=sessionvalidator.DefaultSessionValidator
# This is the default action that builds up the AccessControlList
# for the individual users session
# Default: AccessController
action.accesscontroller=AccessController
# This is the default layout to apply.
# Default: DefaultLayout
layout.default=DefaultLayout
# This is the default page module. You probably do not want
# to modify this.
# Default: DefaultPage
page.default=DefaultPage
# This is the file upload max file size.
# Default: 1000000
max.file.size.bytes=1000000
# This is the code that will be used to handle file upload
# Default: org.apache.turbine.util.upload.UploaderOReilly
file.upload.handler=org.apache.turbine.util.upload.UploaderOReilly
# This is the path where files will be uploaded
# Default: .
file.upload.default.path=.
# This is the file server where files will be uploaded for
# mulipart/form-data requests
# Default: none
#file.server=
# This indicates whether Turbine should try to create JNDI contexts.
# Default: false
# contexts=true
# This indicates the action that should be run to create JNDI initial contexts.
# Default: InitContextsAction
action.initcontexts=InitContextsAction
# These are the JNDI context properties.
# Each context's properties are defined by the properties
# beginning with context.name.
# Default: none
#
# Example:
# The following will create a JNDI context named "name" in the
# data.contexts Hashtable. It will point at the RMI registry
# on localhost running on port 1099, and will use
# com.sun.jndi.rmi.registry.RegistryContextFactory as the initial
# context factory:
#
# context.name.java.naming.provider.url=rmi://localhost:1099
# context.name.java.naming.factory.initial=com.sun.jndi.rmi.registry.RegistryContextFactory
# The full path name to a log file
# if not given, commands to log events using org.apache.turbine.util.Log will be ignored.
# This file must already exist and be writable.
# Default: none
#
logfile=d:\Portal\logs\turbine.txt
# The following allows for the creation of multiple logs within turbine.
# Be sure that each turbine.logs entry has a corresponding turbine.log.[logname] entry.
#
# Example:
# turbine.logs=database
# turbine.logs=security
# turbine.log.security=/turbine/logs/turbine-security.log
# turbine.log.database=/turbine/logs/turbine-security.log
# Supplies Turbine with information about the database schema, which can simplify any
# required Peer classes.
# Default: org.apache.turbine.util.db.map.TurbineMapBuilder
database.maps.builder=org.apache.turbine.util.db.map.TurbineMapBuilder
# The message that can be displayed before a user logs in.
login.message=Thank you for your visit. Please log into the system.
# The message that can be displayed when no screen is defined.
login.message.noscreen=There has been an error. Your session is valid but the screen variable is not defined.
# The message that can be displayed when a user enters an incorrect password or username.
login.error=Sorry your username or password is incorrect!
# The message that can be displayed when a user logs out.
logout.message=Thank you for using the system. Please come back soon.
# Whether the web server is able to use SSL. Links in Turbine can check this property to determine
# if SSL can be used. Default=true
#use.ssl=true
use.ssl=false
# Classes for Turbine Services should be defined here.
# Format: services.[name].classname
services.TurbineResourceService.classname=org.apache.turbine.services.resources.TurbineResourceService
services.TurbineLocalizationService.classname=org.apache.turbine.services.localization.TurbineLocalizationService
services.TurbineWebMacroService.classname=org.apache.turbine.services.webmacro.TurbineWebMacroService
services.TurbineFreeMarkerService.classname=org.apache.turbine.services.freemarker.TurbineFreeMarkerService
services.TurbineGlobalCacheService.classname=org.apache.turbine.services.cache.TurbineGlobalCacheService
services.TurbineSchedulerService.classname=org.apache.turbine.services.schedule.TurbineSchedulerService
services.TurbineXmlRpcService.classname=org.apache.turbine.services.xmlrpc.TurbineXmlRpcService
# Default ResourceBundle and language/country codes
# used by the TurbineLocalizationService.
locale.default.bundle=MyBundle
locale.default.language=en
locale.default.country=US
# this will set the charset= portion of the ContentType: header
# leave commented out unless you want to return stuff as a different
# charset
#locale.default.charset=
# Scheduler Service
# Set enabled to true to start the scheduler.
# Default = false
scheduler.enabled=false
# FreeMarker path where templates are stored.
#services.freemarker.path=/path/to/turbine/examples/freemarker
services.freemarker.path=d:\Portal\Apache-Turbine-200000808/src/java/org/apache/turbine/samples/templates/freemarker
# This is used in the UserFactory.validateUser
# to make the password checking secure. passwords must be
# stored in the database as SHA encoded strings. validation
# is done by SHA encoding the password provided by the user
# and then comparing that to whatever is in a database
# This feature is experimental right now.
# Default: false
secure.passwords=false
