Tuesday, February 12, 2013

Troubleshooting IBM WebSphere ESB Development: Cannot retrieve information for class in XSLT

Working on a mediation module in IBM Integration Designer 7.5.1, I was testing my module continuously, and all of the sudden following stacktraces  were showing in the SystemOut.log

[12/02/13 15:10:23:802 CET] 00000047 StaticMethodI W com.ibm.xltxe.rnm1.xylem.instructions.StaticMethodInvocationInstruction typeCheck IXJXE0678E: [ERR 0614] The processor has encountered an internal error condition.  Please report the problem and provide the following information: Cannot retrieve information for class com.blogger.arendatwork.DateTool and method formatDate
java.lang.NullPointerException
at com.ibm.xltxe.rnm1.xylem.instructions.StaticMethodInvocationInstruction.typeCheck(StaticMethodInvocationInstruction.java:443)
at com.ibm.xltxe.rnm1.xylem.instructions.LetBaseInstruction.typeCheck2(LetBaseInstruction.java:245)
at com.ibm.xltxe.rnm1.xylem.instructions.LetBaseInstruction.typeCheck(LetBaseInstruction.java:224)
at com.ibm.xltxe.rnm1.xylem.instructions.ChooseInstruction.typeCheck(ChooseInstruction.java:247)
at com.ibm.xltxe.rnm1.xylem.instructions.LetBaseInstruction.typeCheck2(LetBaseInstruction.java:245)
at com.ibm.xltxe.rnm1.xylem.instructions.LetBaseInstruction.typeCheck(LetBaseInstruction.java:224)
at com.ibm.xltxe.rnm1.xylem.Function.typeCheck(Function.java:485)
at com.ibm.xltxe.rnm1.xylem.Function.ensureTypechecked(Function.java:981)
at com.ibm.xltxe.rnm1.xylem.Function.instantiate(Function.java:772)

Republishing or restarting the server brought no solace.

There was only one xslt map that used the specified java class, so I had a look at that map. 


Trying to test the map using the build in test map function,failed, giving a similar message. Now that I used test map, the compiler finally marked errors in the xslt map file. Turned out that by adding a submap in the map, the editor had deleted the import of the java class. Somehow this gave no errors, and the module could be deployed without problems. At runtime the class could not be found for the mapping, and stacktraces were printed. However, this does not fail your mediation.


It is a good practice to test your xslt mapping locally, this will compile and test your xslt file before deploying, and thus saves a lot of time debugging and troubleshooting the transformation.


No comments:

Post a Comment