• 3 replies
  • Latest Post - ‏2010-03-09T15:19:07Z by dustmachine
1 Post

Pinned topic java.lang.VerifyError DatatypeConverterImpl

‏2009-09-22T20:45:01Z |
I have the following error when deploying my war...

Caused by: java.lang.VerifyError: JVMVRFY013 class loading constraint violated; class=com/sun/xml/bind/DatatypeConverterImpl, method=parseQName(Ljava/lang/String;Ljavax/xml/namespace/NamespaceContext;)Ljavax/xml/namespace/QName;, pc=0
at java.lang.J9VMInternals.verifyImpl(Native Method)
at java.lang.J9VMInternals.verify(
at java.lang.J9VMInternals.initialize(
at com.sun.xml.bind.v2.runtime.JAXBContextImpl.<init>(

I've read multiple posts indicating this is probably due to a .jar conflict. My question is - how do I go about figuring out how to resolve that? Do I rip out the jar? Replace the jar? Something else?

I have the module and the classloading strategies set to PARENT LAST. So that means it should be pulling MY .jars first, right? This same war deploys in Jboss and so is it possible that Jboss is including a .jar that is helping out this error while WebSphere does not include this jar out of the box? Is it looking for additional jars in my .war that aren't there?

How do I start figuring out the problem? Any advice?
Updated on 2010-03-09T15:19:07Z at 2010-03-09T15:19:07Z by dustmachine
  • SystemAdmin
    11979 Posts

    Re: java.lang.VerifyError DatatypeConverterImpl

    Drop the trace on lady4j or another tool and it will find the cross-reference for you. Or you can rip the JAR by hand of course... XD.

  • dustmachine
    2 Posts

    Re: java.lang.VerifyError DatatypeConverterImpl

    It's most likely related to jaxb and Java 6 (websphere 7, right?). See if you're packaging a jaxb jar with your war. Another thing to check is if you're compiling against a Java 5 jaxb jar from somewhere (geronimo?) and then deploying the war without it (so then websphere would use the jaxb bundled with JDK 6).

    Good luck.
  • dustmachine
    2 Posts

    Re: java.lang.VerifyError DatatypeConverterImpl

    One more followup -- you asked "How do I start figuring out the problem?" -- the method I use on a "class loading constraint violation" is to:
    1. look for the types in the error message (such as "DatatypeConverterImpl")
    2. check how many classes with the same name are on my classpath (CTRL-SHIFT-T in Eclipse, "Open Type...") and which jars they are coming from
    3. check how many of those jars I'm including in the war/ear I'm deploying.

    The worst is if/when I'm deploying jars that contain duplicate implementations of classes that are already included by JDK 1.6.0. (for example, some stuff in jaxb-api.2.1.jar) In theory they should all be the same, but why take the risk.