Classloader question

Hello,
I'm running WLS7.0.
I have an entitybean for which I defined a business interface
EbusinessInterface that is package protected. I have my ejb jar part
of the classpath when I start my server.
When I try to make a rmi call from a client to access this bean, I
have the following error:
java.lang.IllegalAccessError: try to access class
com.foo.EbusinessInterface from class com.foo.EBean_1ipw_EOImpl_WLSkel
What I understand about that is that even if my ejb jar is part of the
classpath, the EBean_1ipw_EOImpl_WLSkel class ,the skeleton that is
generated, is loaded by the ejb classloader. Therefore, it cannot
access the EbusinessInterface that was loaded by a parent classloader
(due to the package protected visibility).
Am I right ?
Please don't tell me that I should not put the ejb jars as part of the
classpath, I know that, it's simply that I try to understand this
error in this specific context.
Thank you,
Mathieu

Hello Mathieu,
Refer to http://dev2dev.bea.com/articles/musser.jsp for more information and best
practices regarding classloader issues.
Best regards,
Ryan LeCompte
[email protected]
http://www.louisiana.edu/~rml7669
[email protected] (Mathieu) wrote:
Hello,
I'm running WLS7.0.
I have an entitybean for which I defined a business interface
EbusinessInterface that is package protected. I have my ejb jar part
of the classpath when I start my server.
When I try to make a rmi call from a client to access this bean, I
have the following error:
java.lang.IllegalAccessError: try to access class
com.foo.EbusinessInterface from class com.foo.EBean_1ipw_EOImpl_WLSkel
What I understand about that is that even if my ejb jar is part of the
classpath, the EBean_1ipw_EOImpl_WLSkel class ,the skeleton that is
generated, is loaded by the ejb classloader. Therefore, it cannot
access the EbusinessInterface that was loaded by a parent classloader
(due to the package protected visibility).
Am I right ?
Please don't tell me that I should not put the ejb jars as part of the
classpath, I know that, it's simply that I try to understand this
error in this specific context.
Thank you,
Mathieu

