PoemServlet Test

This servlet tests your melati/poem configuration.

If you can read this message, it means that you have successfully created a POEM session, using the configurations given in org.melati.LogicalDatabase.properties.

Note that this servlet does not initialise a template engine.

The PoemContext

The PoemContext enables access to a database, a table, a record and a method.

Your PoemContext is set up as: logicalDatabase = melatitest, table = null, troid = null, method = Exception.

Method:Exception

The PoemContext can be setup using the servlet's PathInfo.

Tables in the Database melatitest
User A registered user of the database
Group A group to which registered users of the database can belong
Capability A capability which users can be required to possess before accessing data
Group membership A record that a given user is a member of a given group
Group capability A record that users belonging to a given group possess a given capability
Table Configuration information about a table in the database
Column Configuration information about a column in the database
Table type A category under which a table can be classified
Setting A configurable setting for the application

File upload

A PoemFileDataAdaptor obtains the name of the file upload directory from a setting in the settings table.

You can upload a file here:

This will save your file in a file at a path specified in the database's Settings table.

Try saving a file in your /tmp directory here.

Melati Exception handling

An exception is rendered to the output.

An access violation provokes a login challenge.

You curently have the access token _guest_.

< Melati Error

Melati Error

Reported from ConfigServlet

An error has occured in the application that runs this website, please contact Melati database administrator , with the information given below.

org.melati.util.MelatiBugMelatiException: An apparent bug in Melati: It got caught!
	at org.melati.test.PoemServletTest.doPoemRequest(PoemServletTest.java:228)
	at org.melati.servlet.PoemServlet$1.run(PoemServlet.java:247)
	at org.melati.poem.Database$3.run(Database.java:723)
	at org.melati.poem.PoemThread.inSession(PoemThread.java:159)
	at org.melati.poem.Database.perform(Database.java:721)
	at org.melati.poem.Database.inSession(Database.java:785)
	at org.melati.servlet.PoemServlet.doConfiguredRequest(PoemServlet.java:228)
	at org.melati.servlet.ConfigServlet.doGetPostRequest(ConfigServlet.java:172)
	at org.melati.servlet.ConfigServlet.doGet(ConfigServlet.java:143)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
	at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:502)
	at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:363)
	at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
	at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
	at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766)
	at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:417)
	at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)
	at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
	at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
	at org.mortbay.jetty.Server.handle(Server.java:324)
	at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:534)
	at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:864)
	at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:533)
	at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:207)
	at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:403)
	at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)
	at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:522)