Weblogic doesn't reload classes


EJB design: Weblogic doesn't reload classes

  1. Weblogic doesn't reload classes (7 messages)


    I'm working with weblogic7.0 sp2 on Windows NT... When I put the updated classes into the classes directory under WEB-INF... The latest classes are not getting loaded until I restart the server... I've set the "set STARTMODE=false" ... But, it works fine in windows 2000 server...


    Threaded Messages (7)

  2. Weblogic doesn't reload classes[ Go to top ]

    I believe that developer mode (startmode=false) is only for EJB and servlet hot deployment. If you have a non-servlet class, I don't think it will be reloaded automatically.

    It's too bad, because that would be way more useful than half of what's been put in Weblogic.
  3. Weblogic doesn't reload classes[ Go to top ]


       What ever classes I put under WEB-INF\clasess dir should be loaded automatically right...Nor, the servlets or other classes are getting loaded automatically...

  4. Weblogic doesn't reload classes[ Go to top ]

    What kind of classes are we talking about here ? Servlets or non-servlets ?
    Instead of restarting , I guess even an untarget/re-target might help.
  5. Uable to load classes dynamically[ Go to top ]

    HI Kumar,

    I've servlets and non-servlet classes under WEB-INF\classes dir... Either of the classes are getting loaded
    Can u be more clear on this statement..."I guess even an untarget/re-target might help"..

  6. Weblogic doesn't reload classes[ Go to top ]

    are these classes present in your weblogic classpath?? If yes then you need to recycle the server whenever you make any changes
  7. Weblogic doesn't reload classes[ Go to top ]

    Yes, technically when running in development mode it should be able reload everything in WEB-INF/classes and the EJBs as and when they are changed at runtime.

    I know it is painful to restart the server for a small change. You might want to try the following things.

    1) Put a jsp in the webapp and try to access it by changing at runtime. See if the changes take effect. This way we can make sure that the server is running in development mode with out any problems.

    2) If step 1 is successful then check if the WEB-INF/classes directory is in the classpath (startWeblogic.cmd). If its in the classpath then remove that entry from classpath and restart. Now see if the changes to classes at runtime take effect.

    3) If step 1 is successful and step2 fails then try to untarget-retarget the webapp.[ In Weblogic Admin Console, when you select the webapp, on the right side tabbed pane, u will find a tab named Targets ( move from chosen to available{untarget}, and then again available to chosen{retarget} )]
       After re-targeting check if the changes take effect.

  8. Weblogic doesn't reload classes[ Go to top ]

    If you hsave any class in the system class path ie the class path being used by the weblogic server itself- that class cannot be hot deployed
    if u change that class- u have to bounce the server

    The reason for this is that in Java there is a hierarchy of classlaoders- At teh top is system classlaoder and then we have the application class loaders and the bean class laoders and so forth

    whenver a class is required to be loaded by another class the class asks its own class loader to load the class. That class laoder asks its superior class laoder first and that class laoder will in turn ask its own superior in turn
    This sets a chain with the request going from bottom to top and search starting from top to bottom

    AT teh top is the system class loader . That is the class laoder being used by the weblogic server. If it finds it no other class loader geta a chance to search for it. so if u want the junior level class laoders to be able to load it the class should not be in the apth of teh superior clkass loaders

    Once a class has been loaded it can be hot deployed ONLY IF the classloader that loaded that class is destroyed
    The system classlaoder is never destroyed except when u bounce the server
    The application classlaoder is destroyed and recreated whenver the bean is redeployed

    Makes sense ???