Similar Messages

  • Ejb deployment - classloader question

    Hi Guys
    I have a very basic question regarding EJB deployment in Weblogic 6.1 sp2.
    Is it possble to create an EAR file such that -
    1>it contains a WAR file [of servlets/jsps/client classes] - A
    2>a jar file containing our core server classes[not EJBs] - B
    3>a jar file containing EJBs - C
    here A and C are definitely getting loaded by different class loaders - I want
    the classloader for B to be parent of the classloaders for A and C - so that both
    A and C can see B. - is this possible by some EAR/Weblogic specific way.
    OR
    the best solution is to place the B in the main classpath and deploy the C and
    A in an EAR?
    thanks
    Anamitra

    Inline.
    Anamitra wrote:
    Hi Guys
    I have a very basic question regarding EJB deployment in Weblogic 6.1 sp2.
    Is it possble to create an EAR file such that -
    1>it contains a WAR file [of servlets/jsps/client classes] - A
    2>a jar file containing our core server classes[not EJBs] - B
    3>a jar file containing EJBs - C
    here A and C are definitely getting loaded by different class loaders - I want
    the classloader for B to be parent of the classloaders for A and C - so that both
    A and C can see B. - is this possible by some EAR/Weblogic specific way.Made possible by placing B in the ear at the root level and referring to B with the
    Class-Path manifest directive in the ejb jar file for C. This will put B in the ejb
    classloader's classpath making it visible to C and to A since the classloader for C
    is the parent of the classloader for A. Which, is the recommended way.
    >
    OR
    the best solution is to place the B in the main classpath and deploy the C and
    A in an EAR?
    This works, but the classfiles in B are now static for the uptime of the server. If
    you want to make changes in B, you must restart the server. If you configure it the
    way described above, you can reload the B classes by redeploying the application ear.
    >
    thanks
    AnamitraHere is the link with all of the info:
    http://edocs.bea.com/wls/docs61/programming/packaging.html#1029830
    Bill

  • EAR deployment classloader Question: test fails

     

    "Anamitra" <[email protected]> wrote in message
    news:[email protected]...
    >
    Hi Ajay
    based on your feedback I tried a test - by creating an EAR which contains
    1>test1.jar - an EJB [ the manifest file having the test22.jar]
    2> test22.jar another EJB
    3> test2.jar - a common jar[ the manifest file having the test2.jar]why does this point to itself ?
    4> testservlet.war - a servlet file in a war
    Weblogic deploys them all - I can invoke the EJBs too. But when I try toinvoke
    the servlet from the browser - it says the test.TestServlet class notfound! -
    this is because the testservlet.jar file which contains this class should be
    in WEB-INF/lib of the .war file.
    but I see the servlet war deployed from the console! - is this a bug? I amattaching
    the EAR file - its pretty self contained and you can try it out in urweblogic
    env [6.1 sp3 win2k].
    thanks
    Anamitra
    "Ajay" <[email protected]> wrote:
    Anamitra <[email protected]> wrote in message
    news:[email protected]...
    Hi
    So what you say can be summed up as
    1> all EJB jars in the same EAR gets loaded by the same classloader.
    2>So if in the jar manifest file I write the CLASSPATH to the B thenthe
    classlaoder
    for the EJBs will also load B.
    3> Since the WAR classloader is child to the EJB classloader - theWAR can
    also
    see the same B.
    Yes you are correct.
    Now do I have to have the manifest entry[CLASSPATH] for every EJB jartha
    I make?
    If the same classloader is used for all the jars in the same EAR Ishould
    not
    need to do that - right?
    Is this feature changing in 7.x?
    thanks
    Anamitra
    "Ajay" <[email protected]> wrote:
    Hi
    You can refer to B.jar from the War and the EJB jar through the
    Manifest
    files
    In EJB jar and WebApp jar manifest files you can have
    Class-Path: B.jar
    In 6.1sp2 the EJB classloader is same as the Application ClassLoader.
    All
    EJB's within the EAR are loaded by the same Classloader. WebAppClassLoader
    is the child Classloader of the Application Classloader.
    Hope this helps
    Ajay
    Anamitra <[email protected]> wrote in message
    news:[email protected]...
    Hi Guys I have a very basic question regarding EJB deployment in
    Weblogic
    6.1 sp2.
    Is it possble to create an EAR file such that -
    1>it contains a WAR file [of servlets/jsps/client classes] - A
    2>a jar file containing our core server classes[not EJBs] - B
    3>a jar file containing EJBs - C
    here A and C are definitely getting loaded by different class
    loaders
    - I
    want
    the classloader for B to be parent of the classloaders for A and
    C
    - so
    that both
    A and C can see B. - is this possible by some EAR/Weblogic specificway.
    OR the best solution is to place the B in the main classpath and
    deploy
    the C
    and A in an EAR?
    thanks Anamitra

  • ClassLoading Question

    Hi All,
    I have a quick question to be put before you.I have a package which is having two classes say Class A and Class B.I am making some changes in the Class B which reflect in this way.
    class Bextends ClassLoader
    private static String str[]=null;
    Class klass,klass1;
    Object entity;
    /* A default Constructor for the above super class*/
    public ClassLoad(){}
    public String Do(){
    try
    B load=new B();
    /*Loads the Class by using loadClass member function for the respective class provided*/
    klass=load.loadClass("com.sun.java.A",true);
    System.out.println("Class Loaded is..:"+klass);
    String s=klass.getName();
    System.out.println("Name of the Loaded Class is..:"+s); /*Where com.sun.java is the package name*/.
    Now the Question is when running Class B due to that load.loadClass-Class A is getting loaded and i am able to see it by printing it at the next line.It shows com.sun.java.A has been loaded successfully.Now i want to run Class A from the same code where i am i.e. after Class is loaded..What do i need to do...??
    I want any other way apart from Saying as use extends keyword....
    regards,
    Viswanadh

    Hi All,
    I have a quick question to be put before you.I have a package which is having two classes say Class A and Class B.I am making some changes in the Class B which reflect in this way.
    class Bextends ClassLoader
    private static String str[]=null;
    Class klass,klass1;
    Object entity;
    /* A default Constructor for the above super class*/
    public ClassLoad(){}
    public String Do(){
    try
    B load=new B();
    /*Loads the Class by using loadClass member function for the respective class provided*/
    klass=load.loadClass("com.sun.java.A",true);
    System.out.println("Class Loaded is..:"+klass);
    String s=klass.getName();
    System.out.println("Name of the Loaded Class is..:"+s); /*Where com.sun.java is the package name*/.
    Now the Question is when running Class B due to that load.loadClass-Class A is getting loaded and i am able to see it by printing it at the next line.It shows com.sun.java.A has been loaded successfully.Now i want to run Class A from the same code where i am i.e. after Class is loaded..What do i need to do...??
    I want any other way apart from Saying as use extends keyword....
    regards,
    Viswanadh

  • Classloading questions

    We have a Constants class in our app that has a bunch of public static final variables,
    used throughout the app. Within this class there is also a handful of variables
    which are set upon startup by a servlet. These are only public static variables,
    I think because you can't have a final variable that's not initialized or in every
    constructor. (I feel like I'm missing some Java basics here, if that's the case
    please point it out; either that or possible alternate designs). These variables
    are parameters that differ by environment; they are defined in our web.xml, read
    by the startup servlet, and then assigned in the Constants class via ServletConfig.
    The issue with the classloading is that when I make a change to and re-deploy
    another class, the Constants class is apparently reloaded as well, and the variables
    that were assigned at startup have be reset to null.
    This class that I'm making changes to does NOT use the Constants file.
    I've tried placing the Constants class in the system classpath so that it's NOT
    reloaded, but that's not working either.
    This has me thinking of simply re-designing a few things, but the question still
    remains: why is this Constants class being re-loaded?
    BTW, this is an older, non-J2EE-compliant app. It's simply using JSPs/Servlets.
    I don't have anything packaged into jars, wars, or ears. It's all in an exploded
    directory structure. I'm trying to slowly make it j2ee compliant.

    You should be able to verify that the Constants class is being reloaded by putting
    adding -verbose on the java command to start weblogic. It should show the Constants.class
    being unloaded.
    "Quantos Quattro" <[email protected]> wrote:
    This has me thinking of simply re-designing a few things, but the questionstill
    remains: why is this Constants class being re-loaded?At least in WL7, WL provides a separate class loader for each web
    application. Not sure exactly what happens in exploded format, but you
    are
    probably finding something similar. Your constants class is probably
    being
    loaded by the same classloader as that for your web application. When
    you
    redeploy, it's probably discarding this classloader and all its classes,
    and
    created another one, hence you are seeing the reload of your constants
    class.
    Regards,
    Jon

  • Deploying EAR and EJB (ClassLoader Question)

    Hi,
    Have a few queries. Appreciate any quick answers.
    (a) To deploy a EAR or EJB jar to WebLogic server, is it necessary to include the jar location specifically in $CLASSPATH?
    I think not. Am I correct?
    (b) Is the bean/EAR deployed at module level? Is there a setting for this - is it at bean deployment descriptor? Where can I find this?
    If (say) I need to update an EJB, do I un-deploy, update and re-deploy it?
    Or must I restart the entire WLS container?

    --> An EAR includes one or more EJB files. You don't need to specify the location because it's contained at application.xml file inside the EAR.
    --> Each bean has a deployment descriptor. You can see it at META-INF directory
    If you need to update an EJB (that it is not part of and EAR), you are right.
    The WLS container not need to be restarted.
    Jin

  • Sevlet ClassLoading Question

    I have a Servlet that keeps a reference to an instance of a Singleton class that does something when the servlet is created and when the servlet is destroyed. Also that servlet class has the doService method available to get some information about the singleton but whenever I call that method (Using a url GET method) the Singleton is created again like it wasn't loaded from the Servlet's init method but I can see from the logs files that it was. Am I missing something?
    Thanks,
    Johann

    I have a Servlet that keeps a reference to an instance of a Singleton class that does something when the servlet is created and when the servlet is destroyed. Also that servlet class has the doService method available to get some information about the singleton but whenever I call that method (Using a url GET method) the Singleton is created again like it wasn't loaded from the Servlet's init method but I can see from the logs files that it was. Am I missing something?
    Thanks,
    Johann

  • Classloader Again

    Sorry to bring up the classloader questions again and again. I am a bit confused by the language used in the documentation when it says things like each application has its own universe etc. And also, the following statement in the docs,
    "The exception is the Web Classloader, which follows the delegation model in the Servlet specification. The Web Classloader looks in the local classloader before delegating to its parent. You can make the Web Classloader delegate to its parent first by setting delegate="true" in the class-loader element of the sun-web.xml file. For details, see the Developer's Guide to Web Applications."
    I wanted to see if some one could answer the following. (These are very easy for me to test. But, at this point I have a very "rich" system classpath that includes a lot of classes/jars etc. Makes it harder to see a clear picture. And I want to see if what I am observing the correct behavior))
    I have a com.xyz.myClass packaged in utils.jar. I also have a test servlet and jsp page. The test servlet makes a call to com.xyz.myClass
    A) If I individually deploy my test servlet/jsp as a .WAR, where should I place utils.jar?
    (If I had utils.jar in the system classpath, is the WAR supposed to see it?)
    B) What if the a

    I have a com.xyz.myClass packaged in utils.jar. I also have > a test servlet and jsp page. The test servlet makes a call to > com.xyz.myClass
    A) If I individually deploy my test servlet/jsp as a .WAR,
    where should I place utils.jar?You can place it in any one of a number of locations:
    - within the WAR under WEB-INF/lib/. This location would be the most conventional, self-contained approach.
    - under $INSTANCE_ROOT/lib/. This location would mean that the same "version" the library would be shared by all apps (assuming that the other apps did not include their own copy).
    - under classpath-suffix setting for the instance. Similar to using $INSTANCE_ROOT/lib/, but you have to specify the JAR file name explicitly.
    (If I had utils.jar in the system classpath, is the WAR
    supposed to see it?)Yes.
    B) What if the above .WAR was part of a larger .EAR and I > deploy the .EAR instead of the .WAR? (Should utils.jar
    be in system class path or the web-inf/lib of the .WAR ?)Either.
    C) What if the .EAR above also had a few EJBs that
    accessed com.xyx.myClass ?- Self-contained approach would be to package the JAR file in the EAR and use the manifest classpath approach to denote its location for both the EJB JAR module and the WAR module.
    - Alternatively, you could either place the library either under $INSTANCE_ROOT/lib/ or specify the library in the classpath-suffix setting in the instance configuration.
    A good example of when it makes sense for the web classloader to look in the local classloader before delegating upward to the system classloader is the case in which your web application depends on a particular JAXP compatible XML parser that is different from that which is being used by the application server infrastructure. In this case, you would want the XML parser embedded in your web app or EAR to take precedence over the other XML parser packaged in the system classpath for use by the app server.
    Chris

  • Apache fop classloading problem in EAR file

    HI,
    I am deploying a big EAR in WL 6.1 on solaris and I am bundling FOP 1.20.3
    within it, I am
    also including avalon 4.0 and logkit 1.0 jars within it as they are needed by
    fop.jar. Whenever I
    try to construct a "Driver()" class I get a NoClassDefFoundError on the org.apache.framework.logger.Loggable
    interface that it needs. The strange thing is that when I do the following :
    try {
    ClassLoader cl = this.getClass().getClassLoader();
    cl.loadClass("org.apache.avalon.framework.logger.Loggable"); // .........this
    works OK
    // the following .... fails with NoClassDefFoundError on Loggable
    org.apache.fop.apps.Driver d = new org.apache.fop.apps.Driver();
    } catch (Throwable t) {
    cat.error("failed:", t);
    It DOES work when I put the necessary jars on the server startup class path,
    however it would obviously be
    better to be able to bundle the 3rd party jars within my EAR ....... I know this
    seems like it would be a general
    weblogic classloader question - but I have had no problems with any other 3rd
    party jars that are similar to
    this one.
    Has anyone else had these kinds of problems ?
    Cheers,
    Brian.

    Dear Brian,
    It looks to me like org.apache.fop.apps.Driver might be doing a
    Class.forName() for the Loggable class. If Class.forName() does not pass a
    specific classloader, the system classpath loader is used; which is why it
    works when you put the classes on the system classpath.
    Best regards,
    Timothy Potter
    Senior Software Engineer
    eCommerce Server Division
    BEA Systems, Inc.
    "Brian Dowd" <[email protected]> wrote in message
    news:3c8c9ba0$[email protected]..
    >
    HI,
    I am deploying a big EAR in WL 6.1 on solaris and I am bundling FOP1.20.3
    within it, I am
    also including avalon 4.0 and logkit 1.0 jars within it as they are neededby
    fop.jar. Whenever I
    try to construct a "Driver()" class I get a NoClassDefFoundError on theorg.apache.framework.logger.Loggable
    interface that it needs. The strange thing is that when I do thefollowing :
    >
    try {
    ClassLoader cl = this.getClass().getClassLoader();
    cl.loadClass("org.apache.avalon.framework.logger.Loggable"); //.........this
    works OK
    // the following .... fails with NoClassDefFoundError on Loggable
    org.apache.fop.apps.Driver d = new org.apache.fop.apps.Driver();
    } catch (Throwable t) {
    cat.error("failed:", t);
    It DOES work when I put the necessary jars on the server startup classpath,
    however it would obviously be
    better to be able to bundle the 3rd party jars within my EAR ....... Iknow this
    seems like it would be a general
    weblogic classloader question - but I have had no problems with any other3rd
    party jars that are similar to
    this one.
    Has anyone else had these kinds of problems ?
    Cheers,
    Brian.

  • OC4J CLassloading Information

    gday All --
    Classloading questions are quite common on this forum. It's a complicated area and each container will more than likely have slightly different nuances in how it works.
    We have a very good technical paper which explains general classloading and the specifics of the implementation used in OC4J available on OTN.
    This document usually is able to provide answers to questions and issues that arise.
    http://otn.oracle.com/tech/java/oc4j/pdf/ClassLoadingInOC4J_WP.pdf
    It's a great document so I'd really like to encourage you to have a good look at it when you are thinking about class packaging, loading, etc.
    I'll put a link to it on the front page of the OC4J OTN area so it's more readily accessible.
    cheers
    -steve-

    Here is the response I got through paid support:
    "There are at least 4 class loaders within OC4J:
    (a) system class loader: e.g. for java.util.Date
    (b) application launcher class loader: classes from oc4j.jar when oc4j is started with "java -jar oc4j.jar"
    (c) server wide class loader: e.g. jar from j2ee/home/lib
    (d) web app class loader: e.g. classes from WEB-INF
    [They are hirarchical in some sense.]"
    I assume the bean container is between c and d, but don't quote me on it.

  • Apache-fop classloading error ....

    HI,
    I am deploying a big EAR in WL 6.1 on solaris and I am bundling FOP 1.20.3
    within it, I am
    also including avalon 4.0 and logkit 1.0 jars within it as they are needed by
    fop.jar. Whenever I
    try to construct a "Driver()" class I get a NoClassDefFoundError on the org.apache.framework.logger.Loggable
    interface that it needs. The strange thing is that when I do the following :
    try {
    ClassLoader cl = this.getClass().getClassLoader();
    cl.loadClass("org.apache.avalon.framework.logger.Loggable"); // .........this
    works OK
    // the following .... fails with NoClassDefFoundError on Loggable
    org.apache.fop.apps.Driver d = new org.apache.fop.apps.Driver();
    } catch (Throwable t) {
    cat.error("failed:", t);
    It DOES work when I put the necessary jars on the server startup class path,
    however it would obviously be
    better to be able to bundle the 3rd party jars within my EAR ....... I know this
    seems like it would be a general
    weblogic classloader question - but I have had no problems with any other 3rd
    party jars that are similar to
    this one.
    Has anyone else had these kinds of problems ?
    Cheers,
    Brian.

    I have a similar problem, I tried to package the fop library with an ear also. I think it has to do with System properties. The fop library loads it's parser class from a system property, the class it finds is a weblogic library and that's when the problem begins. I was never able to solve this, but hope this gives you starting point. Keep us abreast of your findings.

  • Apache FOP getClassLoader problem

    I have loaded Apache FOP 1.1 into an 11g database, and a driver class to retrieve XML/XSLT and save PDF as CLOBs. When I try to execute this in the DB, I get
    ORA-29532: Java call terminated by uncaught Java exception: javax.xml.transform.TransformerException: java.security.AccessControlException: the Permission (java.lang.RuntimePermission getClassLoader) has not been granted to ProtectionDomain  (null <no signer certificates>)
    com.sun.org.apache.xalan.internal.xsltc.trax.TemplatesImpl$TransletClassLoader@98644313
    <no principals>
    java.security.Permissions@b0558743 (
    (java.lang.RuntimePermission modifyThreadGroup)
    (java.lang.RuntimePermission createSecurityManager)
    (java.lang.RuntimePermission modifyThread)
    (java.lang.RuntimePermission preferences)
    (java.lang.RuntimePermission exitVM)
    (java.util.PropertyPermission user.language write)
    (java.util.PropertyPermission * read)
    (oracle.aurora.security.JServerPermission LoadClassInPackage.*)
    It looks like the SecurityManager is only looking at PUBLIC permissions, even though the FOP classes were loaded into a schema with 'SYS:java.lang.RuntimePermission', 'getClassLoader', ''.
    Any ideas on how to get around this?
    Thanks!

    Dear Brian,
    It looks to me like org.apache.fop.apps.Driver might be doing a
    Class.forName() for the Loggable class. If Class.forName() does not pass a
    specific classloader, the system classpath loader is used; which is why it
    works when you put the classes on the system classpath.
    Best regards,
    Timothy Potter
    Senior Software Engineer
    eCommerce Server Division
    BEA Systems, Inc.
    "Brian Dowd" <[email protected]> wrote in message
    news:3c8c9ba0$[email protected]..
    >
    HI,
    I am deploying a big EAR in WL 6.1 on solaris and I am bundling FOP1.20.3
    within it, I am
    also including avalon 4.0 and logkit 1.0 jars within it as they are neededby
    fop.jar. Whenever I
    try to construct a "Driver()" class I get a NoClassDefFoundError on theorg.apache.framework.logger.Loggable
    interface that it needs. The strange thing is that when I do thefollowing :
    >
    try {
    ClassLoader cl = this.getClass().getClassLoader();
    cl.loadClass("org.apache.avalon.framework.logger.Loggable"); //.........this
    works OK
    // the following .... fails with NoClassDefFoundError on Loggable
    org.apache.fop.apps.Driver d = new org.apache.fop.apps.Driver();
    } catch (Throwable t) {
    cat.error("failed:", t);
    It DOES work when I put the necessary jars on the server startup classpath,
    however it would obviously be
    better to be able to bundle the 3rd party jars within my EAR ....... Iknow this
    seems like it would be a general
    weblogic classloader question - but I have had no problems with any other3rd
    party jars that are similar to
    this one.
    Has anyone else had these kinds of problems ?
    Cheers,
    Brian.

  • Error retrieving JDBC connection from remote client (WLS 10.0)

    Hallo,
    I get an error when I try to retrieve a JDBC connection from a WLS datasource using a remote client. My Weblogic server version is: WebLogic Server 10.0 MP1 Thu Oct 18 20:17:44 EDT 2007 1005184
    I use the following code to retrieve the JDBC connection:
    Hashtable<String,String> ctxEnv = null;
    InitialContext ctx = null;
    DataSource dataSource = null;
    Connection con = null;
    ctxEnv = new Hashtable<String,String>();
    ctxEnv.put(InitialContext.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
    ctxEnv.put(InitialContext.PROVIDER_URL, "t3://localhost:7001");
    ctx = new InitialContext(ctxEnv);
    dataSource = (DataSource) ctx.lookup("datasources/XXX");
    con = dataSource.getConnection();
    When I execute this code with the weblogic.jar in the classpath everything works fine. However, when I put the wlfullclient.jar in the classpath which I created using the JAR Builder Tool I get the follwoing error:
    weblogic.rmi.extensions.RemoteRuntimeException: Unexpected Exception
    at weblogic.jdbc.common.internal.RmiDataSource_1001_WLStub.getConnection(Unknown Source)
    at net.schufa.enterprise.utilities.database.test.JDBCSupportTest.test_getConnection_manually(JDBCSupportTest.java:34)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    Caused by: weblogic.rjvm.PeerGoneException: ; nested exception is:
    weblogic.utils.NestedException: java.lang.NoClassDefFoundError: weblogic/diagnostics/instrumentation/InstrumentationDebug
    at weblogic.rjvm.ResponseImpl.unmarshalReturn(ResponseImpl.java:221)
    at weblogic.rmi.cluster.ClusterableRemoteRef.invoke(ClusterableRemoteRef.java:338)
    at weblogic.rmi.cluster.ClusterableRemoteRef.invoke(ClusterableRemoteRef.java:252)
    ... 17 more
    Caused by: weblogic.utils.NestedException: java.lang.NoClassDefFoundError: weblogic/diagnostics/instrumentation/InstrumentationDebug
    at weblogic.rjvm.RJVMImpl.gotExceptionReceiving(RJVMImpl.java:938)
    at weblogic.rjvm.ConnectionManager.gotExceptionReceiving(ConnectionManager.java:1009)
    at weblogic.rjvm.MsgAbbrevJVMConnection.gotExceptionReceiving(MsgAbbrevJVMConnection.java:452)
    at weblogic.rjvm.t3.MuxableSocketT3.hasException(MuxableSocketT3.java:373)
    at weblogic.socket.SocketMuxer.deliverExceptionAndCleanup(SocketMuxer.java:755)
    at weblogic.socket.SocketMuxer.deliverHasException(SocketMuxer.java:708)
    at weblogic.socket.JavaSocketMuxer.processSockets(JavaSocketMuxer.java:307)
    at weblogic.socket.SocketReaderRequest.run(SocketReaderRequest.java:29)
    at weblogic.work.ExecuteRequestAdapter.execute(ExecuteRequestAdapter.java:21)
    at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:145)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:117)
    Caused by: java.lang.NoClassDefFoundError: weblogic/diagnostics/instrumentation/InstrumentationDebug
    at weblogic.diagnostics.instrumentation.rtsupport.InstrumentationSupportImpl.getMonitor(InstrumentationSupportImpl.java:54)
    at weblogic.diagnostics.instrumentation.InstrumentationSupport.getMonitor(InstrumentationSupport.java:201)
    at weblogic.jdbc.rmi.SerialConnection.<clinit>(SerialConnection.java)
    at sun.misc.Unsafe.ensureClassInitialized(Native Method)
    at sun.reflect.UnsafeFieldAccessorFactory.newFieldAccessor(UnsafeFieldAccessorFactory.java:25)
    at sun.reflect.ReflectionFactory.newFieldAccessor(ReflectionFactory.java:122)
    at java.lang.reflect.Field.acquireFieldAccessor(Field.java:917)
    at java.lang.reflect.Field.getFieldAccessor(Field.java:898)
    at java.lang.reflect.Field.getLong(Field.java:527)
    at java.io.ObjectStreamClass.getDeclaredSUID(ObjectStreamClass.java:1586)
    at java.io.ObjectStreamClass.access$700(ObjectStreamClass.java:52)
    at java.io.ObjectStreamClass$2.run(ObjectStreamClass.java:408)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.io.ObjectStreamClass.<init>(ObjectStreamClass.java:400)
    at java.io.ObjectStreamClass.lookup(ObjectStreamClass.java:297)
    at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:531)
    at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1552)
    at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1466)
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1292)
    at java.io.ObjectInputStream.readObject(ObjectInputStream.java:348)
    at weblogic.rjvm.ClassTableEntry.readExternal(ClassTableEntry.java:36)
    at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1755)
    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1717)
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
    at java.io.ObjectInputStream.readObject(ObjectInputStream.java:348)
    at weblogic.rjvm.InboundMsgAbbrev.readObject(InboundMsgAbbrev.java:65)
    at weblogic.rjvm.InboundMsgAbbrev.read(InboundMsgAbbrev.java:37)
    at weblogic.rjvm.MsgAbbrevJVMConnection.readMsgAbbrevs(MsgAbbrevJVMConnection.java:223)
    at weblogic.rjvm.MsgAbbrevInputStream.init(MsgAbbrevInputStream.java:174)
    at weblogic.rjvm.MsgAbbrevJVMConnection.dispatch(MsgAbbrevJVMConnection.java:435)
    at weblogic.rjvm.t3.MuxableSocketT3.dispatch(MuxableSocketT3.java:368)
    at weblogic.socket.AbstractMuxableSocket.dispatch(AbstractMuxableSocket.java:383)
    at weblogic.socket.SocketMuxer.readReadySocketOnce(SocketMuxer.java:872)
    at weblogic.socket.SocketMuxer.readReadySocket(SocketMuxer.java:808)
    at weblogic.socket.JavaSocketMuxer.processSockets(JavaSocketMuxer.java:283)
    ... 4 more
    Can please anyone tell me what's going on there? What really astonishes me is that the class mentioned in the stacktrace is neither present in the wlfullclient.jar nor in the weblogic.jar, but using the weblogic.jar everything works fine. Any hint would be appreciated so much ...
    Here is the log written when is created the wlfullclient.jar:
    C:\Programme\bea\weblogic10.0\server\lib>java -jar ../../../modules/com.bea.core.jarbuilder_1.0.1.0.jar
    Setting Manifest:Class-Path = schema/weblogic-container-binding.jar schema/weblogic-domain-binding.jar schema/diagnostic
    s-binding.jar schema/diagnostics-image-binding.jar schema/kodo-conf-binding.jar wlcipher.jar xmlx.jar ojdbc14.jar jconn2
    .jar jConnect.jar EccpressoAsn1.jar EccpressoCore.jar EccpressoJcae.jar mysql-connector-java-commercial-5.0.3-bin.jar w
    lbase.jar wlutil.jar wlsqlserver.jar wldb2.jar wlsybase.jar wloracle.jar wlinformix.jar wlw-langx.jar ../../common/lib/p
    dev.jar debugging.jar wlw-system.jar ../../javelin/lib/javelinx.jar jcom.jar weblogic-L10N.jar
    Setting Manifest:Implementation-Vendor = BEA Systems
    Setting Manifest:Implementation-Title = Client jar for WebLogic Server 10.0 Thu Oct 18 20:17:44 EDT 2007 1005184
    Setting Manifest:Implementation-Version = 10.0.1.0
    Creating new jar file: wlfullclient.jar
    Integrating jar -->(0)/(0)/C:\Programme\bea\weblogic10.0\server\lib\weblogic.jar
    Integrating jar <--(0)/(31337)/(31337)/C:\Programme\bea\weblogic10.0\server\lib\weblogic.jar
    Integrating jar -->(0)/(31337)/C:\Programme\bea\modules\features\weblogic.client.modules_10.0.1.0.jar
    Integrating jar <--(0)/(31337)/(0)/C:\Programme\bea\modules\features\weblogic.client.modules_10.0.1.0.jar
    Integrating jar -->(1)/(31337)/C:\Programme\bea\modules\features\weblogic.client.modules.L10N_10.0.1.0.jar
    Integrating jar <--(1)/(31337)/(0)/C:\Programme\bea\modules\features\weblogic.client.modules.L10N_10.0.1.0.jar
    Ignoring unresolved jarC:\Programme\bea\modules\features\weblogic.client.modules.ja_10.0.1.0.jar
    Ignoring unresolved jarC:\Programme\bea\modules\features\weblogic.client.modules.ko_10.0.1.0.jar
    Ignoring unresolved jarC:\Programme\bea\modules\features\weblogic.client.modules.zh.CN_10.0.1.0.jar
    Ignoring unresolved jarC:\Programme\bea\modules\features\weblogic.client.modules.zh.TW_10.0.1.0.jar
    Integrating jar -->(1)/(31337)/C:\Programme\bea\modules\com.bea.core.antlr.runtime_2.7.5.jar
    Integrating jar <--(1)/(31410)/(73)/C:\Programme\bea\modules\com.bea.core.antlr.runtime_2.7.5.jar
    Integrating jar -->(1)/(31410)/C:\Programme\bea\modules\com.bea.core.logging_1.0.1.0.jar
    Ignoring Duplicate Entry weblogic/i18n/i18n.properties also in C:\Programme\bea\weblogic10.0\server\lib\weblogic.jar
    Integrating jar <--(1)/(31487)/(77)/C:\Programme\bea\modules\com.bea.core.logging_1.0.1.0.jar
    Integrating jar -->(1)/(31487)/C:\Programme\bea\modules\com.bea.core.xml.staxb.runtime_1.0.1.0.jar
    Integrating jar <--(1)/(32047)/(560)/C:\Programme\bea\modules\com.bea.core.xml.staxb.runtime_1.0.1.0.jar
    Integrating jar -->(1)/(32047)/C:\Programme\bea\modules\com.bea.core.annogen_1.0.1.0.jar
    Integrating jar <--(1)/(32265)/(218)/C:\Programme\bea\modules\com.bea.core.annogen_1.0.1.0.jar
    Integrating jar -->(1)/(32265)/C:\Programme\bea\modules\com.bea.core.process_5.3.0.0.jar
    Integrating jar <--(1)/(32277)/(12)/C:\Programme\bea\modules\com.bea.core.process_5.3.0.0.jar
    Integrating jar -->(1)/(32277)/C:\Programme\bea\modules\com.bea.core.common.engine.impl_2.0.1.0.jar
    Integrating jar <--(1)/(32294)/(17)/C:\Programme\bea\modules\com.bea.core.common.engine.impl_2.0.1.0.jar
    Integrating jar -->(1)/(32294)/C:\Programme\bea\modules\com.bea.core.common.engine.api_2.0.1.0.jar
    Integrating jar <--(1)/(32321)/(27)/C:\Programme\bea\modules\com.bea.core.common.engine.api_2.0.1.0.jar
    Integrating jar -->(1)/(32321)/C:\Programme\bea\modules\com.bea.core.common.security.api_2.0.1.0.jar
    Integrating jar <--(1)/(32446)/(125)/C:\Programme\bea\modules\com.bea.core.common.security.api_2.0.1.0.jar
    Integrating jar -->(1)/(32446)/C:\Programme\bea\modules\com.bea.core.common.security.impl_2.0.1.0.jar
    Integrating jar <--(1)/(32895)/(449)/C:\Programme\bea\modules\com.bea.core.common.security.impl_2.0.1.0.jar
    Integrating jar -->(1)/(32895)/C:\Programme\bea\modules\com.bea.core.common.security.jdkutils_2.0.1.0.jar
    Integrating jar <--(1)/(32908)/(13)/C:\Programme\bea\modules\com.bea.core.common.security.jdkutils_2.0.1.0.jar
    Integrating jar -->(1)/(32908)/C:\Programme\bea\modules\com.bea.core.common.security.utils_2.0.1.0.jar
    Integrating jar <--(1)/(32963)/(55)/C:\Programme\bea\modules\com.bea.core.common.security.utils_2.0.1.0.jar
    Integrating jar -->(1)/(32963)/C:\Programme\bea\modules\com.bea.core.common.security.providers.utils_2.0.1.0.jar
    Ignoring Duplicate Entry com/bea/common/security/ProvidersLogger$LoggableMessageSpiImpl.class also in C:\Programme\bea\modules\com.bea.core.common.security.api_2.0.1.0.jar
    Ignoring Duplicate Entry com/bea/common/security/ProvidersLogger.class also in C:\Programme\bea\modules\com.bea.core.common.security.api_2.0.1.0.jar
    Integrating jar <--(1)/(33817)/(854)/C:\Programme\bea\modules\com.bea.core.common.security.providers.utils_2.0.1.0.jar
    Integrating jar -->(1)/(33817)/C:\Programme\bea\modules\com.bea.core.common.security.providers.env_2.0.1.0.jar
    Integrating jar <--(1)/(33901)/(84)/C:\Programme\bea\modules\com.bea.core.common.security.providers.env_2.0.1.0.jar
    Integrating jar -->(1)/(33901)/C:\Programme\bea\modules\javax.activation_1.1.jar
    Integrating jar <--(1)/(33945)/(44)/C:\Programme\bea\modules\javax.activation_1.1.jar
    Integrating jar -->(1)/(33945)/C:\Programme\bea\modules\javax.annotation_1.0.jar
    Integrating jar <--(1)/(33958)/(13)/C:\Programme\bea\modules\javax.annotation_1.0.jar
    Integrating jar -->(1)/(33958)/C:\Programme\bea\modules\javax.interceptor_1.0.jar
    Integrating jar <--(1)/(33964)/(6)/C:\Programme\bea\modules\javax.interceptor_1.0.jar
    Integrating jar -->(1)/(33964)/C:\Programme\bea\modules\javax.ejb_3.0.jar
    Integrating jar <--(1)/(34022)/(58)/C:\Programme\bea\modules\javax.ejb_3.0.jar
    Integrating jar -->(1)/(34022)/C:\Programme\bea\modules\javax.jdo_2.0.jar
    Integrating jar <--(1)/(34119)/(97)/C:\Programme\bea\modules\javax.jdo_2.0.jar
    Integrating jar -->(1)/(34119)/C:\Programme\bea\modules\javax.enterprise.deploy_1.2.jar
    Integrating jar <--(1)/(34162)/(43)/C:\Programme\bea\modules\javax.enterprise.deploy_1.2.jar
    Integrating jar -->(1)/(34162)/C:\Programme\bea\modules\javax.jms_1.1.jar
    Integrating jar <--(1)/(34221)/(59)/C:\Programme\bea\modules\javax.jms_1.1.jar
    Integrating jar -->(1)/(34221)/C:\Programme\bea\modules\javax.jsp_1.0.1.0_2-1.jar
    Integrating jar <--(1)/(34319)/(98)/C:\Programme\bea\modules\javax.jsp_1.0.1.0_2-1.jar
    Integrating jar -->(1)/(34319)/C:\Programme\bea\modules\javax.jws_2.0.jar
    Integrating jar <--(1)/(34335)/(16)/C:\Programme\bea\modules\javax.jws_2.0.jar
    Integrating jar -->(1)/(34335)/C:\Programme\bea\modules\javax.mail_1.4.0.2.jar
    Integrating jar <--(1)/(34602)/(267)/C:\Programme\bea\modules\javax.mail_1.4.0.2.jar
    Integrating jar -->(1)/(34602)/C:\Programme\bea\modules\javax.management.j2ee_1.0.jar
    Integrating jar <--(1)/(34637)/(35)/C:\Programme\bea\modules\javax.management.j2ee_1.0.jar
    Integrating jar -->(1)/(34637)/C:\Programme\bea\modules\javax.persistence_1.0.1.0_1-0.jar
    Integrating jar <--(1)/(34730)/(93)/C:\Programme\bea\modules\javax.persistence_1.0.1.0_1-0.jar
    Integrating jar -->(1)/(34730)/C:\Programme\bea\modules\javax.resource_1.5.jar
    Integrating jar <--(1)/(34799)/(69)/C:\Programme\bea\modules\javax.resource_1.5.jar
    Integrating jar -->(1)/(34799)/C:\Programme\bea\modules\javax.servlet_1.0.1.0_2-5.jar
    Integrating jar <--(1)/(34869)/(70)/C:\Programme\bea\modules\javax.servlet_1.0.1.0_2-5.jar
    Integrating jar -->(1)/(34869)/C:\Programme\bea\modules\javax.transaction_1.1.jar
    Integrating jar <--(1)/(34889)/(20)/C:\Programme\bea\modules\javax.transaction_1.1.jar
    Integrating jar -->(1)/(34889)/C:\Programme\bea\modules\javax.xml.bind_2.0.jar
    Integrating jar <--(1)/(34989)/(100)/C:\Programme\bea\modules\javax.xml.bind_2.0.jar
    Integrating jar -->(1)/(34989)/C:\Programme\bea\modules\javax.xml.soap_1.3.0.0.jar
    Integrating jar <--(1)/(35019)/(30)/C:\Programme\bea\modules\javax.xml.soap_1.3.0.0.jar
    Ignoring unresolved jarC:\Programme\bea\modules\jaxp-api.jar
    Ignoring unresolved jarC:\Programme\bea\modules\jax-qname.jar
    Ignoring unresolved jarC:\Programme\bea\modules\activation.jar
    Ignoring unresolved jarC:\Programme\bea\modules\servlet.jar
    Integrating jar -->(1)/(35019)/C:\Programme\bea\modules\javax.xml.stream_1.0.1.0_1-0.jar
    Integrating jar <--(1)/(35063)/(44)/C:\Programme\bea\modules\javax.xml.stream_1.0.1.0_1-0.jar
    Integrating jar -->(1)/(35063)/C:\Programme\bea\modules\javax.xml.ws_2.0.jar
    Integrating jar <--(1)/(35110)/(47)/C:\Programme\bea\modules\javax.xml.ws_2.0.jar
    Integrating jar -->(1)/(35110)/C:\Programme\bea\modules\javax.xml.rpc_1.1.jar
    Ignoring Duplicate Entry javax/xml/namespace/QName.class also in C:\Programme\bea\modules\javax.xml.stream_1.0.1.0_1-0.jar
    Integrating jar <--(1)/(35167)/(57)/C:\Programme\bea\modules\javax.xml.rpc_1.1.jar
    Integrating jar -->(1)/(35167)/C:\Programme\bea\modules\com.bea.core.jsafe_3.5.0.jar
    Integrating jar <--(1)/(35423)/(256)/C:\Programme\bea\modules\com.bea.core.jsafe_3.5.0.jar
    Integrating jar -->(1)/(35423)/C:\Programme\bea\modules\com.bea.core.apache_1.0.1.0.jar
    Integrating jar <--(1)/(36825)/(1402)/C:\Programme\bea\modules\com.bea.core.apache_1.0.1.0.jar
    Integrating jar -->(1)/(36825)/C:\Programme\bea\modules\com.bea.core.beangen_1.0.1.0.jar
    Integrating jar <--(1)/(36964)/(139)/C:\Programme\bea\modules\com.bea.core.beangen_1.0.1.0.jar
    Integrating jar -->(1)/(36964)/C:\Programme\bea\modules\com.bea.core.beaninfo_1.0.1.0.jar
    Integrating jar <--(1)/(36976)/(12)/C:\Programme\bea\modules\com.bea.core.beaninfo_1.0.1.0.jar
    Integrating jar -->(1)/(36976)/C:\Programme\bea\modules\com.bea.core.datasource_1.0.1.0.jar
    Ignoring Duplicate Entry utils/Schema.class also in C:\Programme\bea\weblogic10.0\server\lib\weblogic.jar
    Ignoring Duplicate Entry utils/dbping.class also in C:\Programme\bea\weblogic10.0\server\lib\weblogic.jar
    Ignoring Duplicate Entry weblogic/i18n/i18n.properties also in C:\Programme\bea\weblogic10.0\server\lib\weblogic.jar
    Ignoring Duplicate Entry weblogic/j2ee/descriptor/wl/JDBCConnectionPoolParamsBean.class also in C:\Programme\bea\weblogic10.0\server\lib\weblogic.jar
    Ignoring Duplicate Entry weblogic/j2ee/descriptor/wl/JDBCDataSourceBean.class also in C:\Programme\bea\weblogic10.0\server\lib\weblogic.jar
    Ignoring Duplicate Entry weblogic/j2ee/descriptor/wl/JDBCDataSourceParamsBean.class also in C:\Programme\bea\weblogic10.0\server\lib\weblogic.jar
    Ignoring Duplicate Entry weblogic/j2ee/descriptor/wl/JDBCDriverParamsBean.class also in C:\Programme\bea\weblogic10.0\server\lib\weblogic.jar
    Ignoring Duplicate Entry weblogic/j2ee/descriptor/wl/JDBCPropertiesBean.class also in C:\Programme\bea\weblogic10.0\server\lib\weblogic.jar
    Ignoring Duplicate Entry weblogic/j2ee/descriptor/wl/JDBCPropertyBean.class also in C:\Programme\bea\weblogic10.0\server\lib\weblogic.jar
    Ignoring Duplicate Entry weblogic/j2ee/descriptor/wl/JDBCXAParamsBean.class also in C:\Programme\bea\weblogic10.0\server\lib\weblogic.jar
    Integrating jar <--(1)/(37133)/(157)/C:\Programme\bea\modules\com.bea.core.datasource_1.0.1.0.jar
    Integrating jar -->(1)/(37133)/C:\Programme\bea\modules\com.bea.core.descriptor_1.0.1.0.jar
    Ignoring Duplicate Entry weblogic/descriptor/SettableBean.class also in C:\Programme\bea\modules\com.bea.core.datasource_1.0.1.0.jar
    Ignoring Duplicate Entry weblogic/descriptor/beangen/LegalChecks.class also in C:\Programme\bea\modules\com.bea.core.beangen_1.0.1.0.jar
    Ignoring Duplicate Entry weblogic/descriptor/beangen/StringHelper.class also in C:\Programme\bea\modules\com.bea.core.beangen_1.0.1.0.jar
    Ignoring Duplicate Entry weblogic/descriptor/beangen/XMLHelper.class also in C:\Programme\bea\modules\com.bea.core.beangen_1.0.1.0.jar
    Integrating jar <--(1)/(37226)/(93)/C:\Programme\bea\modules\com.bea.core.descriptor_1.0.1.0.jar
    Integrating jar -->(1)/(37226)/C:\Programme\bea\modules\com.bea.core.diagnostics.core_1.0.1.0.jar
    Ignoring Duplicate Entry weblogic/diagnostics/type/UnexpectedExceptionHandler.class also in C:\Programme\bea\weblogic10.0\server\lib\weblogic.jar
    Ignoring Duplicate Entry weblogic/i18n/i18n.properties also in C:\Programme\bea\weblogic10.0\server\lib\weblogic.jar
    Integrating jar <--(1)/(37264)/(38)/C:\Programme\bea\modules\com.bea.core.diagnostics.core_1.0.1.0.jar
    Integrating jar -->(1)/(37264)/C:\Programme\bea\modules\com.bea.core.i18n_1.0.1.0.jar
    Integrating jar <--(1)/(37289)/(25)/C:\Programme\bea\modules\com.bea.core.i18n_1.0.1.0.jar
    Integrating jar -->(1)/(37289)/C:\Programme\bea\modules\com.bea.core.i18n.generator_1.0.1.0.jar
    Integrating jar <--(1)/(37335)/(46)/C:\Programme\bea\modules\com.bea.core.i18n.generator_1.0.1.0.jar
    Integrating jar -->(1)/(37335)/C:\Programme\bea\modules\com.bea.core.management.core_1.0.1.0.jar
    Integrating jar <--(1)/(37343)/(8)/C:\Programme\bea\modules\com.bea.core.management.core_1.0.1.0.jar
    Integrating jar -->(1)/(37343)/C:\Programme\bea\modules\com.bea.core.mbean.maker_1.0.1.0.jar
    Integrating jar <--(1)/(37389)/(46)/C:\Programme\bea\modules\com.bea.core.mbean.maker_1.0.1.0.jar
    Integrating jar -->(1)/(37389)/C:\Programme\bea\modules\com.bea.core.mbean.support_1.0.1.0.jar
    Ignoring Duplicate Entry weblogic/management/commo/AbstractCommoConfigurationBean$Helper.class also in C:\Programme\bea\modules\com.bea.core.mbean.maker_1.0.1.0.jar
    Ignoring Duplicate Entry weblogic/management/commo/AbstractCommoConfigurationBean.class also in C:\Programme\bea\modules\com.bea.core.mbean.maker_1.0.1.0.jar
    Ignoring Duplicate Entry weblogic/management/commo/AbstractCommoConfigurationBeanBinder.class also in C:\Programme\bea\modules\com.bea.core.mbean.maker_1.0.1.0.jar
    Ignoring Duplicate Entry weblogic/management/commo/AbstractCommoConfigurationBeanImplBeanInfo.class also in C:\Programme\bea\modules\com.bea.core.mbean.maker_1.0.1.0.jar
    Ignoring Duplicate Entry weblogic/management/commo/BaseModelMBean.class also in C:\Programme\bea\modules\com.bea.core.mbean.maker_1.0.1.0.jar
    Ignoring Duplicate Entry weblogic/management/commo/Commo$Pair.class also in C:\Programme\bea\modules\com.bea.core.mbean.maker_1.0.1.0.jar
    Ignoring Duplicate Entry weblogic/management/commo/Commo.class also in C:\Programme\bea\modules\com.bea.core.mbean.maker_1.0.1.0.jar
    Ignoring Duplicate Entry weblogic/management/commo/CommoMBean.class also in C:\Programme\bea\modules\com.bea.core.mbean.maker_1.0.1.0.jar
    Ignoring Duplicate Entry weblogic/management/commo/CommoMBeanInstance.class also in C:\Programme\bea\modules\com.bea.core.mbean.maker_1.0.1.0.jar
    Ignoring Duplicate Entry weblogic/management/commo/CommoModelMBeanAttributeInfo.class also in C:\Programme\bea\modules\com.bea.core.mbean.maker_1.0.1.0.jar
    Ignoring Duplicate Entry weblogic/management/commo/CommoModelMBeanConstructorInfo.class also in C:\Programme\bea\modules\com.bea.core.mbean.maker_1.0.1.0.jar
    Ignoring Duplicate Entry weblogic/management/commo/CommoModelMBeanInfoSupport.class also in C:\Programme\bea\modules\com.bea.core.mbean.maker_1.0.1.0.jar
    Ignoring Duplicate Entry weblogic/management/commo/CommoModelMBeanNotificationInfo.class also in C:\Programme\bea\modules\com.bea.core.mbean.maker_1.0.1.0.jar
    Ignoring Duplicate Entry weblogic/management/commo/CommoModelMBeanOperationInfo.class also in C:\Programme\bea\modules\com.bea.core.mbean.maker_1.0.1.0.jar
    Ignoring Duplicate Entry weblogic/management/commo/CommoOperationsException.class also in C:\Programme\bea\modules\com.bea.core.mbean.maker_1.0.1.0.jar
    Ignoring Duplicate Entry weblogic/management/commo/DescriptorSupport$1.class also in C:\Programme\bea\modules\com.bea.core.mbean.maker_1.0.1.0.jar
    Ignoring Duplicate Entry weblogic/management/commo/DescriptorSupport$Pair.class also in C:\Programme\bea\modules\com.bea.core.mbean.maker_1.0.1.0.jar
    Ignoring Duplicate Entry weblogic/management/commo/DescriptorSupport$VoidValue.class also in C:\Programme\bea\modules\com.bea.core.mbean.maker_1.0.1.0.jar
    Ignoring Duplicate Entry weblogic/management/commo/DescriptorSupport.class also in C:\Programme\bea\modules\com.bea.core.mbean.maker_1.0.1.0.jar
    Ignoring Duplicate Entry weblogic/management/commo/DescriptorSupportBase.class also in C:\Programme\bea\modules\com.bea.core.mbean.maker_1.0.1.0.jar
    Ignoring Duplicate Entry weblogic/management/commo/RequiredModelMBeanWrapper.class also in C:\Programme\bea\modules\com.bea.core.mbean.maker_1.0.1.0.jar
    Ignoring Duplicate Entry weblogic/management/commo/SecurityMBeanData.class also in C:\Programme\bea\modules\com.bea.core.mbean.maker_1.0.1.0.jar
    Ignoring Duplicate Entry weblogic/management/commo/StandardInterface.class also in C:\Programme\bea\modules\com.bea.core.mbean.maker_1.0.1.0.jar
    Ignoring Duplicate Entry weblogic/management/commo/TypedMBeanData.class also in C:\Programme\bea\modules\com.bea.core.mbean.maker_1.0.1.0.jar
    Ignoring Duplicate Entry weblogic/ant/taskdefs/management/commo/antlib.xml also in C:\Programme\bea\modules\com.bea.core.mbean.maker_1.0.1.0.jar
    Ignoring Duplicate Entry weblogic/management/commo/CustomMBeanImpl.j also in C:\Programme\bea\modules\com.bea.core.mbean.maker_1.0.1.0.jar
    Ignoring Duplicate Entry weblogic/management/commo/DiabloCustomMBeanIntf.j also in C:\Programme\bea\modules\com.bea.core.mbean.maker_1.0.1.0.jar
    Ignoring Duplicate Entry weblogic/management/commo/commo.dtd also in C:\Programme\bea\modules\com.bea.core.mbean.maker_1.0.1.0.jar
    Ignoring Duplicate Entry weblogic/management/internal/mbean/SecurityReadOnlyMBean.template also in C:\Programme\bea\modules\com.bea.core.mbean.maker_1.0.1.0.jar
    Integrating jar <--(1)/(37389)/(0)/C:\Programme\bea\modules\com.bea.core.mbean.support_1.0.1.0.jar
    Integrating jar -->(1)/(37389)/C:\Programme\bea\modules\com.bea.core.messaging.kernel_1.0.1.0.jar
    Ignoring Duplicate Entry weblogic/i18n/i18n.properties also in C:\Programme\bea\weblogic10.0\server\lib\weblogic.jar
    Integrating jar <--(1)/(37548)/(159)/C:\Programme\bea\modules\com.bea.core.messaging.kernel_1.0.1.0.jar
    Integrating jar -->(1)/(37548)/C:\Programme\bea\modules\com.bea.core.resourcepool_1.0.1.0.jar
    Ignoring Duplicate Entry weblogic/i18n/i18n.properties also in C:\Programme\bea\weblogic10.0\server\lib\weblogic.jar
    Integrating jar <--(1)/(37583)/(35)/C:\Programme\bea\modules\com.bea.core.resourcepool_1.0.1.0.jar
    Integrating jar -->(1)/(37583)/C:\Programme\bea\modules\com.bea.core.weblogic.rmi.client_1.0.1.0.jar
    Ignoring Duplicate Entry weblogic/rmi/extensions/server/_HeartbeatHelper_Stub.class also in C:\Programme\bea\weblogic10.0\server\lib\weblogic.jar
    Integrating jar <--(1)/(37612)/(29)/C:\Programme\bea\modules\com.bea.core.weblogic.rmi.client_1.0.1.0.jar
    Integrating jar -->(1)/(37612)/C:\Programme\bea\modules\com.bea.core.weblogic.security.wls_2.0.1.0.jar
    Integrating jar <--(1)/(38016)/(404)/C:\Programme\bea\modules\com.bea.core.weblogic.security.wls_2.0.1.0.jar
    Integrating jar -->(1)/(38016)/C:\Programme\bea\modules\com.bea.core.weblogic.saaj_1.0.1.0.jar
    Integrating jar <--(1)/(38217)/(201)/C:\Programme\bea\modules\com.bea.core.weblogic.saaj_1.0.1.0.jar
    Integrating jar -->(1)/(38217)/C:\Programme\bea\modules\com.bea.core.weblogic.stax_1.0.1.0.jar
    Integrating jar <--(1)/(38543)/(326)/C:\Programme\bea\modules\com.bea.core.weblogic.stax_1.0.1.0.jar
    Integrating jar -->(1)/(38543)/C:\Programme\bea\modules\com.bea.core.store_1.0.1.0.jar
    Skipping native/aix/ppc64/libwlfileio2.so
    Skipping native/aix/ppc/libwlfileio2.so
    Skipping native/hpux11/IPF32/libwlfileio2.so
    Skipping native/hpux11/IPF64/libwlfileio2.so
    Skipping native/hpux11/PA_RISC64/libwlfileio2.sl
    Skipping native/hpux11/PA_RISC/libwlfileio2.sl
    Skipping native/linux/i686/libwlfileio2.so
    Skipping native/linux/ia64/libwlfileio2.so
    Skipping native/linux/x86_64/libwlfileio2.so
    Skipping native/solaris/sparc64/libwlfileio2.so
    Skipping native/solaris/sparc/libwlfileio2.so
    Skipping native/solaris/x64/libwlfileio2.so
    Skipping native/solaris/x86/libwlfileio2.so
    Skipping native/win/32/wlfileio2.dll
    Skipping native/win/64/wlfileio2.dll
    Skipping native/win/x64/wlfileio2.dll
    Ignoring Duplicate Entry weblogic/i18n/i18n.properties also in C:\Programme\bea\weblogic10.0\server\lib\weblogic.jar
    Integrating jar <--(1)/(38695)/(152)/C:\Programme\bea\modules\com.bea.core.store_1.0.1.0.jar
    Integrating jar -->(1)/(38695)/C:\Programme\bea\modules\com.bea.core.store.gxa_1.0.1.0.jar
    Integrating jar <--(1)/(38728)/(33)/C:\Programme\bea\modules\com.bea.core.store.gxa_1.0.1.0.jar
    Integrating jar -->(1)/(38728)/C:\Programme\bea\modules\com.bea.core.transaction_2.0.1.0.jar
    Ignoring Duplicate Entry weblogic/i18n/i18n.properties also in C:\Programme\bea\weblogic10.0\server\lib\weblogic.jar
    Integrating jar <--(1)/(38943)/(215)/C:\Programme\bea\modules\com.bea.core.transaction_2.0.1.0.jar
    Integrating jar -->(1)/(38943)/C:\Programme\bea\modules\com.bea.core.utils.full_1.0.1.0.jar
    Skipping native/aix/ppc64/libterminalio.so
    Skipping native/aix/ppc/libterminalio.so
    Skipping native/hpux11/IPF32/libterminalio.so
    Skipping native/hpux11/IPF64/libterminalio.so
    Skipping native/hpux11/PA_RISC64/libterminalio.sl
    Skipping native/hpux11/PA_RISC/libterminalio.sl
    Skipping native/linux/i686/libterminalio.so
    Skipping native/linux/ia64/libterminalio.so
    Skipping native/linux/s3990/libterminalio.so
    Skipping native/linux/x86_64/libterminalio.so
    Skipping native/macosx/pps/libterminalio.jnilib
    Skipping native/solaris/sparc64/libterminalio.so
    Skipping native/solaris/sparc/libterminalio.so
    Skipping native/solaris/x64/libterminalio.so
    Skipping native/solaris/x86/libterminalio.so
    Skipping native/win/32/terminalio.dll
    Skipping native/win/64/terminalio.dll
    Skipping native/win/x64/terminalio.dll
    Ignoring Duplicate Entry weblogic/utils/StackTraceUtilsClient.class also in C:\Programme\bea\weblogic10.0\server\lib\weblogic.jar
    Integrating jar <--(1)/(39367)/(424)/C:\Programme\bea\modules\com.bea.core.utils.full_1.0.1.0.jar
    Integrating jar -->(1)/(39367)/C:\Programme\bea\modules\com.bea.core.utils.classloaders_1.0.1.0.jar
    Integrating jar <--(1)/(39415)/(48)/C:\Programme\bea\modules\com.bea.core.utils.classloaders_1.0.1.0.jar
    Integrating jar -->(1)/(39415)/C:\Programme\bea\modules\com.bea.core.utils.expressions_1.0.1.0.jar
    Integrating jar <--(1)/(39429)/(14)/C:\Programme\bea\modules\com.bea.core.utils.expressions_1.0.1.0.jar
    Integrating jar -->(1)/(39429)/C:\Programme\bea\modules\com.bea.core.utils.wrapper_1.0.1.0.jar
    Integrating jar <--(1)/(39550)/(121)/C:\Programme\bea\modules\com.bea.core.utils.wrapper_1.0.1.0.jar
    Integrating jar -->(1)/(39550)/C:\Programme\bea\modules\com.bea.core.timers_1.0.1.0.jar
    Ignoring Duplicate Entry commonj/timers/CancelTimerListener.class also in C:\Programme\bea\weblogic10.0\server\lib\weblogic.jar
    Ignoring Duplicate Entry commonj/timers/StopTimerListener.class also in C:\Programme\bea\weblogic10.0\server\lib\weblogic.jar
    Ignoring Duplicate Entry commonj/timers/Timer.class also in C:\Programme\bea\weblogic10.0\server\lib\weblogic.jar
    Ignoring Duplicate Entry commonj/timers/TimerListener.class also in C:\Programme\bea\weblogic10.0\server\lib\weblogic.jar
    Ignoring Duplicate Entry commonj/timers/TimerManager.class also in C:\Programme\bea\weblogic10.0\server\lib\weblogic.jar
    Integrating jar <--(1)/(39581)/(31)/C:\Programme\bea\modules\com.bea.core.timers_1.0.1.0.jar
    Integrating jar -->(1)/(39581)/C:\Programme\bea\modules\com.bea.core.weblogic.workmanager_1.0.1.0.jar
    Ignoring Duplicate Entry commonj/work/RemoteWorkItem.class also in C:\Programme\bea\weblogic10.0\server\lib\weblogic.jar
    Ignoring Duplicate Entry commonj/work/Work.class also in C:\Programme\bea\weblogic10.0\server\lib\weblogic.jar
    Ignoring Duplicate Entry commonj/work/WorkCompletedException.class also in C:\Programme\bea\weblogic10.0\server\lib\weblogic.jar
    Ignoring Duplicate Entry commonj/work/WorkEvent.class also in C:\Programme\bea\weblogic10.0\server\lib\weblogic.jar
    Ignoring Duplicate Entry commonj/work/WorkExcep

    Dirk Ludwig wrote:
    Joe Weinstein wrote:[...]
    Hi. You should open an official support case,
    but it may be that we do not support
    external client JDBC with the client jar.Actually, I misspoke. I think we do supply a client
    jar, and that may be true
    what I said, but I see you're making your own. Can
    you find out what jar you're
    loading the InstrumentationSupport class from? That's
    the original location of
    the error, and that class doesn't exist in 10.0.Hi Joe, thanks for your reply.
    First of all, let me clarify what we did and why we did it: We have a stand-alone client application that needs to communicate with a Weblogic server using the t3 protocol (we don't want IIOP or HTTP tunneling). According to the official BEA documentation (see http://e-docs.bea.com/wls/docs100/client/basics.html and http://e-docs.bea.com/wls/docs100/client/t3.html) we needed to create the wlfullclient.jar file. We did this using the Weblogic JAR Builder Tool (see http://e-docs.bea.com/wls/docs100/client/jarbuilder.html). Unfortunatley we discovered the problem mentioned in my original post when we tried to run the client with that wlfullclient.jar.
    Regarding your classloading question: The InstrumentationSupportImpl class is located in the wlfullclient.jar, so it does exist in WLS 10.0 (it is also contained in the weblogic.jar). Unfortunately this JAR does not contain the required class "weblogic.diagnostics.instrumentation.InstrumentationDebug". I searched for this class and found it in the OSGI module "com.bea.core.diagnostics.instrumentor_1.0.1.0.jar" shipped with the Weblogic server. Obviously the JAR Builder Tool did not include the contents of this OSGI bundle into the wlfullclient.jar. I tried to include this OSGI bundle into the classpath of the client app manually (just for testing purposes), but this onyl resultet in another NoClassDefFoundError. This time the class "com.bea.objectweb.asm.Constants" could not be found.
    What astonishes me is the fact that the connection retrieval works fine when we only have the weblogic.jar in the client applications classpath, but fails when we have the wlfullclient.jar in the classpaht. It seems that the t3 communication is handled completely different, depending on what JARs I have in the classpath. Also, JMS communication works fine in both cases (i.e. for the weblogic.jar and the wlfullclient.jar). The only thing that causes problems (at least as far as we have discovered) is getting a JDBC connection from a datasource. I simply fail to see why this is the case.
    Best regards,
    DirkInteresting. I hope the official support case solves your problem.
    I would like to dig further, but it's too far afield for me with
    the workload I have at the moment.
    Joe

  • WLS 5.1 to 6.1 porting issue: RequiresNew & ORA-01002 error

    Repost from the EJB group
    Environment:
    WLS 6.1.2 on WINNT w/SP6a
    java: 1.3.1 that ships with WLS 6.1
    DB: Oracle 8.1.6 (using TRANSACTION_READ_COMMITTED exclusively)
    I'm currently upgrading our application from 5.1 (ejb 1.1) to
    6.1 (ejb 2.0). I've also consolidated our 55 separate ejb jars
    into a single jar (with all 55 ejbs). Because of 1.1 entity bean
    issues, currently all our ejbs are SessionBeans. Everything works
    under 5.1 with our test Oracle instance, the 6.1 test environment
    is using the same database instance.
    I'm seeing several problems.
    Here's #1
    With the same TCUSecurityDataAccessSessionBean::updateIfNeeded
    source code and same database instance. 5.1 updates correctly,
    6.1 throws this SQLException. So, I figure its got to be a WLS 6.1 issue or
    my configuration. - I alway suspect me ;)
    ERROR - ORA-01002: fetch out of sequence
    (com.eoriginal.engine.core.session.basicAccess.TCUSecurityDataAccessSessionB
    ean_ridhfi_Impl::updateIfNeeded)
    java.sql.SQLException: ORA-01002: fetch out of sequence
    This method should be configured with transaction context of: RequiresNew
    Has the 6.1 handling of RequiresNew changed that radically?
    I'm looking for suggestions on how to debug this further.
    TIA
    Gordon
    ------------- ejb-jar.xml (edited) ------------------------
    <ejb-jar>
    <small-icon>images/green-cube.gif</small-icon>
    <enterprise-beans>
    <!-- TCUSecurityDataAccessSession -->
    <session>
    <small-icon>images/orange-cube.gif</small-icon>
    <ejb-name>TCUSecurityDataAccessSession</ejb-name>
    <home>com.eoriginal.engine.core.session.basicAccess.TCUSecurityDataAccessSes
    sionHome</home>
    <remote>com.eoriginal.engine.core.session.basicAccess.TCUSecurityDataAccessS
    ession</remote>
    <ejb-class>com.eoriginal.engine.core.session.basicAccess.TCUSecurityDataAcce
    ssSessionBean</ejb-class>
    <session-type>Stateless</session-type>
    <transaction-type>Container</transaction-type>
    </session>
    </enterprise-beans>
    <assembly-descriptor>
    <method-permission>
    <description></description>
    <role-name>****</role-name> <!-- deleted for security -->
    <method>
    <ejb-name>TCUSecurityDataAccessSession</ejb-name>
    <method-name>*</method-name>
    </method>
    </method-permission>
    <!-- TCUSecurityDataAccessSession -->
    <container-transaction>
    <method>
    <ejb-name>TCUSecurityDataAccessSession</ejb-name>
    <method-name>updateIfNeeded</method-name>
    </method>
    <trans-attribute>RequiresNew</trans-attribute>
    </container-transaction>
    <container-transaction>
    <method>
    <ejb-name>TCUSecurityDataAccessSession</ejb-name>
    <method-name>peek</method-name>
    </method>
    <trans-attribute>Supports</trans-attribute>
    </container-transaction>
    </assembly-descriptor>
    </ejb-jar>
    ------------- weblogic-ejb-jar.xml (uninteresting) ------------------------
    ------------- config.xml (edited) ------------------------
    <JDBCConnectionPool CapacityIncrement="5"
    DriverName="oracle.jdbc.driver.OracleDriver"
    InitialCapacity="10" MaxCapacity="100" Name="d2Pool"
    Password="*****
    Properties="user=d2engine;STATEMENT_CACHE_SIZE=200"
    Targets="myserver" URL="jdbc:oracle:thin:@*****"/>
    <JDBCTxDataSource JNDIName="jdbc/d2Pool" Name="jdbc/d2Pool"
    PoolName="d2Pool" Targets="myserver"/>
    ORA-01002 fetch out of sequence
    Cause: In a host language program, a FETCH call was issued out of sequence.
    A successful parse-and-execute call must be issued before a fetch.
    This can occur if an attempt was made to FETCH from an active set after
    all records have been fetched.
    This may be caused by fetching from a SELECT FOR UPDATE cursor after a
    commit.
    A PL/SQL cursor loop implicitly does fetches and may also cause this error.
    Action: Parse and execute a SQL statement before attempting to fetch the
    data.

    Solved.
    The 8.1.6 driver wasn't the problem.
    It turned out that our ConnectionPool utility class wasn't configured
    properly
    and when I thought that I was going TxDatasource, I was actually only
    getting
    a straight Connection. No Tx, so Oracle didn't have one open for the "FOR
    UPDATE"
    clause. Now if someone could help on my classloader question in the EJB
    group ;)
    - Gordon
    "Slava Imeshev" <[email protected]> wrote in message
    news:[email protected]...
    Gordon,
    Oracle 8.1.6 driver proved to be buggy and unstable.
    Can you update your oracle thin driver to the newest
    one? It's available from the otn.oracle.com.
    Could you also post the questionable code here, especially
    in the part related to obtaining connection, executing
    stataments, fetching results and obtaining TXs, if any?
    Regards,
    Slava Imeshev
    "Gordon Twaddell" <[email protected]> wrote in message
    news:[email protected]...
    Sree,
    I didn't mention that I'm using the Oracle thin JDBC driver
    (8.1.6.1)
    and its in the CLASSPATH.
    Slava,
    I tried the stmt.setFetchSize(). I got the same result.
    Gordon
    "Sree Bodapati" <[email protected]> wrote in message
    news:[email protected]...
    Hi Gordon,
    One possibility is the environment variable PATH might be pointing to
    an
    older version of the library files for the WebLogic jDriver forOracle.
    Check if the PATH is set to point to the right weblogicoci37.dll (inthe
    <WL_HOME for 6.1>\bin\oci817_8) and make sure your oracle_home is setto
    point to the right folders as well.
    hth
    sree
    "Gordon Twaddell" <[email protected]> wrote in message
    news:[email protected]...
    Repost from the EJB group
    Environment:
    WLS 6.1.2 on WINNT w/SP6a
    java: 1.3.1 that ships with WLS 6.1
    DB: Oracle 8.1.6 (using TRANSACTION_READ_COMMITTED exclusively)
    I'm currently upgrading our application from 5.1 (ejb 1.1) to
    6.1 (ejb 2.0). I've also consolidated our 55 separate ejb jars
    into a single jar (with all 55 ejbs). Because of 1.1 entity bean
    issues, currently all our ejbs are SessionBeans. Everything works
    under 5.1 with our test Oracle instance, the 6.1 test environment
    is using the same database instance.
    I'm seeing several problems.
    Here's #1
    With the same TCUSecurityDataAccessSessionBean::updateIfNeeded
    source code and same database instance. 5.1 updates correctly,
    6.1 throws this SQLException. So, I figure its got to be a WLS 6.1
    issue
    or
    my configuration. - I alway suspect me ;)
    ERROR - ORA-01002: fetch out of sequence
    (com.eoriginal.engine.core.session.basicAccess.TCUSecurityDataAccessSessionB
    ean_ridhfi_Impl::updateIfNeeded)
    java.sql.SQLException: ORA-01002: fetch out of sequence
    This method should be configured with transaction context of:RequiresNew
    Has the 6.1 handling of RequiresNew changed that radically?
    I'm looking for suggestions on how to debug this further.
    TIA
    Gordon
    ------------- ejb-jar.xml (edited) ------------------------
    <ejb-jar>
    <small-icon>images/green-cube.gif</small-icon>
    <enterprise-beans>
    <!-- TCUSecurityDataAccessSession -->
    <session>
    <small-icon>images/orange-cube.gif</small-icon>
    <ejb-name>TCUSecurityDataAccessSession</ejb-name>
    <home>com.eoriginal.engine.core.session.basicAccess.TCUSecurityDataAccessSes
    sionHome</home>
    <remote>com.eoriginal.engine.core.session.basicAccess.TCUSecurityDataAccessS
    ession</remote>
    <ejb-class>com.eoriginal.engine.core.session.basicAccess.TCUSecurityDataAcce
    ssSessionBean</ejb-class>
    <session-type>Stateless</session-type>
    <transaction-type>Container</transaction-type>
    </session>
    </enterprise-beans>
    <assembly-descriptor>
    <method-permission>
    <description></description>
    <role-name>****</role-name> <!-- deleted for security -->
    <method>
    <ejb-name>TCUSecurityDataAccessSession</ejb-name>
    <method-name>*</method-name>
    </method>
    </method-permission>
    <!-- TCUSecurityDataAccessSession -->
    <container-transaction>
    <method>
    <ejb-name>TCUSecurityDataAccessSession</ejb-name>
    <method-name>updateIfNeeded</method-name>
    </method>
    <trans-attribute>RequiresNew</trans-attribute>
    </container-transaction>
    <container-transaction>
    <method>
    <ejb-name>TCUSecurityDataAccessSession</ejb-name>
    <method-name>peek</method-name>
    </method>
    <trans-attribute>Supports</trans-attribute>
    </container-transaction>
    </assembly-descriptor>
    </ejb-jar>
    ------------- weblogic-ejb-jar.xml(uninteresting) ------------------------
    ------------- config.xml (edited) ------------------------
    <JDBCConnectionPool CapacityIncrement="5"
    DriverName="oracle.jdbc.driver.OracleDriver"
    InitialCapacity="10" MaxCapacity="100" Name="d2Pool"
    Password="*****
    Properties="user=d2engine;STATEMENT_CACHE_SIZE=200"
    Targets="myserver" URL="jdbc:oracle:thin:@*****"/>
    <JDBCTxDataSource JNDIName="jdbc/d2Pool" Name="jdbc/d2Pool"
    PoolName="d2Pool" Targets="myserver"/>
    ORA-01002 fetch out of sequence
    Cause: In a host language program, a FETCH call was issued out ofsequence.
    A successful parse-and-execute call must be issued before a fetch.
    This can occur if an attempt was made to FETCH from an active set
    after
    all records have been fetched.
    This may be caused by fetching from a SELECT FOR UPDATE cursor
    after
    a
    commit.
    A PL/SQL cursor loop implicitly does fetches and may also cause
    this
    error.
    Action: Parse and execute a SQL statement before attempting to fetch
    the
    data.

  • IllegalAccessError when trying to create a proxy for a non-public interface

    My code proxies a class that extends JDialog. Under Java5 this works fine. However when I switch to Java6 I get a java.lang.IllegalAccessError: class javax.swing.$Proxy3 cannot access its superinterface javax.swing.TransferHandler$HasGetTransferHandler exception.
    I went through debugging my code to find out what went wrong. I created the included test code that shows the problem (and because the real codebase is much too big to include here).
    package javax.swing;
    public class SomePackageInterfaceDefiningClass {
        interface SomeInnerPackageInterface {
    package javax.swing;
    import java.lang.reflect.Proxy;
    import java.util.ArrayList;
    import java.util.Collection;
    import org.apache.commons.lang.ArrayUtils;
    public class NonPublicInterfaceProxyCreator {
        public static void main(String[] args) {
            // This works fine !
            doTest(WindowConstants.class);
            // This also ! The proxy class package is javax.swing as expected
            doTest(SomePackageInterfaceDefiningClass.SomeInnerPackageInterface.class);
            // JDialog implements the package visible interface
            // javax.swing.TransferHandler.HasGetTransferHandler
            Collection<Class<?>> jdInterfaces = new ArrayList<Class<?>>();
            for (Class<?> interfaze : JDialog.class.getInterfaces()) {
                jdInterfaces.add(interfaze);
            Collection<Class<?>> strippedJdialogInterfaces = new ArrayList<Class<?>>(
                    jdInterfaces);
            for (Class<?> interfaze : jdInterfaces) {
                if (interfaze.getName().equalsIgnoreCase(
                        "javax.swing.TransferHandler$HasGetTransferHandler")) {
                    strippedJdialogInterfaces.remove(interfaze);
            // Without the package visible interface it works !
            doTest(strippedJdialogInterfaces.toArray(new Class<?>[0]));
            // With the package visible interface it fails
            doTest(jdInterfaces.toArray(new Class<?>[0]));
        private static void doTest(Class... interfaces) {
            // Class clazz = Proxy.getProxyClass(JDialog.class.getClassLoader(),
            // interfaces);
            Class clazz = Proxy.getProxyClass(Thread.currentThread()
                    .getContextClassLoader(), interfaces);
            System.out.println("Class created = " + clazz
                    + " >>>> Implemented interfaces = "
                    + ArrayUtils.toString(clazz.getInterfaces()));
    }When I run this code under Java5 I get:
    Class created = class $Proxy0 >>>> Implemented interfaces = {interface javax.swing.WindowConstants}
    Class created = class javax.swing.$Proxy1 >>>> Implemented interfaces = {interface javax.swing.SomePackageInterfaceDefiningClass$SomeInnerPackageInterface}
    Class created = class $Proxy2 >>>> Implemented interfaces = {interface javax.swing.WindowConstants,interface javax.accessibility.Accessible,interface javax.swing.RootPaneContainer}
    Class created = class $Proxy2 >>>> Implemented interfaces = {interface javax.swing.WindowConstants,interface javax.accessibility.Accessible,interface javax.swing.RootPaneContainer}Under Java6 I get:
    Class created = class $Proxy0 >>>> Implemented interfaces = {interface javax.swing.WindowConstants}
    Class created = class javax.swing.$Proxy1 >>>> Implemented interfaces = {interface javax.swing.SomePackageInterfaceDefiningClass$SomeInnerPackageInterface}
    Class created = class $Proxy2 >>>> Implemented interfaces = {interface javax.swing.WindowConstants,interface javax.accessibility.Accessible,interface javax.swing.RootPaneContainer}
    Exception in thread "main" java.lang.IllegalAccessError: class javax.swing.$Proxy3 cannot access its superinterface javax.swing.TransferHandler$HasGetTransferHandler
         at java.lang.reflect.Proxy.defineClass0(Native Method)
         at java.lang.reflect.Proxy.getProxyClass(Proxy.java:504)
         at javax.swing.NonPublicInterfaceProxyCreator.doTest(NonPublicInterfaceProxyCreator.java:45)
         at javax.swing.NonPublicInterfaceProxyCreator.main(NonPublicInterfaceProxyCreator.java:38)According to the documentation the interface javax.swing.TransferHandler$HasGetTransferHandler should be visible to my class as it is located in the same package, right?
    I think there must be some classloading issue when trying to access the non-public interface javax.swing.TransferHandler$HasGetTransferHandler in rt.jar.
    I can not figure out what is different between my own non-public interface and Swing's javax.swing.TransferHandler$HasGetTransferHandler.
    Any help would be appreciated.

    I don't agree completely. What you're telling is true, don't get me wrong. It's the Error that I get from Java that troubles me.
    To resolve the classloading question, I changed my code as follows:
    package javax.swing;
    import java.lang.reflect.Proxy;
    import java.util.ArrayList;
    import java.util.Collection;
    import org.apache.commons.lang.ArrayUtils;
    public class NonPublicInterfaceProxyCreator {
        public static void main(String[] args) {
            // This works fine !
            doTest(WindowConstants.class);
            doTest2(WindowConstants.class);
            // This also ! The proxy class package is javax.swing as expected
            doTest(SomePackageInterfaceDefiningClass.SomeInnerPackageInterface.class);
            doTest2(SomePackageInterfaceDefiningClass.SomeInnerPackageInterface.class);
            // JDialog implements the package visible interface
            // javax.swing.TransferHandler.HasGetTransferHandler
            Collection<Class<?>> jdInterfaces = new ArrayList<Class<?>>();
            for (Class<?> interfaze : JDialog.class.getInterfaces()) {
                jdInterfaces.add(interfaze);
            Collection<Class<?>> strippedJdialogInterfaces = new ArrayList<Class<?>>(
                    jdInterfaces);
            for (Class<?> interfaze : jdInterfaces) {
                if (interfaze.getName().equalsIgnoreCase(
                        "javax.swing.TransferHandler$HasGetTransferHandler")) {
                    strippedJdialogInterfaces.remove(interfaze);
            // Without the package visible interface it works !
            doTest(strippedJdialogInterfaces.toArray(new Class<?>[0]));
            doTest2(strippedJdialogInterfaces.toArray(new Class<?>[0]));
            // With the package visible interface it fails
            doTest(jdInterfaces.toArray(new Class<?>[0]));
            doTest2(jdInterfaces.toArray(new Class<?>[0]));
        private static void doTest(Class... interfaces) {
            ClassLoader contextClassLoader = Thread.currentThread()
                    .getContextClassLoader();
            System.out.println("Classloader that creates proxy = " + contextClassLoader);
            try {
                Class clazz = Proxy.getProxyClass(contextClassLoader, interfaces);
                System.out.println("Class created = " + clazz
                        + " >>>> Implemented interfaces = "
                        + ArrayUtils.toString(clazz.getInterfaces()));
            } catch (Throwable e) {
                e.printStackTrace();
        private static void doTest2(Class... interfaces) {
            ClassLoader contextClassLoader = JDialog.class.getClassLoader();
            System.out.println("Classloader that creates proxy = " + contextClassLoader);
            try {
                Class clazz = Proxy.getProxyClass(contextClassLoader, interfaces);
                System.out.println("Class created = " + clazz
                        + " >>>> Implemented interfaces = "
                        + ArrayUtils.toString(clazz.getInterfaces()));
            } catch (Throwable e) {
                e.printStackTrace();
    }And here is the result when I run it on Java 1.6:
    Classloader that creates proxy = sun.misc.Launcher$AppClassLoader@11b86e7
    Class created = class $Proxy0 >>>> Implemented interfaces = {interface javax.swing.WindowConstants}
    Classloader that creates proxy = null
    Class created = class $Proxy1 >>>> Implemented interfaces = {interface javax.swing.WindowConstants}
    Classloader that creates proxy = sun.misc.Launcher$AppClassLoader@11b86e7
    Class created = class javax.swing.$Proxy2 >>>> Implemented interfaces = {interface javax.swing.SomePackageInterfaceDefiningClass$SomeInnerPackageInterface}
    Classloader that creates proxy = null
    java.lang.IllegalArgumentException: interface javax.swing.SomePackageInterfaceDefiningClass$SomeInnerPackageInterface is not visible from class loader
         at java.lang.reflect.Proxy.getProxyClass(Proxy.java:353)
         at javax.swing.NonPublicInterfaceProxyCreator.doTest2(NonPublicInterfaceProxyCreator.java:64)
         at javax.swing.NonPublicInterfaceProxyCreator.main(NonPublicInterfaceProxyCreator.java:18)
    Classloader that creates proxy = sun.misc.Launcher$AppClassLoader@11b86e7
    Class created = class $Proxy3 >>>> Implemented interfaces = {interface javax.swing.WindowConstants,interface javax.accessibility.Accessible,interface javax.swing.RootPaneContainer}
    Classloader that creates proxy = null
    Class created = class $Proxy4 >>>> Implemented interfaces = {interface javax.swing.WindowConstants,interface javax.accessibility.Accessible,interface javax.swing.RootPaneContainer}
    Classloader that creates proxy = sun.misc.Launcher$AppClassLoader@11b86e7
    java.lang.IllegalAccessError: class javax.swing.$Proxy5 cannot access its superinterface javax.swing.TransferHandler$HasGetTransferHandler
         at java.lang.reflect.Proxy.defineClass0(Native Method)
         at java.lang.reflect.Proxy.getProxyClass(Proxy.java:504)
         at javax.swing.NonPublicInterfaceProxyCreator.doTest(NonPublicInterfaceProxyCreator.java:51)
         at javax.swing.NonPublicInterfaceProxyCreator.main(NonPublicInterfaceProxyCreator.java:41)
    Classloader that creates proxy = null
    Class created = class javax.swing.$Proxy6 >>>> Implemented interfaces = {interface javax.swing.WindowConstants,interface javax.accessibility.Accessible,interface javax.swing.RootPaneContainer,interface javax.swing.TransferHandler$HasGetTransferHandler}As you can see, I get an IllegalArgumantException telling me that my interface I try to proxy is not visible for JDialog's classloader, as I would expect. Remark that Java tells me that JDialog's classloader is null. Strange, isn't is?
    However I get an IllegalAccessError when I try to proxy TransferHandler$HasGetTransferHandler from my own classloader.
    Any reason why the error is different?

Maybe you are looking for