JPA2 Serialized Blob Never Really Null

This one got me late on a Friday (actually after work so I was doubly frustrated) and is to do with how JPA2 persists attributes of items that are not of basic Java types and which are also not entities. In order words attributes that implement Serializable and get shoved into BLOB fields.Continue reading

Glassfish 3.1 Exception While Loading

I recently switched over to using GlassFish 3.1 and then 3.1.1 from 3.0 and I so wish I hadn’t. The 3.1 release doesn’t seem to have bought any new toys but it’s brought a whole host of bugs and weird behaviour. The latest piece of oddness described here has just wasted a couple of hours of my life so in the hope that you won’t also have to waste your life here’s the problem.Continue reading

Maven Build Problem with JDK 7

I recently upgraded my system from Java 6 to Java 7. Over all I’m really pleased with the improvement I’m seeing from Java 7 but the upgrade has come with a little cost. For some reason I’m getting a failure in NetBeans when I try to deploy one of the web applications that I’m working on.Continue reading

Job Scheduling – The Timer Service

Most non-trivial applications require at least some asynchronous┬áprocessing but direct use of the thread library is not allowed in a JEE container environment. To get around this limitation EJB 2.1 introduced a timer service which, although functional, wasn’t very feature rich. This has finally been fixed in EJB 3.1 which brings a new, annotation driven, timer service to allow asynchronous processing. The new EJB 3.1 timer service takes it’s inspiration from the familiar Unix cron service so it should be familiar to a large number of people.Continue reading

Getting Started with JEE 6 – CDI Qualifiers

In the last article we developed an application that had two alternative implementations of an EJB based QuoteService which unfortunately ran aground because CDI couldn’t choose which of our implementation to use. In this article I’ll discuss how to let the system know which implementation to use by using CDI qualifiers.Continue reading

Getting Started with JEE 6 – First Code

Now that we have created the project it’s time to throw caution to the wind and just start writing some code! Right click on the example.simpleproject node under Source Packages and select new… then Java Class. Call the class QuoteBean or some such – it has been common to call classes such as this SomethingBean but that practice seems to be falling by the wayside as so many classed now follow bean patterns.Continue reading