October 06, 2005 01:58
Programming, Java
Still working out the kinks in AppFuse.

I stripped out a bunch of stuff. I don't need most of the security stuff, the clickstream listener, etc. Don't need the URL rewrite filter. Don't need the export filter. And the gzip filter just seems silly to me. That's the sort of thing I hand off to Apache -- mod_gzip or mod_compress will do a much better job than something in the web application.

I get WebWork actions (described here), but I don't know why BaseAction isn't declared abstract. And why is the webwork servlet mapped to *.html rather than *.action? And why is there an *.html extension, considering that there are only jsp pages there? If there's some magic that converts JSP pages into HTML pages automatically, I'm not able to find it. Maybe it's generated automatically by xDoclet. I can't find anything in the Wiki about it.

Okay. I can get a basic index.jsp page up. Let's try something out of the webwork tutorial. The hello page shows up, but what's this:

java.lang.NoClassDefFoundError: dori/jasper/engine/JRException
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Class.java:242)
	at com.evermind[Orion/2.0.6 (build 11252)]._jo.loadClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
	at com.opensymphony.util.ClassLoaderUtil.loadClass(ClassLoaderUtil.java:96)
	at com.opensymphony.xwork.config.providers.XmlConfigurationProvider.addResultTypes(XmlConfigurationProvider.java:235)
	at com.opensymphony.xwork.config.providers.XmlConfigurationProvider.addPackage(XmlConfigurationProvider.java:203)

Some googling tells me that this is bug XW-224. Which says that webwork wants the Jasperreports library. Which isn't included with WebWork.

I look up the WebWork documentation for dependencies. It tells me the dependencies are in CVS.

Add the jasperreports library and redeploy the application.

Now I get this:

java.lang.NullPointerException
        at com.opensymphony.xwork.DefaultActionProxyFactory.setupConfigIfActionIsCommand(DefaultActionProxyFactory.java:58)
        at com.opensymphony.xwork.DefaultActionProxyFactory.createActionProxy(DefaultActionProxyFactory.java:43)
        at com.opensymphony.webwork.dispatcher.ServletDispatcher.serviceAction(ServletDispatcher.java:227)
        at com.opensymphony.webwork.dispatcher.ServletDispatcher.service(ServletDispatcher.java:199)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:336)


Lovely. But what's this? I'm still getting the original NoClassDefFoundError error.

Then I look inside the jasperreports-1.0.2.jar file. All the package names are different. There's no dori.jasper.engine package in there at all. It's all net.sf.jasperreports.* instead. There's no way I can fix this with the current library. It's not compatible with the stable Webwork version I'm using.

Time to call it a night.

« Eclipse Freeze | Home | AppFuse Log »

name
url