Load java file

I have a jsp/java web application running on solaris using tomcat. When I change a jsp file and view the webpage through IE, the change is instant. But, when I make a change to a java file and compile the project, the new class files are created but the change does not take affect on IE until after I restart tomcat. Is there an easier way to have those class files reload other than restarting tomcat?
Thanks

The JVM running the tomcat server has already loaded
the servlet's .class file and initialised the servlet
object. It won't reload the .class file or restart
the servlet automatically. One solution is to stop
and then restart tomcat, so it will use the new
.class file.
Another solution is to use the manager application
to issue a reload command for your web application.
This will force tomcat to reload the new .class
files without having to shutdown tomcat. For
example: If your web application is called myapp and
located in webapp/myapp, then using the following
URL will use the manager to reload the application:
http://localhost:8080/manager/reload?path=/myapp
Those are the difficult ways of doing it. The real good solution in a development environment, which you guys have been overlooking, is to configure the Context of the web application as reloadable.
http://www.coreservlets.com/Apache-Tomcat-Tutorial/#Servlet-Reloading
An example is mentioned on the link above.

Similar Messages

  • Error while loading java file in Oracle

    Hi,
    I am facing error while loading java class into oracle . Can you please help
    -bash-3.2$ cd /export/home/sacuser/
    -bash-3.2$ loadjava -user sacuserdb/sacuserdb@BLM - resolve Oracle_Validator/src/com/nec/blm/oracle/validator/Validate.java
    unrecognized or badly formed option -
    loadjava: Usage: loadjava [-definer] [-encoding encoding] [-force] [-genmissing] [-genmissingjar jar] [-grant grant                                          s] [-help] [-nousage] [-noverify] [-oci8] [-order] [-resolve] [-resolver resolver] [-schema schema] [-synonym] [-th                                          in] [-tableschema schema] [-user user/password@database] [-verbose] classes..jars..resources..properties...
    -bash-3.2$ loadjava -user sacuserdb/sacuserdb@BLM -resolve Oracle_Validator/src/com/nec/blm/oracle/validator/Validate.java
    An unexpected exception has been detected in native code outside the VM.
    Unexpected Signal : 11 occurred at PC=0x0
    Function=[Unknown.]
    Library=(N/A)
    NOTE: We are unable to locate the function name symbol for the error
          just occurred. Please refer to release documentation for possible
          reason and solutions.
    Current Java thread:
            at oracle.jdbc.driver.T2CConnection.t2cCreateState(Native Method)
            at oracle.jdbc.driver.T2CConnection.logon(T2CConnection.java:346)
            at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:413)
            at oracle.jdbc.driver.T2CConnection.<init>(T2CConnection.java:131)
            at oracle.jdbc.driver.T2CDriverExtension.getConnection(T2CDriverExtension.java:77)
            at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:752)
            at java.sql.DriverManager.getConnection(DriverManager.java:512)
            - locked <0xf5fdc448> (a java.lang.Class)
            at java.sql.DriverManager.getConnection(DriverManager.java:140)
            - locked <0xf5fdc448> (a java.lang.Class)
            at oracle.aurora.server.tools.loadjava.DatabaseOptions.getConnection(DatabaseOptions.java:180)
            at oracle.aurora.server.tools.loadjava.DatabaseOptions.connect(DatabaseOptions.java:123)
            at oracle.aurora.server.tools.loadjava.LoadJavaState.getConnection(LoadJavaState.java:409)
            at oracle.aurora.server.tools.loadjava.LoadJavaState.getOldMD5(LoadJavaState.java:696)
            at oracle.aurora.server.tools.loadjava.ClientSchemaObject.getOldMD5(ClientSchemaObject.java:52)
            at oracle.aurora.server.tools.loadjava.SchemaObject.doCreate(SchemaObject.java:172)
            at oracle.aurora.server.tools.loadjava.SchemaObject.process1(SchemaObject.java:215)
            at oracle.aurora.server.tools.loadjava.LoadJava.add(LoadJava.java:532)
            at oracle.aurora.server.tools.loadjava.LoadJava.addSource(LoadJava.java:574)
            at oracle.aurora.server.tools.loadjava.LoadJava.add(LoadJava.java:439)
            at oracle.aurora.server.tools.loadjava.LoadJava.add(LoadJava.java:380)
            at oracle.aurora.server.tools.loadjava.LoadJava.add(LoadJava.java:349)
            at oracle.aurora.server.tools.loadjava.LoadJava.add(LoadJava.java:652)
            at oracle.aurora.server.tools.loadjava.LoadJava.processDeferredFiles(LoadJava.java:617)
            at oracle.aurora.server.tools.loadjava.LoadJava.process(LoadJava.java:818)
            at oracle.aurora.server.tools.loadjava.LoadJava.command(LoadJava.java:251)
            at oracle.aurora.server.tools.loadjava.LoadJavaMain.run(LoadJavaMain.java:103)
            at oracle.aurora.server.tools.loadjava.LoadJavaMain.main(LoadJavaMain.java:28)
    Dynamic libraries:
    0x8050000       /opt/oracle/product/10g/jdk/jre/bin/java
    0xfef80000      /lib/libthread.so.1
    0xfef40000      /lib/libdl.so.1
    0xfee10000      /lib/libc.so.1
    0xfea00000      /opt/oracle/product/10g/jdk/jre/lib/i386/client/libjvm.so
    0xfedd0000      /usr/lib/libCrun.so.1
    0xfedb0000      /lib/libsocket.so.1
    0xfe960000      /lib/libnsl.so.1
    0xfed90000      /lib/libm.so.1
    0xfedc0000      /usr/lib/libsched.so.1
    0xfe900000      /lib/libm.so.2
    0xfed40000      /lib/libscf.so.1
    0xfe8e0000      /lib/libdoor.so.1
    0xfe8b0000      /lib/libuutil.so.1
    0xfe890000      /lib/libgen.so.1
    0xfe870000      /lib/libmd.so.1
    0xfe850000      /lib/libmp.so.2
    0xfe830000      /opt/oracle/product/10g/jdk/jre/lib/i386/native_threads/libhpi.so
    0xfe3d0000      /opt/oracle/product/10g/jdk/jre/lib/i386/libverify.so
    0xfe3a0000      /opt/oracle/product/10g/jdk/jre/lib/i386/libjava.so
    0xfe380000      /opt/oracle/product/10g/jdk/jre/lib/i386/libzip.so
    0xf9e80000      /opt/oracle/product/10g/lib32/libocijdbc10.so
    0xf0e00000      /opt/oracle/product/10g/lib32/libclntsh.so.10.1
    0xf0c60000      /opt/oracle/product/10g/lib32/libnnz10.so
    0xf9e60000      /lib/libkstat.so.1
    0xf9e30000      /lib/libaio.so.1
    0xf1b60000      /lib/librt.so.1
    Heap at VM Abort:
    Heap
    def new generation   total 576K, used 237K [0xf1e00000, 0xf1ea0000, 0xf22e0000)
      eden space 512K,  45% used [0xf1e00000, 0xf1e3a058, 0xf1e80000)
      from space 64K,   8% used [0xf1e90000, 0xf1e915c0, 0xf1ea0000)
      to   space 64K,   0% used [0xf1e80000, 0xf1e80000, 0xf1e90000)
    tenured generation   total 1408K, used 204K [0xf22e0000, 0xf2440000, 0xf5e00000)
       the space 1408K,  14% used [0xf22e0000, 0xf23130f0, 0xf2313200, 0xf2440000)
    compacting perm gen  total 4096K, used 2662K [0xf5e00000, 0xf6200000, 0xf9e00000)
       the space 4096K,  65% used [0xf5e00000, 0xf6099a38, 0xf6099c00, 0xf6200000)
    Local Time = Mon Jun 17 16:29:08 2013
    Elapsed Time = 0
    # The exception above was detected in native code outside the VM
    # Java VM: Java HotSpot(TM) Client VM (1.4.2_05-b04 mixed mode)
    # An error report file has been saved as hs_err_pid27805.log.
    # Please refer to the file for further information.
    Abort (core dumped)

    Please try to compile your java source file with jdk avaiable in ORACLE_HOME\jdk\bin\javac.
    load the compiled class file in oracle DB using loadjava utility.
    loadjava -user scott/tiger javafile.class

  • Loading java file in a java file

    Hi everyone,
    Sorry this is probably a really simple question, but i'm getting a bit stuck and i can't find anywhere that helps explain how to do it.
    I've got two files that represent two questionnaires (questionaire 1 and questionnaire 2), depending on their results to the questions they are given a score of a or b at the end of each questionnaire file. The different combinations of a's and b's result in one of four files needing to loaded (file c, d, e and f). I know i need to use an if statement, but don't know how to execute the loading of the other files.
    This means that if the user scores:
    questionnaire 1 = a
    questionnaire 2 = a
    file c needs to be run
    questionnaire 1 = a
    questionnaire 2 = b
    file d needs to be run
    questionnaire 1 = b
    questionnaire 2 = a
    file d needs to be run
    questionnaire 1 = b
    questionnaire 2 = b
    file e needs to be run
    Would this be best achieved having one central "control file" that contains a big if statement to achieve this? or should i put both questionnaires in one file? then have the if statement at the bottom of this file and execute the chosen c,d,e,f file when the resuts are generated?
    Sorry if i've made this really confusing in the way i've written it!
    Any suggestions would be really appreciated!

    i don't really know what you're aiming at but what you possibly could do is the "files" that you are talking about, you can extend them with JPanel, and then make one main class which extends JFrame, so you can load the extern panels you've made with an actionlistener, into the main class, but the problem there is that you need to find some way to dispose the current panel first, because else, things can be messed up
    OR
    instead of working with extern panels, you can just work with one main class with several panels, and display the panels true or false, which will work perfect but i don't know if this is an option for you as you were talking about extern classes

  • Loadjava to load jar file.

    hi all,
    i created a jar file 'hello.jar' with the contents as 'hello/HelloName.class'
    here, hello is the package and HelloName.class is a Java Class.
    the jar i created with un-compression mode. so the Class file size is same in jar file and out side of jar.
    i tried to load the jar using, loadjava, here is the syntax.
    bash-3.00$ loadjava -u user/password -v /export/home/oracle/javaSrc/hello.jar
    arguments: '-u' 'spboardv2/***' '-v' '/export/home/oracle/javaSrc/hello.jar'
    creating : class hello/HelloName
    loading : class hello/HelloName
    Classes Loaded: 1
    Resources Loaded: 0
    Sources Loaded: 0
    Published Interfaces: 0
    Classes generated: 0
    Classes skipped: 0
    Synonyms Created: 0
    Errors: 0
    it seems no errors.
    when i checked in USER_OBJECTS table,
    i found the record 'hello/HelloName' as OBJECT_NAME but the STATUS is 'INVALID'.
    Please help me how to get this.
    thanks in advance.
    regards
    pavan.

    Hi,
    got the solution for this.
    in loadjava options, there is an option '-r' or '-resolve'.
    if we used this option for loading .java file, the source will get compiled and Class file will be resolved and stored in Oracle.
    if we used this option for .class file or for .jar file, the class file will be resolved and stored in Oracle.
    loadjava -u scott/tiger -r path/Hello.class
    loadjava -u scott/tiger -r path/hello.jar
    Here, resolving means, it will check each and Class file(s), for all imports. If all other Classes exists in CLASSPATH, it will load the class and the STATUS is VALID. if it failed to load any imports, the status is INVALID and means, need to set CLASSPATH.
    now, i'm struggling how to set CLASSPATH for loadjava.
    regards
    pavan.

  • Loading Java in Oracle

    I want to load Java files in a database.
    These files are already loaded in some other database.
    When i query dba_objects in the dabatase i see random alphanumeric values appended to the OBJECT_NAME
    like /178acaa_Filename  and sometimes there is a path /a/b/filename
    why this occurs?
    I am on 11g

    Raunaq wrote:
    When i am loading the Java source file in database , it asks for a value .
    The reason is Java code has a condition like && (AND) .... but in sql it is used to implement a substitution variable.
    How to get around this?
    If you are doing this through SQL*Plus then use the command:
    set define off
    at the start of your session which will stop SQL*Plus from prompting for substitution variables.
    If you are using a different interface then you will have to do the equivalent for that tool.

  • How to Load 2 library files using System.loadLibrary in one .java file!!!

    Hello,
    Someone please help me. What I am trying to do is load two .DLL files in my program. Program works fine when I
    do the following way i.e. I have two .java files and in each I am loading one .DLL file. But I don't want to have
    two .java files I want to load both the .DLL files in one program.
    **************** Example.java **********
    import java.io.*;
    import java.util.*;
    public class Example
    public native int A(String in);
    static
    System.loadLibrary( "API2" );
    public static void main( String args[])
         Ex ex = new Ex();
         int r;
         r = ex.A("TEST");
    public Example()
    *****************Ex.java*****************
    public class exsysml
    public native int A(String in);
    public exsysml()
    System.loadLibrary("API3");
    The above way works. But I need only one .java file to load both the .DLL files. i.e.
    import java.io.*;
    import java.util.*;
    public class Example
    public native int A(String in);
    static
    System.loadLibrary( "API2" );
    System.loadLibrary( "API3" );     
    public static void main( String args[])
         Example ex = new Example();
         int r;
         r = ex.A("TEST");
    public Example()
    but when I do this way it doesn't work and I get a UnSatisfiedLinkage Error at ex.A("TEST"). While doing the top way it works.
    How can I fix this to just have one .java file and load both the library files as done in the bottom program but doing this program doesn't work. Any help is appreciated.
    Thanks!

    what I figured out so far is that we can only load one library file in a single class and define all the native methods present in that library in the class where we are loading it. Means we can't load multiple library files in a single class. It's just my thought else if someone provides a better solution. I may be wrong so that's why I need your help.
    Thanks

  • How to load a java file into Oracle?

    Hello,
    I have some problem in loading a java file into Oracle 8i. I used "loadjava -user <userName/Password> -resolve <javaClassName>" command.
    JAVA Version used JDK 1.5
    When calling this class file from a trigger gives this error
    ORA-29541: class ANTONY1.DBTrigger could not be resolved.
    Can anyone help me to resolve this problem?

    Hello,
    Which username did you use to load the class, and which user is running the trigger?
    The default resolver searches only the current user's schema and PUBLIC so the java class needs to be loaded into one of these.
    cheers,
    Anthony

  • Loading large files in Java Swing GUI

    Hello Everyone!
    I am trying to load large files(more then 70 MB of xml text) in a Java Swing GUI. I tried several approaches,
    1)Byte based loading whith a loop similar to
    pane.setText("");
                 InputStream file_reader = new BufferedInputStream(new FileInputStream
                           (file));
                 int BUFFER_SIZE = 4096;
                 byte[] buffer = new byte[BUFFER_SIZE];
                 int bytesRead;
                 String line;
                 while ((bytesRead = file_reader.read(buffer, 0, BUFFER_SIZE)) != -1)
                      line = new String(buffer, 0, bytesRead);
                      pane.append(line);
                 }But this is gives me unacceptable response times for large files and runs out of Java Heap memory.
    2) I read in several places that I could load only small chunks of the file at a time and when the user scrolls upwards or downwards the next/previous chunk is loaded , to achieve this I am guessing extensive manipulation for the ScrollBar in the JScrollPane will be needed or adding an external JScrollBar perhaps? Can anyone provide sample code for that approach? (Putting in mind that I am writting code for an editor so I will be needing to interact via clicks and mouse wheel roatation and keyboard buttons and so on...)
    If anyone can help me, post sample code or point me to useful links that deal with this issue or with writting code for editors in general I would be very grateful.
    Thank you in advance.

    Hi,
    I'm replying to your question from another thread.
    To handle large files I used the new IO libary. I'm trying to remember off the top of my head but the classes involved were the RandomAccessFile, FileChannel and MappedByteBuffer. The MappedByteBuffer was the best way for me to read and write to the file.
    When opening the file I had to scan through the contents of the file using a swing worker thread and progress monitor. Whilst doing this I indexed the file into managable chunks. I also created a cache to further optimise file access.
    In all it worked really well and I was suprised by the performance of the new IO libraries. I remember loading 1GB files and whilst having to wait a few seconds to perform the indexing you wouldn't know that the data for the JList was being retrieved from a file whilst the application was running.
    Good Luck,
    Martin.

  • EJB Class loader and regular Java files class loader.

    Hi,
    Is the EJB's class loader the same as a "regular" java files class loader OR weblogic
    has 2 class loaders, one for each???
    Thanks,
    les.

    les <[email protected]> wrote:
    Hi,
    Is the EJB's class loader the same as a "regular" java files class loader OR weblogic
    has 2 class loaders, one for each???Yes. Exact classloading architecture depends on which WebLogic version you use. If you
    use 6.x+, you may want to read this article:
    http://www.onjava.com/pub/a/onjava/2001/07/25/ejb.html
    Thanks,
    les.--
    Dimitri

  • Error: Failed to load script file; java.lang.ArrayIndexOutOfBound.Exception: 3184

    Script editor was working find when I last used it last week.  Tried to open a script today to make some changes and now I'm getting this error message.  I have uninstalled and re-installed editor, checked the compatibility mode and it wont open the script.  any ideas out there what the problem could be? need some trouble shooting help.
    Error:
    failed to load script file: java.lang.ArrayIndexOutOfBound.Expception: 3184
    Thanks
    Lora

    Hmmm....   I haven't seen that, but I can tell you what I would do if I were you.  This is kind of drastic, but the alternative may be a workstation reimage.
    Open the windows control panel, and open the add/remove programs snap in.
    Uninstall the CRS editor.
    Uninstall all the JRE instances you have.  They may be listed as something like Java (TM) update....   or they may appear as J2SE Runtime....   Check in the J's (it's alphabetical) and uninstall all of them.
    Reboot the machine.
    Download and reinstall Java 1.6.0.17   (This is what's running on my workstation right now, and it works with the editor).
    Reinstall the CRS editor
    Reboot the machine
    Try it and see if it behaves.  If it doesn't, you may need to rebuild the whole thing.

  • Help! cant load Java due to missing file

    I have tried to load Java on my pc which is running XP and I get this error message.can anyone help please........
    it says this file is missing.
    http://jdl.sun.com/webapps/download/getfile/1.5.0_02-bo9/windows-i586//jp150020.cab.
    without this I am unable to download the Java and am ready to rip my hair out!
    Thanks

    M'am,
    Eh?
    You are having problems downloading or installing Java. Is that the issue?
    If you are having problems installing then I would suggest you uninstall whatever you do have and get download again and install the new download.
    If you are having problems downloading... well that sounds like a browser issue.
    If you need more help then consult this page
    http://java.sun.com/j2se/1.5.0/download.jsp
    There are Installation Instructions for each download which may be of assistance.
    Sincerely,
    Slappy

  • How to load CAD files like .prt, . stp  in JAVA

    How to load CAD files like .prt, . stp files which can be generated by UG and Pro/E etc in JAVA. I am appreciated that you will give any comments.

    Hi,
    as far as I know there is no Java 3D loader for CAD files available. You have to export your files into a format like "3ds ", "obj ", or "wrl". See thread 'JAVA 3D max files and VrmlLoader' on java.net: [http://forums.java.net/jive/thread.jspa?messageID=231564&#231564|http://forums.java.net/jive/thread.jspa?messageID=231564&#231564]
    August

  • Loading jar files at execution time via URLClassLoader

    Hello�All,
    I'm�making�a�Java�SQL�Client.�I�have�practicaly�all�basic�work�done,�now�I'm�trying�to�improve�it.
    One�thing�I�want�it�to�do�is�to�allow�the�user�to�specify�new�drivers�and�to�use�them�to�make�new�connections.�To�do�this�I�have�this�class:�
    public�class�DriverFinder�extends�URLClassLoader{
    ����private�JarFile�jarFile�=�null;
    ����
    ����private�Vector�drivers�=�new�Vector();
    ����
    ����public�DriverFinder(String�jarName)�throws�Exception{
    ��������super(new�URL[]{�new�URL("jar",�"",�"file:"�+�new�File(jarName).getAbsolutePath()�+"!/")�},�ClassLoader.getSystemClassLoader());
    ��������jarFile�=�new�JarFile(new�File(jarName));
    ��������
    ��������/*
    ��������System.out.println("-->"�+�System.getProperty("java.class.path"));
    ��������System.setProperty("java.class.path",�System.getProperty("java.class.path")+File.pathSeparator+jarName);
    ��������System.out.println("-->"�+�System.getProperty("java.class.path"));
    ��������*/
    ��������
    ��������Enumeration�enumeration�=�jarFile.entries();
    ��������while(enumeration.hasMoreElements()){
    ������������String�className�=�((ZipEntry)enumeration.nextElement()).getName();
    ������������if(className.endsWith(".class")){
    ����������������className�=�className.substring(0,�className.length()-6);
    ����������������if(className.indexOf("Driver")!=-1)System.out.println(className);
    ����������������
    ����������������try{
    ��������������������Class�classe�=�loadClass(className,�true);
    ��������������������Class[]�interfaces�=�classe.getInterfaces();
    ��������������������for(int�i=0;�i<interfaces.length;�i++){
    ������������������������if(interfaces.getName().equals("java.sql.Driver")){
    ����������������������������drivers.add(classe);
    ������������������������}
    ��������������������}
    ��������������������Class�superclasse�=�classe.getSuperclass();
    ��������������������interfaces�=�superclasse.getInterfaces();
    ��������������������for(int�i=0;�i<interfaces.length;�i++){
    ������������������������if(interfaces[i].getName().equals("java.sql.Driver")){
    ����������������������������drivers.add(classe);
    ������������������������}
    ��������������������}
    ����������������}catch(NoClassDefFoundError�e){
    ����������������}catch(Exception�e){}
    ������������}
    ��������}
    ����}
    ����
    ����public�Enumeration�getDrivers(){
    ��������return�drivers.elements();
    ����}
    ����
    ����public�String�getJarFileName(){
    ��������return�jarFile.getName();
    ����}
    ����
    ����public�static�void�main(String[]�args)�throws�Exception{
    ��������DriverFinder�df�=�new�DriverFinder("D:/Classes/db2java.zip");
    ��������System.out.println("jar:�"�+�df.getJarFileName());
    ��������Enumeration�enumeration�=�df.getDrivers();
    ��������while(enumeration.hasMoreElements()){
    ������������Class�classe�=�(Class)enumeration.nextElement();
    ������������System.out.println(classe.getName());
    ��������}
    ����}
    It�loads�a�jar�and�searches�it�looking�for�drivers�(classes�implementing�directly�or�indirectly�interface�java.sql.Driver)�At�the�end�of�the�execution�I�have�found�all�drivers�in�the�jar�file.
    The�main�application�loads�jar�files�from�an�XML�file�and�instantiates�one�DriverFinder�for�each�jar�file.�The�problem�is�at�execution�time,�it�finds�the�drivers�and�i�think�loads�it�by�issuing�this�statement�(Class�classe�=�loadClass(className,�true);),�but�what�i�think�is�not�what�is�happening...�the�execution�of�my�code�throws�this�exception
    java.lang.ClassNotFoundException:�com.ibm.as400.access.AS400JDBCDriver
    ��������at�java.net.URLClassLoader$1.run(URLClassLoader.java:198)
    ��������at�java.security.AccessController.doPrivileged(Native�Method)
    ��������at�java.net.URLClassLoader.findClass(URLClassLoader.java:186)
    ��������at�java.lang.ClassLoader.loadClass(ClassLoader.java:299)
    ��������at�sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:265)
    ��������at�java.lang.ClassLoader.loadClass(ClassLoader.java:255)
    ��������at�java.lang.ClassLoader.loadClassInternal(ClassLoader.java:315)
    ��������at�java.lang.Class.forName0(Native�Method)
    ��������at�java.lang.Class.forName(Class.java:140)
    ��������at�com.marmots.database.DB.<init>(DB.java:44)
    ��������at�com.marmots.dbreplicator.DBReplicatorConfigHelper.carregaConfiguracio(DBReplicatorConfigHelper.java:296)
    ��������at�com.marmots.dbreplicator.DBReplicatorConfigHelper.<init>(DBReplicatorConfigHelper.java:74)
    ��������at�com.marmots.dbreplicator.DBReplicatorAdmin.<init>(DBReplicatorAdmin.java:115)
    ��������at�com.marmots.dbreplicator.DBReplicatorAdmin.main(DBReplicatorAdmin.java:93)
    Driver�file�is�not�in�the�classpath�!!!�
    I�have�tried�also�(as�you�can�see�in�comented�lines)�to�update�System�property�java.class.path�by�adding�the�path�to�the�jar�but�neither...
    I'm�sure�I'm�making�a/some�mistake/s...�can�you�help�me?
    Thanks�in�advice,
    (if�there�is�some�incorrect�word�or�expression�excuse�me)

    Sorry i have tried to format the code, but it has changed   to �... sorry read this one...
    Hello All,
    I'm making a Java SQL Client. I have practicaly all basic work done, now I'm trying to improve it.
    One thing I want it to do is to allow the user to specify new drivers and to use them to make new connections. To do this I have this class:
    public class DriverFinder extends URLClassLoader{
    private JarFile jarFile = null;
    private Vector drivers = new Vector();
    public DriverFinder(String jarName) throws Exception{
    super(new URL[]{ new URL("jar", "", "file:" + new File(jarName).getAbsolutePath() +"!/") }, ClassLoader.getSystemClassLoader());
    jarFile = new JarFile(new File(jarName));
    System.out.println("-->" + System.getProperty("java.class.path"));
    System.setProperty("java.class.path", System.getProperty("java.class.path")+File.pathSeparator+jarName);
    System.out.println("-->" + System.getProperty("java.class.path"));
    Enumeration enumeration = jarFile.entries();
    while(enumeration.hasMoreElements()){
    String className = ((ZipEntry)enumeration.nextElement()).getName();
    if(className.endsWith(".class")){
    className = className.substring(0, className.length()-6);
    if(className.indexOf("Driver")!=-1)System.out.println(className);
    try{
    Class classe = loadClass(className, true);
    Class[] interfaces = classe.getInterfaces();
    for(int i=0; i<interfaces.length; i++){
    if(interfaces.getName().equals("java.sql.Driver")){
    drivers.add(classe);
    Class superclasse = classe.getSuperclass();
    interfaces = superclasse.getInterfaces();
    for(int i=0; i<interfaces.length; i++){
    if(interfaces[i].getName().equals("java.sql.Driver")){
    drivers.add(classe);
    }catch(NoClassDefFoundError e){
    }catch(Exception e){}
    public Enumeration getDrivers(){
    return drivers.elements();
    public String getJarFileName(){
    return jarFile.getName();
    public static void main(String[] args) throws Exception{
    DriverFinder df = new DriverFinder("D:/Classes/db2java.zip");
    System.out.println("jar: " + df.getJarFileName());
    Enumeration enumeration = df.getDrivers();
    while(enumeration.hasMoreElements()){
    Class classe = (Class)enumeration.nextElement();
    System.out.println(classe.getName());
    It loads a jar and searches it looking for drivers (classes implementing directly or indirectly interface java.sql.Driver) At the end of the execution I have found all drivers in the jar file.
    The main application loads jar files from an XML file and instantiates one DriverFinder for each jar file. The problem is at execution time, it finds the drivers and i think loads it by issuing this statement (Class classe = loadClass(className, true);), but what i think is not what is happening... the execution of my code throws this exception
    java.lang.ClassNotFoundException: com.ibm.as400.access.AS400JDBCDriver
    at java.net.URLClassLoader$1.run(URLClassLoader.java:198)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:186)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:299)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:265)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:255)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:315)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:140)
    at com.marmots.database.DB.<init>(DB.java:44)
    at com.marmots.dbreplicator.DBReplicatorConfigHelper.carregaConfiguracio(DBReplicatorConfigHelper.java:296)
    at com.marmots.dbreplicator.DBReplicatorConfigHelper.<init>(DBReplicatorConfigHelper.java:74)
    at com.marmots.dbreplicator.DBReplicatorAdmin.<init>(DBReplicatorAdmin.java:115)
    at com.marmots.dbreplicator.DBReplicatorAdmin.main(DBReplicatorAdmin.java:93)
    Driver file is not in the classpath !!!
    I have tried also (as you can see in comented lines) to update System property java.class.path by adding the path to the jar but neither...
    I'm sure I'm making a/some mistake/s... can you help me?
    Thanks in advice,
    (if there is some incorrect word or expression excuse me)

  • Import statement in .java files and .jsp files

    Guys I have few mysteries about this import statement.
    Please correct me if I am wrong.
    1)Suppose if I have a folder c:\SourceFolder it has one.java and two.java files.If I compile one.java then one.class files is created in c:\ClassFolder .Now two.java uses one of the method of one.java,and without using import statement I am able to compile two.java, and two.class file is created in c:\ClassFolder.I assume that the path of one.class was taken from the CLASSPATH environment variable,hence I there was no need for import statement .........am i right ?
    BUT... in My.jsp,which is in C:\JspFolder, if I want to use one.class,then I have to specifically import the class I want to use.That is i have to say
    <%@page import="one"%>
    and since the classpath is C:\ClassFolder ,it finds one.class in the C:\ClassFolder.(Note that My.class is created in a folder different from c:\ClassFolder )
    But I am wondering why was there no need for me to import one.class in two.java.
    (Note I am using JDeveloper and Apache server)
    Please help.
    In this case the pSo I am wondering in JSP why it doesn't take the class I am looking for from the classpath .
    Help.

    You have to understand Java scoping rules. In the 1st scenario with the two Java files I am guessing neither one of them begins with a package statement. This means that they belong to the default package. When you compile the compiler uses the classpath to resolve method calls looking in the default package since there was no import statement specified in two.java. JSP is a little different. Now I just read this here in these forums a couple of days ago. Since the classfiles generated from the JSP files are not in the CLASSPATH they are loaded by a different classloader. This is why you have to import all references to all classes in the default package.

  • Why do I need to restart Apache and Tomcat every time a java file is change

    If a java file is changed and complied the changes are not reflected if Tomcat is not restarted.
    The settings in server.xml are as:
    <!-- Tomcat Manager Context -->
    <Context path="/manager" docBase="manager" debug="0" privileged="true"/>
         <Context path="/cf" docBase="cf" debug="0" reloadable="false"/>
    Here "cf" is my Application folder under webapps. The reloadable property when set to "true" for standalone Tomcat on Windows98 reflects the changes for compiled java files without restarting Tomcat. But on Linux 7.1 with Apache 1.3.19 and Tomcat 4.0.3 this is not working.
    Also tried out with Manager Application of tomcat-users.xml with reloadable="false" as well as reloadable="true",
    But when I reload the application using the command
    http://servername:8080/manager/reload?path=/appli.name
    It tells me that the application is reloaded but changes in the java file are still not reflected.
    Also when reloaded through Manager Servlet, Only my load-on-startup servlet is reloaded, but other java classes are not.
    Is it neccessary to execute this reload command from the server itself. I m executing it from a remote m/c. and have mapped the application with a domain name virtually.
    Is it the case with Tomcat on Linux with Apache. Or is something going wrong on my part.
    Can someone Help out plz.
    Regards,
    Rupali

    or you can "touch" your web.xml file.
    touch web.xmlor that command is for *nix systems, not sure what the Windows command is.  But basically, when you edit the web.xml, even if it means updating the last modified time, it will restart only your application and you should see the changes.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

Maybe you are looking for