ClassLoader and ClassCastException

ok, I have a Class named 'Lib' that I want to Load into the virtual machine from a file. I do this by extending ClassLoader and overloading the findClass() method to read the .class file through a FileInputStream.
Everything is fine until I try casting the 'Lib' object to a 'Lib' type. For example, I can do a
Object o = loadClass("Lib").newInstance();
but I cannot do a
Lib l = (Lib)loadClass("Lib").newInstance();
This also raises a new question: if you load a class dynamically during the execution of the program, how do you assign it to a new reference type so that you can use it?(i.e how do you make the 'Lib' type if you don't import the class? Incidently, I do import it and it still won't cast the object.)
I am making sure that the same class loader is loading all instances of the 'Lib' type, namely my(the extended) classloader, but it still won't let me cast. can anyone help??? thx.
Karl

Thanks for the comment Vlad. Here is the code I'm using, I verified that it is not being loaded by the bootstrap ClassLoader(default) as I moved it entirely out of the CLASSPATH.
Class myClass extens ClassLoader{
public void libInit(){
                        try{
                                        System.out.println("parent class loader: " + ClassLoader.getSystemClassLoader().toString());
                                        ClassLoader c = this.getClass().getClassLoader();
                                        System.out.println("this class loader: " + c.toString());
                                        Lib lib = (Lib)loadClass("Lib").newInstance();
                                        System.out.println("asserting Lib instance. " + lib.toString());
                                }catch(Exception e){
                                        System.err.println("error2: " + e.toString() + "  " + e.getMessage());
                public Class findClass(String name){
                        System.out.println("using my findClass()");
                        byte[] b = loadClassData(name);
                        return defineClass("Lib", b, 0, b.length);
                final Class findLoadedClasses(String name){
                         return null;
                        byte[] b = null;
                        try{
                                File f = new File("Libs","Lib.class");
                                FileInputStream fis = new FileInputStream(f);
                                int i = (int)f.length();
                                b = new byte;
System.out.println("boo " + i);
fis.read(b,0,i);
fis.close();
}catch(Exception e){
// Logger code goes here
System.err.println("error1: " + e.getMessage());
return b;
The above fails on the cast from the newInstance() method. In the above code is the first place in the program where I even reference a 'Lib' type.
Also, instead of using a 'Lib' type, how could I read a class file into a reference type? Is this what java.lang.ref is for? thanks.
Karl

Similar Messages

  • JMS and ClassCastException

    I'm trying to exchange messages between two applications running on Oracle 9iAS (9.0.3) and I'm getting a ClassCastException.
    Basically, I'm sending Command instances over the wire, which are to be executed on the other end. The concrete Command class is in a jar, which is in both web applications' WEB-INF/lib. I checked that both apps contain the same version of the jar. I have a simple JSP in both apps to publish a message containing a command. For testing purposes, both apps run in the same JVM (OC4J).
    Both apps have a TopicSubscriber instance connected to the same Topic. When I publish an instance of ObjectMessage with the Command instance as the payload, both apps receive the message, but upon getting the payload (message.getObject()) the app that did not send the message fails with a ClassCastException.
    Here's an example:
    App A publishes an ObjectMessage with an instance of com.foo.FooCommand on the Topic
    App A receives the message and successfully gets the FooCommand from the received message
    App B receives the message and fails with a ClassCastException when getting the FooCommand from the message.
    The ClassCastException looks like this:
    java.lang.ClassCastException: com.foo.FooCommand
    Publisher:
    Message m = topicSession.createObjectMessage(new FooCommand());
    Subscriber:
    ObjectMessage om = (ObjectMessage) message;
    Command c = (Command) om.getObject();
    The second line in the subscriber code fails. Command is the interface that has to be implemented by all commands, it extends Serializable.
    I already tried adding a serialVersionUID to the command class, but it didn't help. Is there any other way into making the ClassLoader believe that both instances are the same?
    Any ideas?
    TIA,
    Nils

    Nils, the ClassCastException is expected if you put your class in both applications' WEB-INF/lib. The class is loaded by App A's web module classloader and, separately, loaded by App B's web module classloader. You have two instances of Class that have the same underlying bits of class format but loaded by two different classloaders, which is the classic situation that leads to ClassCastException.
    The guideline of the solution: let a common parent classloader of those two classloaders load the class. What you need to do is to make your jar visible to all applications or loaded by a parent application of your App A and App B. The way to do it is mentioned in my message
      Re: Quick question on parent-child relationship in OC4J 10.1.3
    The simplest of all is to put your jar in
      <ORACLE_HOME>/j2ee/home/applib.
    Hope this help you.

  • NegativeArraySizeException and ClassCastException

    Guys,could someone give me a scenario where NegativeArraySizeException and ClassCastException are thrown???

    int myArraySize = -1;
    int[] myArray = new int[myArraySize];
    Object someObject = "foo";
    Integer anInteger = (Integer) someObject;

  • ClassLoader and java.lang.RessourceBundle

    Hi all,
    I develloped a classloader and it works well for the normal class.
    But when the java programm need to get a ressourceBundle (RessourceBundle.getBundle(...../MessageBundle)) , my class loader fail because the system looks for MessageBundle_fr_FR and it does not exist.
    But when I add the jar in wich the MessageBundle is normally located it's works well with the SystemClassLoader.
    So is the MessageBundle_fr_FR important?
    Thank you,
    Cheers,
    Adrien

    When I try to load the class without the MessageBundle_fr_FR I get :
    Exception in thread "main" java.lang.ExceptionInInitializerError
         at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
         at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
         at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
         at java.lang.reflect.Constructor.newInstance(Unknown Source)
         at java.lang.Class.newInstance0(Unknown Source)
         at java.lang.Class.newInstance(Unknown Source)
         at App.main(App.java:34)
    Caused by: java.util.MissingResourceException: Can't find bundle for base name com/sun/javacard/converter/MessagesBundle, locale fr_FR
         at java.util.ResourceBundle.throwMissingResourceException(Unknown Source)
         at java.util.ResourceBundle.getBundleImpl(Unknown Source)
         at java.util.ResourceBundle.getBundle(Unknown Source)
         at com.sun.javacard.converter.util.Notifier.<clinit>(Notifier.java:24)
         ... 7 more
    Caused by: java.lang.ClassFormatError: Incompatible magic value 587866912 in class file com/sun/javacard/converter/MessagesBundle
         at java.lang.ClassLoader.defineClass1(Native Method)
         at java.lang.ClassLoader.defineClass(Unknown Source)
         at java.lang.ClassLoader.defineClass(Unknown Source)
         at MyClassLoader.loadClass(MyClassLoader.java:104)
         at java.lang.ClassLoader.loadClass(Unknown Source)
         at java.util.ResourceBundle$Control.newBundle(Unknown Source)
         at java.util.ResourceBundle.loadBundle(Unknown Source)
         at java.util.ResourceBundle.findBundle(Unknown Source)
         at java.util.ResourceBundle.findBundle(Unknown Source)
         at java.util.ResourceBundle.findBundle(Unknown Source)
         ... 10 more

  • Servlets and Workspaces (AND ClassCastExceptions)

     

              I have a similiar situation but am not getting a ClassCastException but rather a
              NullPointerException when I try
              to use a contained object in my stored object.
              I do this in the server:
              WorkspaceServicesDef workspaceServices = services.workspace();
              WorkspaceDef defaultWS = workspaceServices.getWorkspace();
              WorkspaceDef dataWS = defaultWS.getWorkspace("DATA_WORKSPACE",
              WorkspaceDef.CREATE,
              WorkspaceDef.SCOPE_SERVER);
              dataWS.store(cMSKey, ms);
              and this in the JSP page:
              // Get the default T3Client Workspace
              WorkspaceDef defaultWS = t3.services.workspace().getWorkspace();
              // Attach to the system subWorkspace already created
              WorkspaceDef myDataWS = defaultWS.getWorkspace("DATA_WORKSPACE",
              WorkspaceDef.ATTACH,
              WorkspaceDef.SCOPE_SERVER);
              MimicServer ms = (MimicServer) myDataWS.fetch("MimicServer");
              Questions:
              1)Must I make the Object I want to store in the WorkSpace Serializable?? The
              Documentation says it can just be
              a Java Object??
              2) In my JSP page I get a good Object reference, but its contents are null
              (Probably because I didn't implement write() and read()).
              Thanks,
              matt obrien
              [email protected]
              Mark Griffith wrote:
              > Alexandre:
              >
              > Although byte for byte the FooObject is the same, according to the VM they
              > are different class. This is because a class's type distinctiveness is
              > based not only its interfaces,methods,data members etc but ALSO on its
              > classloader. There is a different classloader for the
              > serversclasses_FooObject and the servletclasses_FooObject so they are
              > considered different, so you get a CCE.
              >
              > Problem is that the servletclasses directory is designed to solve the
              > problem of reloading servlet classes and objects they used when modified
              > without having to restart the server. But this introduces the problem
              > discussed above. The only solution currently is to put the FooObject only in
              > one place or another. Unfortunately if you want a class in servletclasses
              > to interact classes loaded by the system/server classloader you cannot put
              > the class in the servletclasses without getting a CCE on reload of the
              > servlet in servletclasses. In this case you must put the class only in the
              > serverclasses directory. And this means of course you can only reload the
              > FooObject in the serverclasses directory if you bounce the server. (the
              > default java classloading behavior).
              >
              > This will be handled more elegantly in our next major release Spring 2000,
              > however note (and prepare by designing accordingly) the solution is to allow
              > the Servlet to interact with interfaces not actual classes and these
              > interfaces can be stuffed into system/server loaded classes such as
              > workspaces and httpsessions, thus preventing CCE's.
              >
              > Cheers
              > Mark G
              >
              > Alexandre Aubry wrote:
              >
              > > I have a named workspace which is created at startup of the server
              > > within a starup class.
              > > When the startup method is called, I instantiate and put an object
              > > called FooObject in the workspace.
              > >
              > > Then, in a servlet, called Dispatcher, in the service method, I
              > > retrieved my named workspace and the object
              > > FooObject which is in this workspace. At this time, I have a
              > > ClassCastException.
              > >
              > > To give you more details about my configuration, here is my directory
              > > configuration:
              > > weblogic
              > > |----------- serverclasses
              > > |------------- startupObject
              > > |------------- FooObject
              > > |----------- servletclasses
              > > |------------- myServlet
              > > |------------- FooObject (which is exactly
              > > the same of the serverclasses one)
              > >
              > > Do you have any ideas ? The idea is to instantiate a given object at the
              > > startup of the web server and to retrieve
              > > these objects within servlets and JSPs.
              > >
              > > Regards.
              > >
              > > --
              > > Alexandre Aubry
              > > Consultant
              > > Fi System, The Web Agency
              > > http://www.fisystem.fr
              > > mailto:[email protected]
              > > Phone: +33 1 55 04 03 03 Fax: +33 1 55 04 03 04
              >
              > --
              > =====================================================
              > Reply to the newsgroup. Don't reply to this mail
              > alias. This is used only for answering posts on
              > WebLogic Newsgroups.
              > =====================================================
              

  • Serialization and ClassCastException

    hi all,
    I have a a class like this:
    import java.io.Serializable;
    import java.util.ArrayList;
    public class Fact implements Serializable {
         private String name;
         private ArrayList al=new ArrayList();
         public Fact(String _name) {
              name=_name;
              al.add("Pippo");
              al.add("Pluto");
              al.add("Papero");
         public String getName() {
              return name;
         public ArrayList getList() {
              return al;
    and I want to serialize objects of it in a mySQL database table. the table has two field: 'name', a varchar(20) used as a key and 'object', a blob field to store Java objects.
    this is my code to put object in the table (it seems to work fine):
    public boolean putFact(Fact fact) { // inserts a new fact in the db
              Fact result=null;
              try {
                   PreparedStatement pstmt=conn.prepareStatement("INSERT INTO facts VALUES (?, ?)");
                   pstmt.setString(1, fact.getName());
                   pstmt.setObject(2, fact);
                   pstmt.executeUpdate();
                   pstmt.close();
              } catch (SQLException ex) {
                   System.out.println(ex.toString());
                   return false;
              return true;
    this code musts get an object from the table:
         public Fact getFact(String factName) {
              Fact result=null;
              try {
                   Statement stmt=conn.createStatement();
                   ResultSet rs=stmt.executeQuery("SELECT object FROM facts WHERE name='"+factName+"'");
                   while (rs.next()) {
                        result=(Fact)rs.getObject(1);
                   rs.close();
              stmt.close();
              } catch (SQLException ex) {
                   System.out.println(ex.toString());
                   return null;
         return result;
    on the 7th line of the getFact method I have a ClassCastException: why?
    in addition, if I remove the ArrayList element from the Fact class, my code works fine.
    any help?
    thanks a lot. :)

    first of all, thanks for your support, sylviae. :)
    well, I used your syntax
    (System.err.println(anObject.getClass());) and the
    result is "class Fact": so, the serialization process
    seems to be right.
    then, I tried to change the field from BLOB to
    MEDIUMBLOB type, and now it works! so, I suppose that
    the BLOB type was not able to manage a Fact object.That doesn't really make much sense. If in the revised code you were getting the exception on the line that casts anObject to be a Fact object, then I'd start to wonder about ClassLoader issues. Still, given that you've got it working, you're probably not concerrned about the exact cause.
    >
    in the end, can you suggest me a way to generate SQL
    statements, if mine has the error you said?Use the prepareStatement mechanism as you did for the insert statement, and associate the value with the "?" parameter. I know this looks more clumsy, and is certainly more code, but it is much safer. It's also capable of a more effecient execution because the underlying implementation can note that it's already parsed the statement and avoid having to do it again.
    Sylvia.

  • WARs and ClassCastException redux...

    so i've been poring through messages in this newsgroup.. and i've
              noticed that many people have run into the ClassCastException problem
              with WARs that have servlets forwarding on to jsps using objects
              stuffed away in sessions..
              i've been trying to get my web application working as a WAR, but i've
              run into this very problem. (jsps try to retrieve object from session
              that was stored away by controlling servlet, but get a
              ClassCastException) is it true that, because weblogic uses different
              classloaders for servlets and jsps in a WAR, WARs are essentially
              worthless for my app? is there a solution to this? is bea addressing
              this too?
              thx
              leo
              

    i read your solution on previous posts, and it works.. but is this the
              only solution? it seems odd that the classloading behavior would
              differ depending on whether you executed a JSP or servlet first. do
              you mean that i have to invoke JSPs controlled by all my servlets
              first? or just one of them, and the rest will behave accordingly?
              thx
              leo
              On Thu, 21 Dec 2000, Cameron Purdy wrote:
              > After starting the server, invoke a JSP before invoking the first servlet.
              >
              > Peace,
              >
              > --
              > Cameron Purdy
              > Tangosol, Inc.
              > http://www.tangosol.com
              > +1.617.623.5782
              > WebLogic Consulting Available
              >
              >
              > "Leo Kim" <[email protected]> wrote in message
              > news:Pine.OSX.4.30.0012191647220.1267-100000@ginormous...
              > > so i've been poring through messages in this newsgroup.. and i've
              > > noticed that many people have run into the ClassCastException problem
              > > with WARs that have servlets forwarding on to jsps using objects
              > > stuffed away in sessions..
              > >
              > > i've been trying to get my web application working as a WAR, but i've
              > > run into this very problem. (jsps try to retrieve object from session
              > > that was stored away by controlling servlet, but get a
              > > ClassCastException) is it true that, because weblogic uses different
              > > classloaders for servlets and jsps in a WAR, WARs are essentially
              > > worthless for my app? is there a solution to this? is bea addressing
              > > this too?
              > >
              > > thx
              > > leo
              > >
              >
              >
              >
              

  • JSP Compiler and ClassCastException

     

    Have been using JDK1.2.2 from sun since day one and I've been seeing
              ClassCastException since day 1 too.
              Don't think it had anything to do with the compiler.
              "Jun Ying" <[email protected]> wrote in message
              news:[email protected]...
              > I noticed something that might be causing the ClassCastException and has
              not
              > been mentioned: the compiler that is used for jspc. I remember seeing a
              few
              > people mentioning extra classes in the workDir (ie, the bean class that is
              > being used). This is caused by using a smart compiler such as jikes or
              sj.
              > While those compilers will get you more speed for newly modified jsp's,
              they
              > resolve dependencies and recompile all the referenced classes. The result
              > is that the bean class gets recompiled and put into workDir. So no matter
              > where you put the workDir, you end up getting a new copy of the bean class
              > file, which is reloaded by the classloader that loads the newly compiled
              > JSP. That copy of the class file is considered "different" from the one
              > from the normal system classpath or the weblogic.class.path. Thus the
              > ClassCastException. So if you see java classes other than the jsp's in
              the
              > workDir, make sure you are using javac from the sun jdk. So to answer
              > Anish's question, WebLogic is not sticking a copy of the bean class.
              > Rather, it's the java compiler that you are using.
              >
              > Jun Ying
              > Meritsoft, Inc
              >
              >
              > "Michael Boudreau" <[email protected]> wrote in message
              > news:[email protected]...
              > > Hello,
              > >
              > > Well we ran into the same problem here at my company, and we have been
              > > pulling our hair out. I was reading through the jsp 1.1 spec, and
              > > thought I might try using the <jsp:useBean ...> tag instead of the <%@
              > > page import ...> tag. After careful inspection of the resulting .java
              > > file, I found that the <jsp:useBean ...> tag does not put insert any
              > > import statements, but simply declares the bean with the fully
              > > qualified package name. I am sure that this is not new news to anyone;
              > > however, the class cast exception went away (knock on wood, cross
              > > fingers, whatever).
              > >
              > > Basically, my statement looked like this:
              > > <jsp:useBean id="beanname" type="com.company.Class" scope="session" />
              > >
              > > My question is: is there something that I am missing or have not
              > > thought of? Because so far, this "seems" to be working, but I have
              > > been reading posts that say this does not work.
              > >
              > > Oh, one last quick note to BEA. While I was looking at the
              > > generated .java file from the jsp file, I found that weblogic's jspc is
              > > still generating getValue and setValue methods for HttpSession....
              > > which has been deprecated as of the servlet 2.2 spec.
              > >
              > > Michael
              > >
              > >
              > >
              > >
              > > Anish Parvataneni wrote:
              > >
              > > > Hi,
              > > >
              > > > I have a JSP which uses two different classes. Whenever, I change the
              > > > JSP and save it to recompile, there is a ClassCastException. ( I store
              > > > them in the session and load them) . Thats common ! The solution to
              this
              > > > as per documentation is to get rid of the classes in the workingDir of
              > > > JSP. However, I can find ONLY ONE of the classes in the workingDir. I
              > > > delete that class and the JSP works. I change the JSP , problem
              recurrs.
              > > >
              > > > 1. Why does weblogic stick a copy of the class in the workingDir,
              > > > everytime the JSP compiles, although it is available in the weblogic
              > > > classpath ?
              > > > 2. Why is it happening to only one of the classes I use in the JSP ?
              > > > 3. How can I make sure that this class is not available in the
              > > > workingDir, other than deleting it EVERYTIME.
              > > >
              > > > Thanks
              > > > Anish
              > >
              >
              >
              

  • WSAD 5, xerces, datasource and classcastexception issue

    I am running into an issue trying to run my code once I upgraded from WDAD 5.0 to WSAD 5.01. I am getting the error below when I try and connect to my DataSource. This all was working fine before I upgraded. It looks like an issue with the xerces.jar file because if I take out the JAXP stuff in the xerces.jar file I work fine. But I need the JAXP stuff because I am doing messaging. Anyone have any ideas?
    [5/22/03 7:02:59:848 CDT] 2ec4c80 SystemOut O 2003.05.22 07:02:59.848--ServerSession(426724481)--Thread[asyncDelivery0,5,main]--Connection(47762586)--TopLink, version:TopLink - 9.0.3 (Build 423)
    2003.05.22 07:02:59.848--ServerSession(426724481)--Thread[asyncDelivery0,5,main]--Connection(47762586)--connecting(DatabaseLogin(
         platform => DB2Platform
         user name => "ou79ecm"
         datasource name => "jdbc/DB239DataSource"
    [5/22/03 7:03:00:118 CDT] 2ec4c80 ConnectionFac I J2CA0122I: Resource reference jdbc/DB239DataSource could not be located, so default values of the following are used: [Resource-ref settings]
         res-auth: 1 (APPLICATION)
         res-isolation-level: 0 (TRANSACTION_NONE)
         res-sharing-scope: true (SHAREABLE)
         res-resolution-control: 999 (undefined)
    [Other attributes]
    isCMP1_x: false (not CMP1.x)
    isJMS: false (not JMS)
    [5/22/03 7:03:01:160 CDT] 2ec4c80 ConnectionFac E J2CA0009E: An exception occurred while trying to instantiate the ManagedConnectionFactory class com.ibm.ws.rsadapter.spi.WSManagedConnectionFactoryImpl used by resource jdbc/DB239DataSource : java.lang.ClassCastException: org.apache.xerces.jaxp.SAXParserFactoryImpl
         at javax.xml.parsers.SAXParserFactory.newInstance(Unknown Source)
         at com.ibm.ejs.j2c.XMLReader.validate(XMLReader.java:673)
         at com.ibm.ejs.j2c.XMLReader.init(XMLReader.java:241)
         at com.ibm.ejs.j2c.XMLReader.<init>(XMLReader.java:165)
         at com.ibm.ejs.j2c.ConnectorRuntime.getJ2C_Properties(ConnectorRuntime.java:341)
         at com.ibm.ejs.j2c.poolmanager.PoolManager.<init>(PoolManager.java:541)
         at com.ibm.ejs.j2c.ConnectionFactoryBuilderImpl.createCFD_Common(ConnectionFactoryBuilderImpl.java:699)
         at com.ibm.ejs.j2c.ConnectionFactoryBuilderImpl.createConnectionFactoryDetails(ConnectionFactoryBuilderImpl.java:417)
         at com.ibm.ejs.j2c.ConnectionFactoryBuilderImpl.getObjectInstance(ConnectionFactoryBuilderImpl.java:1400)
         at javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:313)
         at com.ibm.ws.naming.util.Helpers.processSerializedObjectForLookup(Helpers.java:884)
         at com.ibm.ws.naming.jndicos.CNContextImpl.processResolveResults(CNContextImpl.java:1675)
         at com.ibm.ws.naming.jndicos.CNContextImpl.doLookup(CNContextImpl.java:1538)
         at com.ibm.ws.naming.jndicos.CNContextImpl.doLookup(CNContextImpl.java:1458)
         at com.ibm.ws.naming.jndicos.CNContextImpl.lookup(CNContextImpl.java:1130)
         at com.ibm.ws.naming.util.WsnInitCtx.lookup(WsnInitCtx.java:122)
         at javax.naming.InitialContext.lookup(InitialContext.java:363)
         at oracle.toplink.jndi.JNDIConnector.connect(Unknown Source)
         at oracle.toplink.sessions.DatabaseLogin.connect(Unknown Source)
         at oracle.toplink.internal.databaseaccess.DatabaseAccessor.connect(Unknown Source)
         at oracle.toplink.internal.databaseaccess.DatabaseAccessor.connect(Unknown Source)
         at oracle.toplink.threetier.ConnectionPool.buildConnection(Unknown Source)
         at oracle.toplink.threetier.ConnectionPool.startUp(Unknown Source)
         at oracle.toplink.threetier.ServerSession.connect(Unknown Source)
         at oracle.toplink.publicinterface.DatabaseSession.login(Unknown Source)
         at oracle.toplink.tools.sessionmanagement.SessionManager.getSession(Unknown Source)
         at oracle.toplink.tools.sessionmanagement.SessionManager.getSession(Unknown Source)
         at oracle.toplink.tools.sessionmanagement.SessionManager.getSession(Unknown Source)
         at com.deere.jdc.toplink.ToplinkServerSessionFactory.getSession(ToplinkServerSessionFactory.java:121)
         at com.deere.jdc.toplink.ToplinkServerSessionFactory.getClientSession(ToplinkServerSessionFactory.java:56)
         at com.deere.jdc.component.rcts.dao.RCTSGateway.findDealerASMByDealerNumber(RCTSGateway.java:194)
         at com.deere.jdc.component.rcts.service.RCTSService.getRCTSDealerASM(RCTSService.java:159)
         at com.deere.jdc.component.rcts.adapter.SoapRCTSService.getRCTSDealerASM(SoapRCTSService.java:107)
         at java.lang.reflect.Method.invoke(Native Method)
         at com.deere.jdc.component.rcts.messaging.RCTSMessageHandler.invokeServiceMethod(RCTSMessageHandler.java:103)
         at com.deere.jdc.component.rcts.messaging.RCTSMessageHandler.processMessage(RCTSMessageHandler.java:62)
         at com.deere.jdc.mqseries.MQJMSMessageHandler.onMessage(MQJMSMessageHandler.java:122)
         at com.ibm.mq.jms.MQQueueReceiver.receiveAsync(MQQueueReceiver.java:861)
         at com.ibm.mq.jms.SessionAsyncHelper.run(SessionAsyncHelper.java:401)
         at java.lang.Thread.run(Thread.java:513)
    [5/22/03 7:03:01:310 CDT] 2ec4c80 ConnectionFac A J2CA0013I: An exception occurred while trying to create ManagedConnectionFactory for DB239DataSource : java.lang.ClassCastException: org.apache.xerces.jaxp.SAXParserFactoryImpl
         at javax.xml.parsers.SAXParserFactory.newInstance(Unknown Source)
         at com.ibm.ejs.j2c.XMLReader.validate(XMLReader.java:673)
         at com.ibm.ejs.j2c.XMLReader.init(XMLReader.java:241)
         at com.ibm.ejs.j2c.XMLReader.<init>(XMLReader.java:165)
         at com.ibm.ejs.j2c.ConnectorRuntime.getJ2C_Properties(ConnectorRuntime.java:341)
         at com.ibm.ejs.j2c.poolmanager.PoolManager.<init>(PoolManager.java:541)
         at com.ibm.ejs.j2c.ConnectionFactoryBuilderImpl.createCFD_Common(ConnectionFactoryBuilderImpl.java:699)
         at com.ibm.ejs.j2c.ConnectionFactoryBuilderImpl.createConnectionFactoryDetails(ConnectionFactoryBuilderImpl.java:417)
         at com.ibm.ejs.j2c.ConnectionFactoryBuilderImpl.getObjectInstance(ConnectionFactoryBuilderImpl.java:1400)
         at javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:313)
         at com.ibm.ws.naming.util.Helpers.processSerializedObjectForLookup(Helpers.java:884)
         at com.ibm.ws.naming.jndicos.CNContextImpl.processResolveResults(CNContextImpl.java:1675)
         at com.ibm.ws.naming.jndicos.CNContextImpl.doLookup(CNContextImpl.java:1538)
         at com.ibm.ws.naming.jndicos.CNContextImpl.doLookup(CNContextImpl.java:1458)
         at com.ibm.ws.naming.jndicos.CNContextImpl.lookup(CNContextImpl.java:1130)
         at com.ibm.ws.naming.util.WsnInitCtx.lookup(WsnInitCtx.java:122)
         at javax.naming.InitialContext.lookup(InitialContext.java:363)
         at oracle.toplink.jndi.JNDIConnector.connect(Unknown Source)
         at oracle.toplink.sessions.DatabaseLogin.connect(Unknown Source)
         at oracle.toplink.internal.databaseaccess.DatabaseAccessor.connect(Unknown Source)
         at oracle.toplink.internal.databaseaccess.DatabaseAccessor.connect(Unknown Source)
         at oracle.toplink.threetier.ConnectionPool.buildConnection(Unknown Source)
         at oracle.toplink.threetier.ConnectionPool.startUp(Unknown Source)
         at oracle.toplink.threetier.ServerSession.connect(Unknown Source)
         at oracle.toplink.publicinterface.DatabaseSession.login(Unknown Source)
         at oracle.toplink.tools.sessionmanagement.SessionManager.getSession(Unknown Source)
         at oracle.toplink.tools.sessionmanagement.SessionManager.getSession(Unknown Source)
         at oracle.toplink.tools.sessionmanagement.SessionManager.getSession(Unknown Source)
         at com.deere.jdc.toplink.ToplinkServerSessionFactory.getSession(ToplinkServerSessionFactory.java:121)
         at com.deere.jdc.toplink.ToplinkServerSessionFactory.getClientSession(ToplinkServerSessionFactory.java:56)
         at com.deere.jdc.component.rcts.dao.RCTSGateway.findDealerASMByDealerNumber(RCTSGateway.java:194)
         at com.deere.jdc.component.rcts.service.RCTSService.getRCTSDealerASM(RCTSService.java:159)
         at com.deere.jdc.component.rcts.adapter.SoapRCTSService.getRCTSDealerASM(SoapRCTSService.java:107)
         at java.lang.reflect.Method.invoke(Native Method)
         at com.deere.jdc.component.rcts.messaging.RCTSMessageHandler.invokeServiceMethod(RCTSMessageHandler.java:103)
         at com.deere.jdc.component.rcts.messaging.RCTSMessageHandler.processMessage(RCTSMessageHandler.java:62)
         at com.deere.jdc.mqseries.MQJMSMessageHandler.onMessage(MQJMSMessageHandler.java:122)
         at com.ibm.mq.jms.MQQueueReceiver.receiveAsync(MQQueueReceiver.java:861)
         at com.ibm.mq.jms.SessionAsyncHelper.run(SessionAsyncHelper.java:401)
         at java.lang.Thread.run(Thread.java:513)
    [5/22/03 7:03:01:340 CDT] 2ec4c80 Helpers W NMSV0605W: A Reference object looked up from the context "localhost/nodes/localhost/servers/server1" with the name "jdbc/DB239DataSource" was sent to the JNDI Naming Manager and an exception resulted. Reference data follows:
    Reference Factory Class Name: com.ibm.ejs.j2c.ConnectionFactoryBuilderImpl
    Reference Factory Class Location URLs: <null>
    Reference Class Name: DB239DataSource
    Type: connectorName
    Content: DB239DataSource
    Type: classpath
    Content: C:\Program Files\IBM\WebSphere Studio\runtimes\base_v5/lib/rsadapter.rar
    Type: FactoryJndiName
    Content: jdbc/DB239DataSource
    Address Type: dd
    AddressContents: ffffffac ffffffed 0 5 73 72 0 25 63 6f 6d 2e 69 62 6d 2e 65 6a 73 2e 6a 32 63 2e 52 65 73 6f 75 72 63 65 ...
    Address Type: poolProps
    AddressContents: ffffffac ffffffed 0 5 73 72 0 27 63 6f 6d 2e 69 62 6d 2e 65 6a 73 2e 6a 32 63 2e 43 6f 6e 6e 65 63 74 6f ...
    Address Type: configProps
    AddressContents: ffffffac ffffffed 0 5 73 72 0 23 63 6f 6d 2e 69 62 6d 2e 65 6a 73 2e 6a 32 63 2e 43 6f 6e 6e 65 63 74 6f ...
    Address Type: dsProps
    AddressContents: ffffffac ffffffed 0 5 73 72 0 14 6a 61 76 61 2e 75 74 69 6c 2e 50 72 6f 70 65 72 74 69 65 73 39 12 ffffffd0 7a ...
    Address Type: mcfProps
    AddressContents: ffffffac ffffffed 0 5 73 72 0 2d 63 6f 6d 2e 69 62 6d 2e 65 6a 73 2e 6a 32 63 2e 4d 61 6e 61 67 65 64 43 ...
    Address Type: mbeanProps
    AddressContents: ffffffac ffffffed 0 5 73 72 0 1a 63 6f 6d 2e 69 62 6d 2e 65 6a 73 2e 6a 32 63 2e 4d 42 65 61 6e 50 72 6f ...
    Exception data follows:
    java.lang.ClassCastException: org.apache.xerces.jaxp.SAXParserFactoryImpl
         at javax.xml.parsers.SAXParserFactory.newInstance(Unknown Source)
         at com.ibm.ejs.j2c.XMLReader.validate(XMLReader.java:673)
         at com.ibm.ejs.j2c.XMLReader.init(XMLReader.java:241)
         at com.ibm.ejs.j2c.XMLReader.<init>(XMLReader.java:165)
         at com.ibm.ejs.j2c.ConnectorRuntime.getJ2C_Properties(ConnectorRuntime.java:341)
         at com.ibm.ejs.j2c.poolmanager.PoolManager.<init>(PoolManager.java:541)
         at com.ibm.ejs.j2c.ConnectionFactoryBuilderImpl.createCFD_Common(ConnectionFactoryBuilderImpl.java:699)
         at com.ibm.ejs.j2c.ConnectionFactoryBuilderImpl.createConnectionFactoryDetails(ConnectionFactoryBuilderImpl.java:417)
         at com.ibm.ejs.j2c.ConnectionFactoryBuilderImpl.getObjectInstance(ConnectionFactoryBuilderImpl.java:1400)
         at javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:313)
         at com.ibm.ws.naming.util.Helpers.processSerializedObjectForLookup(Helpers.java:884)
         at com.ibm.ws.naming.jndicos.CNContextImpl.processResolveResults(CNContextImpl.java:1675)
         at com.ibm.ws.naming.jndicos.CNContextImpl.doLookup(CNContextImpl.java:1538)
         at com.ibm.ws.naming.jndicos.CNContextImpl.doLookup(CNContextImpl.java:1458)
         at com.ibm.ws.naming.jndicos.CNContextImpl.lookup(CNContextImpl.java:1130)
         at com.ibm.ws.naming.util.WsnInitCtx.lookup(WsnInitCtx.java:122)
         at javax.naming.InitialContext.lookup(InitialContext.java:363)
         at oracle.toplink.jndi.JNDIConnector.connect(Unknown Source)
         at oracle.toplink.sessions.DatabaseLogin.connect(Unknown Source)
         at oracle.toplink.internal.databaseaccess.DatabaseAccessor.connect(Unknown Source)
         at oracle.toplink.internal.databaseaccess.DatabaseAccessor.connect(Unknown Source)
         at oracle.toplink.threetier.ConnectionPool.buildConnection(Unknown Source)
         at oracle.toplink.threetier.ConnectionPool.startUp(Unknown Source)
         at oracle.toplink.threetier.ServerSession.connect(Unknown Source)
         at oracle.toplink.publicinterface.DatabaseSession.login(Unknown Source)
         at oracle.toplink.tools.sessionmanagement.SessionManager.getSession(Unknown Source)
         at oracle.toplink.tools.sessionmanagement.SessionManager.getSession(Unknown Source)
         at oracle.toplink.tools.sessionmanagement.SessionManager.getSession(Unknown Source)
         at com.deere.jdc.toplink.ToplinkServerSessionFactory.getSession(ToplinkServerSessionFactory.java:121)
         at com.deere.jdc.toplink.ToplinkServerSessionFactory.getClientSession(ToplinkServerSessionFactory.java:56)
         at com.deere.jdc.component.rcts.dao.RCTSGateway.findDealerASMByDealerNumber(RCTSGateway.java:194)
         at com.deere.jdc.component.rcts.service.RCTSService.getRCTSDealerASM(RCTSService.java:159)
         at com.deere.jdc.component.rcts.adapter.SoapRCTSService.getRCTSDealerASM(SoapRCTSService.java:107)
         at java.lang.reflect.Method.invoke(Native Method)
         at com.deere.jdc.component.rcts.messaging.RCTSMessageHandler.invokeServiceMethod(RCTSMessageHandler.java:103)
         at com.deere.jdc.component.rcts.messaging.RCTSMessageHandler.processMessage(RCTSMessageHandler.java:62)
         at com.deere.jdc.mqseries.MQJMSMessageHandler.onMessage(MQJMSMessageHandler.java:122)
         at com.ibm.mq.jms.MQQueueReceiver.receiveAsync(MQQueueReceiver.java:861)
         at com.ibm.mq.jms.SessionAsyncHelper.run(SessionAsyncHelper.java:401)
         at java.lang.Thread.run(Thread.java:513)
    [5/22/03 7:03:01:891 CDT] 2ec4c80 Helpers W NMSV0610I: A NamingException is being thrown from a javax.naming.Context implementation. Details follow:
    Context implementation: com.ibm.ws.naming.jndicos.CNContextImpl
    Context method: lookup
    Context name: localhost/nodes/localhost/servers/server1
    Target name: jdbc/DB239DataSource
    Other data:
    Exception stack trace: com.ibm.websphere.naming.CannotInstantiateObjectException: Exception occurred while the JNDI NamingManager was processing a javax.naming.Reference object. Root exception is java.lang.ClassCastException: org.apache.xerces.jaxp.SAXParserFactoryImpl
         at javax.xml.parsers.SAXParserFactory.newInstance(Unknown Source)
         at com.ibm.ejs.j2c.XMLReader.validate(XMLReader.java:673)
         at com.ibm.ejs.j2c.XMLReader.init(XMLReader.java:241)
         at com.ibm.ejs.j2c.XMLReader.<init>(XMLReader.java:165)
         at com.ibm.ejs.j2c.ConnectorRuntime.getJ2C_Properties(ConnectorRuntime.java:341)
         at com.ibm.ejs.j2c.poolmanager.PoolManager.<init>(PoolManager.java:541)
         at com.ibm.ejs.j2c.ConnectionFactoryBuilderImpl.createCFD_Common(ConnectionFactoryBuilderImpl.java:699)
         at com.ibm.ejs.j2c.ConnectionFactoryBuilderImpl.createConnectionFactoryDetails(ConnectionFactoryBuilderImpl.java:417)
         at com.ibm.ejs.j2c.ConnectionFactoryBuilderImpl.getObjectInstance(ConnectionFactoryBuilderImpl.java:1400)
         at javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:313)
         at com.ibm.ws.naming.util.Helpers.processSerializedObjectForLookup(Helpers.java:884)
         at com.ibm.ws.naming.jndicos.CNContextImpl.processResolveResults(CNContextImpl.java:1675)
         at com.ibm.ws.naming.jndicos.CNContextImpl.doLookup(CNContextImpl.java:1538)
         at com.ibm.ws.naming.jndicos.CNContextImpl.doLookup(CNContextImpl.java:1458)
         at com.ibm.ws.naming.jndicos.CNContextImpl.lookup(CNContextImpl.java:1130)
         at com.ibm.ws.naming.util.WsnInitCtx.lookup(WsnInitCtx.java:122)
         at javax.naming.InitialContext.lookup(InitialContext.java:363)
         at oracle.toplink.jndi.JNDIConnector.connect(Unknown Source)
         at oracle.toplink.sessions.DatabaseLogin.connect(Unknown Source)
         at oracle.toplink.internal.databaseaccess.DatabaseAccessor.connect(Unknown Source)
         at oracle.toplink.internal.databaseaccess.DatabaseAccessor.connect(Unknown Source)
         at oracle.toplink.threetier.ConnectionPool.buildConnection(Unknown Source)
         at oracle.toplink.threetier.ConnectionPool.startUp(Unknown Source)
         at oracle.toplink.threetier.ServerSession.connect(Unknown Source)
         at oracle.toplink.publicinterface.DatabaseSession.login(Unknown Source)
         at oracle.toplink.tools.sessionmanagement.SessionManager.getSession(Unknown Source)
         at oracle.toplink.tools.sessionmanagement.SessionManager.getSession(Unknown Source)
         at oracle.toplink.tools.sessionmanagement.SessionManager.getSession(Unknown Source)
         at com.deere.jdc.toplink.ToplinkServerSessionFactory.getSession(ToplinkServerSessionFactory.java:121)
         at com.deere.jdc.toplink.ToplinkServerSessionFactory.getClientSession(ToplinkServerSessionFactory.java:56)
         at com.deere.jdc.component.rcts.dao.RCTSGateway.findDealerASMByDealerNumber(RCTSGateway.java:194)
         at com.deere.jdc.component.rcts.service.RCTSService.getRCTSDealerASM(RCTSService.java:159)
         at com.deere.jdc.component.rcts.adapter.SoapRCTSService.getRCTSDealerASM(SoapRCTSService.java:107)
         at java.lang.reflect.Method.invoke(Native Method)
         at com.deere.jdc.component.rcts.messaging.RCTSMessageHandler.invokeServiceMethod(RCTSMessageHandler.java:103)
         at com.deere.jdc.component.rcts.messaging.RCTSMessageHandler.processMessage(RCTSMessageHandler.java:62)
         at com.deere.jdc.mqseries.MQJMSMessageHandler.onMessage(MQJMSMessageHandler.java:122)
         at com.ibm.mq.jms.MQQueueReceiver.receiveAsync(MQQueueReceiver.java:861)
         at com.ibm.mq.jms.SessionAsyncHelper.run(SessionAsyncHelper.java:401)
         at java.lang.Thread.run(Thread.java:513)
    2003.05.22 07:03:02.111--ServerSession(426724481)--Thread[asyncDelivery0,5,main]--EXCEPTION [TOPLINK-7060] (TopLink - 9.0.3 (Build 423)): oracle.toplink.exceptions.ValidationException
    EXCEPTION DESCRIPTION: Cannot acquire data source [jdbc/DB239DataSource].
    INTERNAL EXCEPTION: com.ibm.websphere.naming.CannotInstantiateObjectException: Exception occurred while the JNDI NamingManager was processing a javax.naming.Reference object. [Root exception is java.lang.ClassCastException: org.apache.xerces.jaxp.SAXParserFactoryImpl]LOCAL EXCEPTION STACK:
    EXCEPTION [TOPLINK-7060] (TopLink - 9.0.3 (Build 423)): oracle.toplink.exceptions.ValidationException
    EXCEPTION DESCRIPTION: Cannot acquire data source [jdbc/DB239DataSource].
    INTERNAL EXCEPTION: com.ibm.websphere.naming.CannotInstantiateObjectException: Exception occurred while the JNDI NamingManager was processing a javax.naming.Reference object. [Root exception is java.lang.ClassCastException: org.apache.xerces.jaxp.SAXParserFactoryImpl]
         at oracle.toplink.exceptions.ValidationException.cannotAcquireDataSource(Unknown Source)
         at oracle.toplink.jndi.JNDIConnector.connect(Unknown Source)
         at oracle.toplink.sessions.DatabaseLogin.connect(Unknown Source)
         at oracle.toplink.internal.databaseaccess.DatabaseAccessor.connect(Unknown Source)
         at oracle.toplink.internal.databaseaccess.DatabaseAccessor.connect(Unknown Source)
         at oracle.toplink.threetier.ConnectionPool.buildConnection(Unknown Source)
         at oracle.toplink.threetier.ConnectionPool.startUp(Unknown Source)
         at oracle.toplink.threetier.ServerSession.connect(Unknown Source)
         at oracle.toplink.publicinterface.DatabaseSession.login(Unknown Source)
         at oracle.toplink.tools.sessionmanagement.SessionManager.getSession(Unknown Source)
         at oracle.toplink.tools.sessionmanagement.SessionManager.getSession(Unknown Source)
         at oracle.toplink.tools.sessionmanagement.SessionManager.getSession(Unknown Source)
         at com.deere.jdc.toplink.ToplinkServerSessionFactory.getSession(ToplinkServerSessionFactory.java:121)
         at com.deere.jdc.toplink.ToplinkServerSessionFactory.getClientSession(ToplinkServerSessionFactory.java:56)
         at com.deere.jdc.component.rcts.dao.RCTSGateway.findDealerASMByDealerNumber(RCTSGateway.java:194)
         at com.deere.jdc.component.rcts.service.RCTSService.getRCTSDealerASM(RCTSService.java:159)
         at com.deere.jdc.component.rcts.adapter.SoapRCTSService.getRCTSDealerASM(SoapRCTSService.java:107)
         at java.lang.reflect.Method.invoke(Native Method)
         at com.deere.jdc.component.rcts.messaging.RCTSMessageHandler.invokeServiceMethod(RCTSMessageHandler.java:103)
         at com.deere.jdc.component.rcts.messaging.RCTSMessageHandler.processMessage(RCTSMessageHandler.java:62)
         at com.deere.jdc.mqseries.MQJMSMessageHandler.onMessage(MQJMSMessageHandler.java:122)
         at com.ibm.mq.jms.MQQueueReceiver.receiveAsync(MQQueueReceiver.java:861)
         at com.ibm.mq.jms.SessionAsyncHelper.run(SessionAsyncHelper.java:401)
         at java.lang.Thread.run(Thread.java:513)
    INTERNAL EXCEPTION STACK:
    com.ibm.websphere.naming.CannotInstantiateObjectException: Exception occurred while the JNDI NamingManager was processing a javax.naming.Reference object. Root exception is java.lang.ClassCastException: org.apache.xerces.jaxp.SAXParserFactoryImpl
         at javax.xml.parsers.SAXParserFactory.newInstance(Unknown Source)
         at com.ibm.ejs.j2c.XMLReader.validate(XMLReader.java:673)
         at com.ibm.ejs.j2c.XMLReader.init(XMLReader.java:241)
         at com.ibm.ejs.j2c.XMLReader.<init>(XMLReader.java:165)
         at com.ibm.ejs.j2c.ConnectorRuntime.getJ2C_Properties(ConnectorRuntime.java:341)
         at com.ibm.ejs.j2c.poolmanager.PoolManager.<init>(PoolManager.java:541)
         at com.ibm.ejs.j2c.ConnectionFactoryBuilderImpl.createCFD_Common(ConnectionFactoryBuilderImpl.java:699)
         at com.ibm.ejs.j2c.ConnectionFactoryBuilderImpl.createConnectionFactoryDetails(ConnectionFactoryBuilderImpl.java:417)
         at com.ibm.ejs.j2c.ConnectionFactoryBuilderImpl.getObjectInstance(ConnectionFactoryBuilderImpl.java:1400)
         at javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:313)
         at com.ibm.ws.naming.util.Helpers.processSerializedObjectForLookup(Helpers.java:884)
         at com.ibm.ws.naming.jndicos.CNContextImpl.processResolveResults(CNContextImpl.java:1675)
         at com.ibm.ws.naming.jndicos.CNContextImpl.doLookup(CNContextImpl.java:1538)
         at com.ibm.ws.naming.jndicos.CNContextImpl.doLookup(CNContextImpl.java:1458)
         at com.ibm.ws.naming.jndicos.CNContextImpl.lookup(CNContextImpl.java:1130)
         at com.ibm.ws.naming.util.WsnInitCtx.lookup(WsnInitCtx.java:122)
         at javax.naming.InitialContext.lookup(InitialContext.java:363)
         at oracle.toplink.jndi.JNDIConnector.connect(Unknown Source)
         at oracle.toplink.sessions.DatabaseLogin.connect(Unknown Source)
         at oracle.toplink.internal.databaseaccess.DatabaseAccessor.connect(Unknown Source)
         at oracle.toplink.internal.databaseaccess.DatabaseAccessor.connect(Unknown Source)
         at oracle.toplink.threetier.ConnectionPool.buildConnection(Unknown Source)
         at oracle.toplink.threetier.ConnectionPool.startUp(Unknown Source)
         at oracle.toplink.threetier.ServerSession.connect(Unknown Source)
         at oracle.toplink.publicinterface.DatabaseSession.login(Unknown Source)
         at oracle.toplink.tools.sessionmanagement.SessionManager.getSession(Unknown Source)
         at oracle.toplink.tools.sessionmanagement.SessionManager.getSession(Unknown Source)
         at oracle.toplink.tools.sessionmanagement.SessionManager.getSession(Unknown Source)
         at com.deere.jdc.toplink.ToplinkServerSessionFactory.getSession(ToplinkServerSessionFactory.java:121)
         at com.deere.jdc.toplink.ToplinkServerSessionFactory.getClientSession(ToplinkServerSessionFactory.java:56)
         at com.deere.jdc.component.rcts.dao.RCTSGateway.findDealerASMByDealerNumber(RCTSGateway.java:194)
         at com.deere.jdc.component.rcts.service.RCTSService.getRCTSDealerASM(RCTSService.java:159)
         at com.deere.jdc.component.rcts.adapter.SoapRCTSService.getRCTSDealerASM(SoapRCTSService.java:107)
         at java.lang.reflect.Method.invoke(Native Method)
         at com.deere.jdc.component.rcts.messaging.RCTSMessageHandler.invokeServiceMethod(RCTSMessageHandler.java:103)
         at com.deere.jdc.component.rcts.messaging.RCTSMessageHandler.processMessage(RCTSMessageHandler.java:62)
         at com.deere.jdc.mqseries.MQJMSMessageHandler.onMessage(MQJMSMessageHandler.java:122)
         at com.ibm.mq.jms.MQQueueReceiver.receiveAsync(MQQueueReceiver.java:861)
         at com.ibm.mq.jms.SessionAsyncHelper.run(SessionAsyncHelper.java:401)
         at java.lang.Thread.run(Thread.java:513)

    This looks like a classPath issue.check ur runtime
    class path and make sure xerces is before any other
    parser(xml4j /oracleParser)
    vasanth

  • Servlet passing values to JSP and ClasscastException

    I am using weblogic 5.1 to run my Servlets.
              I want to know when I forward from a servlet to a JSP how do I pass
              values especially Java Objects (Sometimes Objects of User written Java
              classes).
              Uptil now I have been putting all values in the session from where the
              JSP picks them up, but somehow I have a feeling that this is not the
              right way.
              In a code I am putting a Java Object (It contains two attributes of
              Java.util.Vector type) in the session so that the JSP to which I am
              forwarding it to can use it I have put my class in the ServletClasses.
              Intertestingly it runs well till the contents of the Vector are changed.
              As the contents of the vector are changed, it throws ClassCastException
              The StackTrace is as follows:
              java.lang.ClassCastException
              at
              jsp_servlet._select_95_account_95_profile._jspService(_select_95_account_95_pro
              file.java, Compiled Code)
              at weblogic.servlet.jsp.JspBase.service(JspBase.java, Compiled
              Code)
              at
              weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java,
              C
              ompiled Code)
              at
              weblogic.servlet.internal.RequestDispatcherImpl.forward(RequestDispatcherImpl.j
              ava:143)
              at
              com.logistics.optistopasp.servlet.AccountSelectServlet.doPost(AccountSelectServ
              let.java, Compiled Code)
              at
              com.logistics.optistopasp.servlet.AccountSelectServlet.doGet(AccountSelectServl
              et.java:35)
              at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
              at javax.servlet.http.HttpServlet.service(HttpServlet.java:865)
              at
              weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java,
              C
              ompiled Code)
              at
              weblogic.servlet.internal.ServletContextImpl.invokeServlet(ServletContextImpl.j
              ava, Compiled Code)
              at
              weblogic.servlet.internal.ServletContextImpl.invokeServlet(ServletContextImpl.j
              ava, Compiled Code)
              at
              weblogic.servlet.internal.ServletContextManager.invokeServlet(ServletContextMan
              ager.java, Compiled Code)
              at
              weblogic.socket.MuxableSocketHTTP.invokeServlet(MuxableSocketHTTP.java,
              Compile
              d Code)
              at
              weblogic.socket.MuxableSocketHTTP.execute(MuxableSocketHTTP.java,
              Compiled Code
              at weblogic.kernel.ExecuteThread.run(ExecuteThread.java,
              Compiled Code)
              Can anybody please Help!!!!.
              Thanks
              Pankaj
              

    Only can confirm your finding - the jsp is using a different class loader to the servlet that originally instantiated the object. There's the rub. I haven't figured out yet how to fix that. I can get the classloader but don't know how to get the runtime to use that class loader to perform cast.
              

  • NamingException and ClassCastException during jndi lookup

    Hi,
    I am trying to access the SAP database(MaxDb)using JNDI lookup in WebDynpro simple java project.
    But, during lookup I am getting the following error
    com.sap.engine.services.jndi.persistent.exceptions.NamingException: Exception during lookup operation of object with name : jdbc/VSLOOKUP , can not resolve object reference [Root exception is java.lang.ClassCastException]
         at com.sap.engine.services.jndi.implclient.ClientContext.lookup(ClientContext.java:469)
         at com.sap.engine.services.jndi.implclient.ClientContext.lookup(ClientContext.java:558)
         at javax.naming.InitialContext.lookup(InitialContext.java:347)
         at com.vitalspring.healthbenefits.dbaccess.DBAccessHelper.main(DBAccessHelper.java:51)
    Caused by: java.lang.ClassCastException
         at com.sap.engine.services.connector.ResourceObjectFactory.getObjectInstance(ResourceObjectFactory.java:149)
         at javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:301)
         at com.sap.engine.services.jndi.implclient.ClientContext.lookup(ClientContext.java:466)
         ... 3 more
    Can anybody throw some light on it?
    Because, it's urgent for my project.
    I would appreciate any kind of help in this regard.
    Thanks & Regards,
    Rambabu Kancharla

    Hello Anilkumar,
    Sorry for delay in reply as I was on out of work and didn't get chance to check the SDN forums.
    I was able to do it in latest version sneak preview 11.
    I think the problem with the version.
    Thanks,
    Rambabu

  • ClassLoader and SecurityManagers

    Hi all,
    I am working on a standalone application that has the ability to download
    plug-ins from the Internet and run them.
    Of course, I would like to ensure the users of my application that the
    plug-ins don't do anything harmful to their computers.
    So I use my own ClassLoader (which extends URLClassLoader) to look for
    plug-ins (JAR-files) in the dir plugins/ . This works just great.
    But what is the best way to add security to this approach?
    I want the standard Java API as well as my base application to be able to do
    what they please, but all plug-ins (loaded by my ClassLoader) should have
    very heavy restrictions.
    I think I should use a SecurityManager, but all I've managed to accomplish
    is to restrict all classes, not just the plugins.
    Any suggestions or pointers to valuable resources?
    Cheers,
    toffe

    I have the same problem. Did you ever get an answer to your question? I would appreciate it if you can share your solution with me. Thanks!
    - Luis

  • Problems with ClassLoader and Jar-Files

    1. I'm not good in englisch (writing).
    2. I have the problem, that i want to load a object from an application in Jar-File A out of the Jar-File B. I set the CLASSPATH for B with System.setProperty("java.class.path", <ClassPath>); . Then i tried to get the Class-object from a class of B. I do it with getClass().getForName("package.Name");.
    But everytime i get a ClassNotFoundException. Where is the Error? Or how can i load a class out of a Jar-File and get an instance? I hope you can help me..
    Tobain

    The error is that classes are loaded from the classpath as it existed when the program started. Changing the system property that was copied from the classpath has no effect, as you have seen. I have heard that you can write your own ClassLoader if you want to load classes from arbitrary locations, but I do not know how to do that myself.

  • XMLDocument and ClassCastException

    We recently upgraded to Java 1.4.1_02 from Java 1.3.0.
    The following type casting worked in java 1.3.0, but throws java.lang.ClassCastException while running in Java 1.4.1.
    XmlDocument xdoc = (XmlDocument)doc;
    where 'doc' is a variable of interface org.w3c.dom.Document
    Do anybody have an idea why it does not work in Java 1.4.1?
    Does the parser.jar file (that has the classfiles XMLDocument and Document) need to be upgraded for Java 1.4.1?

    The problem was because Java 1.4.1 comes with its apache's implementation of XMLDocument and this was interfering with the XMLDocument class in parser.jar, which was sun's implementation.
    So, when we removed parser.jar from classpath, it is working fine.

  • Dynamic classloading and incompatibleclasschangeerror

    I have different versions of my applications like v1 v2 v3 and my current version is v4.
    In my case, v4 might need to talk to v3, v2 or v1. To achevie that I need that same versions of classes from the respective versions of the applications i.e. I will make jars like v3.jar, v2.jar and v1.jar which will be loaded dynamically using my own custom class loaders. When v4 trying to access v3 it uses the classes using the classloader which loaded v3.jar
    v4 contacts v3, v2, v1 through RMI.
    Now the problem is when v4 is calling a remote method of v3 I am getting IncompatibleClassChangeError
    I tried to recompile all the required classes in v3 and created a new v3.jar and I have loaded the same dynamically in v4. I also recompiled all the classes of v4, but still the result is same.
    Both v3 classes and v4 classes are compiled using the same JRE version.
    Can somebody help me to figure out what could be the issue.
    Thanks

    If you know that there is a constructor that takes,
    for example, a single String argument you can use
    something like this:
    Class clazz = ...; // class to instantiate
    String stringArg = ...; // argument to pass to constructor
    Constructor c = clazz.getConstructor( new Class[] { String.class } );
    Object value = c.newInstance( new Object[] { stringArg > } );
    And even better, when JDK 1.5 is released, you'll be able to write:
        Class clazz = ...;
        String stringArg = ...;
        Constructor c = clazz.getConstructor(String.class);
        Object value = c.newInstance(stringArg);Geoff

Maybe you are looking for

  • Can't recover iphone after latest update

    Last night I got a prompt to update my iPhone software. I hit ok, it did it's thing and then gave me an error and said it was in recovery mode and I'd need to recover it. Fine. I hit recover, it gets all the way to the end of the process and gives me

  • Data level Security in Essbase

    I have an requirement to implement data level security in Essbase. For ex: A user can only see those data which are from Asia region or an user will be able to see those data which are from America. Asia and America are defined in my location dimensi

  • ABAP OO and parallel processing

    Hello ABAP community, I am trying to implement a ABAP OO scenario where i have to take into account parallel processing and processing logic in the sense of update function modules (TYPE V1). The szenario is definied as follows: Frame class X creates

  • SAP BW-BPS Scenarios needed

    Hi Gurus, I need the help regarding below scenarios.Pls help. 1.How to create planning level, planning packages and layouts in BPS. 2.How we use planning functions and types of functions. 3.How we use planning sequence and charecteristic relationship

  • How can we add a field with drop down in a custom table

    Hello, I have a requirment in which I have to add a extra field in a custom table. Secondly I need to have a drop down with some values in it. Can you let me know how can we go about this.