PARENT_LAST and qname.jar - Websphere

This is a discussion on PARENT_LAST and qname.jar - Websphere ; I have an EAR file which also contains qname.jar. This jar file has QName.class with 3 String parameters for its constructor: public QName(String namespaceURI, String localPart, String prefix) {...} Websphere has a version of qname.jar, with only 2 String parameters ...

+ Reply to Thread
Results 1 to 2 of 2

Thread: PARENT_LAST and qname.jar

  1. PARENT_LAST and qname.jar

    I have an EAR file which also contains qname.jar. This jar file has
    QName.class with 3 String parameters for its constructor:

    public QName(String namespaceURI, String localPart, String prefix)
    {...}


    Websphere has a version of qname.jar, with only 2 String parameters
    for its constructor

    public QName(String namespaceURI, String localPart) {...}

    One way, or actually the only way, to use my version of Qname instead
    of Websphere's is to specify PARENT_LAST on the module level.

    However, even if I did such, I am still getting this error:

    java.lang.NoSuchMethodError: javax.xml.namespace.QName: method
    (Ljava/lang/String;Ljava/lang/String;Ljava/lang/StringV not
    found


    I tried the following, along with the PARENT_LAST configuration:
    1. qname.jar in EAR file only
    2. qname.jar in WEB-INF/lib only
    3. qname.jar in both EAR and WEB-INF/lib

    but same error occurs.

    Is there any other way to specify my version of Qname and not use
    Websphere's? Overriding classloaders maybe?

    Thanks in advance.


  2. Re: PARENT_LAST and qname.jar

    On Apr 23, 11:48 pm, "crash.test.dummy" wrote:
    > I have an EAR file which also contains qname.jar. This jar file has
    > QName.class with 3 String parameters for its constructor:
    >
    > public QName(String namespaceURI, String localPart, String prefix)
    > {...}
    >
    > Websphere has a version of qname.jar, with only 2 String parameters
    > for its constructor
    >
    > public QName(String namespaceURI, String localPart) {...}
    >
    > One way, or actually the only way, to use my version of Qname instead
    > of Websphere's is to specify PARENT_LAST on the module level.
    >
    > However, even if I did such, I am still getting this error:
    >
    > java.lang.NoSuchMethodError: javax.xml.namespace.QName: method
    > (Ljava/lang/String;Ljava/lang/String;Ljava/lang/StringV not
    > found
    >
    > I tried the following, along with the PARENT_LAST configuration:
    > 1. qname.jar in EAR file only
    > 2. qname.jar in WEB-INF/lib only
    > 3. qname.jar in both EAR and WEB-INF/lib
    >
    > but same error occurs.
    >
    > Is there any other way to specify my version of Qname and not use
    > Websphere's? Overriding classloaders maybe?


    I'd stay with the PARENT last but try to see why WebSphere still loads
    its own QName for your application server: check the logfiles and see
    if you find a classpath dump. If you can't find this, activate tracing
    on your application server (I don't know the trace strings on top of
    my head for classloader issues). Then just look at the lines before
    the exception occurs to find out where it is attempting to load the
    class from.

    The only classes that can't be overridden are those in the
    bootstrap.jar file.

    Wkr,
    Sven Vermeulen


+ Reply to Thread