Hibernate can be a bad choice for client server models

When writing a client-server model in Java it is almost always described using an Object Relational Mapping tool such as Hibernate.There is a lot of pressure to use Hibernate to keep up with the latest technologies. However this causes a lot of problems if the data management is provided by the wrong framework such as BlazeDS. BlazeDS is easy to get running and can be OK for a tiny project, but using something like GraniteDS or maybe LCDS is the only way to go in the longer term. Without this life can be miserable, and I only found out way to late. I now have to rewrite a lot of my code to work around the issues caused by my choice of technologies. I honestly believe that I would have been much, much better using the standards from a decade ago and getting my own Connection manually, handling the Query, the ResultSet and manually re-hydrating my Object. Sometimes the latest technologies are just not progress!

Read More

Apache, Tomcat, CAS and certified SSL for free on Linux.

I found getting the Apache HTTP server, the Tomcat Servlet Container, Jasig's Central Authentication Service and SSL all configured and working together a complete pain in the arse. This documents a way which works for me without throwing any errors and with the minimum of effort. Even so there is still quite a bit to understand but at least it is now all in one place rather than grabbing small smatterings of information from different places overt the internet (thanks to everyone who has put up the information I have used to compile this).

Read More

Struts2 table with paging ability provided by the pager tag library

I couldn't find any really good examples of using the Struts2 table tag plugin and so decided to provide one. I also didn't really like the implementation of the pager tag that comes with it and so decided to incorporate the pager tag library from JSPTags instead. While this does tie your action to the HttpServletRequest object I found the tag to be easier to understand and use than the one provided by the Struts2 table tag. I also think it is probably possible to not tie yourself to the HttpServletRequest object but I dodn't have that requirement.

Read More

Struts2 s:include and passing parameters

While using the Struts2 <s:include ... > tag with the <s:param ... > I found that I had to convert from Struts2 into JSP and then back into Struts2. This is how I did it and I haven't found a better way so far, the documentation suggested that I am doing it the right way but there may be a more Struts2-ey way.

Read More

Struggling with the <s:action .. /> tag

This was partly my fault but it took me several hours to work out how to use this tag. I found the information on the Struts2 wiki misleading and although it worked a better method is available on the Nabble forums. It was only after I wrote this post that I found out the best way to use this tag. I have updated this post to reflect the improved method.

Read More

Struggling with struts iterator tag and Object[] array

It took me a good 4 hours to work out how to iterate over an Object[] using the Struts2 <s:iterate ... />. I am hoping that either you would have had the same problem or it was because I am drunk and tired! Anyway, this is how to do it.

Read More

Struts2 Spring plugin can be called multiple times at startup

This gave me some trouble as the multiple calls were overriding my calls to set the org.apache.struts2.spring.StrutsSpringObjectFactory setApplicationContext() method. It just happened that my call came in the middle of the two initialisation calls. I should probably dig deeper and find out where the second call comes from but I came up with this solution along the way and have stuck with it for now.

Read More

Adding support for the canonical value of the rel attribute of the link tag in Apache Roller blogging software

I wanted to add the newly supported <link rel="canonical" href="www.example.com/handle/post_title"/> value to my blogs in order to prevent issues with canonicalisation. I had to dig a little to find out how the URL is generated using Apache Roller but this is the code you need.

Read More

Struts 2.0.11 datetimepicker while using a hyphen as the date separator

I had a problem submitting the Struts 2.0.11 <s:datetimepicker ... /> tag to my action when I used hyphens as the display format separator. Luckily the answer is simply to use / instead.

Read More

Adding an SSL certificate to your java keystore in Linux

I found it difficult to get specific information on how to do this so I have detailed what worked for me. I was doing this in order to get Jasigs Central Authentication Server integrated with Tomcat. The error I was trying to solve was:

javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

Read More

Loading a Spring configuration file programitically

I was using the Java Plugin Framework that helped provide plugin functionality for my web application. The plugins needed to be Spring enabled so they could leverage the web applications code base but as they were only loaded at runtime the applicationContext.xml of the plugin had to be loaded programitically.

Read More

Using the Java Plugin Framework in a web application

The Java Plugin Framework (JPF) is an excellent framework for developing plugin for either a desktop application or web application using Java. The problem is that there is no support and the plugin no longer seems to be in development. The only other alternative is OSGI which for many projects will just be too complicated.

Read More

Getting the stack trace from an exception in Java

Getting the StackTrace from an Java Exception wasn't as easy as I had hoped. It needed a couple of extra steps that I hadn't anticipated.

Read More

Struts 2 and SSL switching (part 2)

Setting up the Struts2 SSL switching plugin (part 2) for automatic SSL re-direction.

Read More

Struts 2 and SSL switching (part 1)

Adding SSL switching support to Struts2 using the SSL Switching plugin.

Read More