While I doubt this is very common for most systems, we have had problems
with jsp pages under HP-UX ( albeit using jrun 2.3.3).
Sometimes when we place new jsp pages on our server that use a particular
java class and we do not restart Jrun
then unrelated Jsp pages elsewhere in the site that use that class begin to
throw IllegalClassChange exceptions. Restarting jrun solves the problem. Of
course, this problem may be resolvable by accessing the class using the bean
tag rather than calling it directly but we have not had a chance to check
out the entire phase space of possibilities yet as it only occurs on our
production machine and not on the test machine. Also, it is not a very
reproducible event and appears to depend on system load and memory
available.
Jeff
-----Original Message-----
From: Jackie Comeau [mailto:[EMAIL PROTECTED]]
Sent: Thursday, August 02, 2001 8:05 AM
To: JRun-Talk
Subject: RE: bean newbie question
So, you recommend every time you make a JSP change to stop and restart the
server to make sure JRun recognizes the change? I have not run into this
yet, but I'm just playing around with JSP and actually developing anything
serious yet.
This is not a good thing! Is this a possible bug with JRun and has it been
reported?
I think I would test my JSP's changes anyways before putting them into
production, so hopefully I won't come up with problems of new class files
not replacing old automatically. But yeah, I see the problem if your
copying your changes over assuming the production server is going to
recompile.
Hmmm, not good!
Jackie
On Wednesday, August 01, 2001 6:00 PM, Haseltine, Celeste
[SMTP:[EMAIL PROTECTED]] wrote:
> Jay,
>
> To answer your question, I don't think you can. The server loads all
your
> classes into memory, along with your compiled JSP pages. If your in a
> development mode, JRUN will compile your JSP's to servlets the first time
> you request the JSP, and subsequently when it see's that the "saved" date
is
> newer than the compile date. But not so for class files. In order to
> replace an old class file with a new class file in memory, you have to
stop
> and restart the server. Although this is not usually required for JSP
> pages, but I have had times where minor changes in a JSP did NOT cause
JRUN
> to recompile the JSP to a servlet, and I had to stop/restart the server
in
> order to reflect the changes in the JSP page also.
>
> If you are using JRUN studio as your IDE, you can stop and restart the
> server from within the IDE using hotkeys. If not, you can assign a
shortcut
> to your desktop and stop/restart the server from the shortcut.
>
> Celeste
>
> -----Original Message-----
> From: Jay [mailto:[EMAIL PROTECTED]]
> Sent: Wednesday, August 01, 2001 7:45 PM
> To: JRun-Talk
> Subject: bean newbie question
>
>
> This should be simple. I have created a bean, the first time I execute a
> JSP page that calls the bean, a class file is created for the bean and
the
> jsp page in C:\test\WEB-INF\jsp. I then have to move the bean.class
file
> into the C:\test\WEB-INF\classes directory for my code to
execute.(because I
> get a java.lang.NoClassDefFoundError: getmov)
> However, if I make a change to the source code of the bean and
reexecute,
> it appears that the original class is still in memory and manifests it
self
> when the JSP is executed thereby not reflecting the new changes. I have
> remove all traces of the .java and .class files ( ie delete them) and to
> restart the default server inorder to create new classes.
>
> 1.How can I clear the old code and create a new class that reflects the
> changes to the source without restarting the server everytime
> 2. Where exactly should the .class file reside in the
> C:\test\WEB-INF\classes or in C:\test\WEB-INF\classes\beans
>
> //HERE IS THE BEAN
> import java.lang.* ;
> public class getmov {
>
> private String convert,clipnumber ;
>
> public void setConvert (String convert)
> {this.convert = convert ; }
>
> public String getConvert()
> { return convert ; }
>
> public String getClipnumber()
> { return clipnumber ; }
>
> public void setClipnumber(String clipnumber)
> {
>
> if (this.convert != "TRUE")
> { this.clipnumber = "TRUE" ; }
> else
> { this.clipnumber = "FALSE" ; }
>
> }
>
> }
>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Structure your ColdFusion code with Fusebox. Get the official book at
http://www.fusionauthority.com/bkinfo.cfm
Archives: http://www.mail-archive.com/[email protected]/
Unsubscribe: http://www.houseoffusion.com/index.cfm?sidebar=lists