Unsupported major.minor version 49.0

Solution 1:

You have a mismatch between your JVM that you're using to run the .class, and the version of Java used to compile the .class. The JVM running it is an earlier version of the JVM used to compile that class.

As detailed here, you have a version 1.5 class that you're trying to run on an earlier JVM.

EDIT : WAS 5.1 uses JDK 1.4, it would appear.

Solution 2:

Your code was compiled with Java 1.5 and your trying to run it with Java 1.4 ( or lower )

The solution is

a) Run it with Java1.5 ( perhaps using WAS 6+ ) 
b) Recompile it with Java 1.4

or

c) Recompile it with Java.15 but specifying the -target flag ( javac -target 1.4 .... ) 

The point is, you are trying to run 1.5 bytecode in a 1.4 vm

Solution 3:

You have some code compiled with Java 5 features that you're trying to run on a 1.4 or earlier JVM. Check your JAVA_HOME variable is pointing at a 1.5 or later JDK.

Update: In your comment you say you are using WAS 5.1. WAS 5.1 doesn't support Java 5, from memory you need to be on WAS 6.1 to use Java 5 (looking for reference...)

Solution 4:

If you do build your classes with a higher version of the JDK for a minor version of JAVA use the -source and -target switches of the javac compiler. Some customers do need a minor version of Java, e.g. 1.4, while you're developing with 1.6. -source and -target are is remedy for this szenario. You might read the very good paper about byte code vs. source code versioning issues from Alex Buckley.

But since TransformerFactoryImpl is a Sun internal class, check your JAVA_HOME for your container, ut this is container specific.