Skip to content

Java EE 7 Batch Processing (JSR 352) and SpringSource Batch

Java EE 7 includes many exciting new specifications — one of special interest to my team is the introduction of the Batch Processing (JSR 352) specification, as we have been doing lots of
Spring Batch work lately. So I thought I would share how Spring Batch and Java EE 7 Batch processing compare.

— non-interactive, long-running, bulk-oriented processing
— computationally intensive processing
— option for sequential or in parallel executions
— run ad-hoc, scheduled or on-demand executions

Link to — Differences

Evaluating lightweight Integration Frameworks vs full ESB’s

I recently found a good article which summarizes/compares the strengths of two key players in Integration Framework development (Open Source).

Apache Camel — need support?  Fusesource,  need consulting services/experts? Middleware360 Solutions

Spring Integration Spring Source offers support!, need consulting services/experts? Middleware360 Solutions

Link to Article —  (Spring Integration vs Apache Camel)


GR8Conf Europe 2013 Slides and Videos

GR8Conf Europe 2013 Slides and Videos

Here’s the Slides and Videos link for GR8Conf Europe 2013

Watched a couple of the video’s and they are quite good — “Building Grails Apps with Gradle” and “Grails under the hood” just to call out a couple!


Running Grails on Tomcat 7 — nasty “SEVERE: Error listenerStart” error


Working through an integration project for a client we encountered an issue with Tomcat not being able to start our Grails application which housed our Apache Camel integration routes.

When we started tomcat it would throw a “SEVERE: Error listenerStart” error.

The problem was there was no way of narrowing down the error, as Tomcat wasn’t outputting the root cause of the exception.


  • Grails 2.0.4
  • Tomcat 7.0.34
  • Java 1.6.0_43


After tomcat explodes out the war file

  • stop tomcat
  • go into the following dir <tomcat dir>/webapps/<appname>/WEB-INF/classes 
  • add a file called with the following content below
  • start tomcat
  • should see root cause in logs/<appname>.log (sample)

handlers = org.apache.juli.FileHandler, java.util.logging.ConsoleHandler org.apache.juli.FileHandler.level = FINE

org.apache.juli.FileHandler.prefix = <appname>.

java.util.logging.ConsoleHandler.level = FINE

java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter


SpringOne 2GX in Washington 2012 VIDEOS

SpringOne 2GX in Washington 2012 VIDEOS

Attended the SpringOne 2GX conference this year in Washington.  Was a great time/experience — planning to attend in 2013 via Middleware360 Solutions Inc.

Here are the published Videos from 2012.

Java Date Formatting and Thread Safety

Real Time Saver… 

I was recently on a consulting engagement and requested to make modifications to a high volume JMS implementation (over 14 million messages per day).  One of the tasks was to onboard/integrate a legacy system to the enterprise messaging system.  One of the requirements was to attach two additional message headers as follows (in order to support an audit process already in place):

  1. Date in which the Message was published to the system (format “2013-01-20″ [String])
  2. Time in which the Message was published to the system (format “15:57:31″ [String])

The bridge to the messaging system is multi-threaded, so I needed to find a thread safe way of getting both the Date and Time formatted to the outlined requirement.  As most java developers are aware SimpleDateFormatter is NOT THREAD SAFE!  

After some quick looking and trying I ended up with the following:



Worked Great!


Quick intro to Spring Framework StopWatch Utility

I recently worked on a Spring based project, and was tasked with identifying where the bottleneck was within a set of service calls.  So I utilized the Spring StopWatch implementation to help isolate the issue(s).

This blog entry will provide you with a high level understanding of what the Spring StopWatch utility has to offer.

Heres how I did it…

1. First off I create a Java Project

2. Next I add Spring and Groovy Support to the Project

I am adding the Groovy Language support, so I can keep my code as simple and clean as possible (no need for try/catch, semi-colons, etc…).  Note: you can implement this code in pure Java!

3. Next I make my new Groovy Class

5. Next write the implementation code

  • import org.springframework.util.StopWatch
  • setup the service calls I want to test (repeat as needed)

6. Run the Code and View the output

7. Now taking this to the next level would be to incorporate what I have demonstrated within this post with Spring AOP :-)

Derek Marley


Get every new post delivered to your Inbox.