URLClassLoader Problem

Hi
I am currently developing an application based on the plugin architecture model and have run into some problems which I hope someone can help with.
Environment:
Windows XP SP1
JDK 1.4.2_04
My application sweeps a known directory on startup - within that directory are sub-directories, one for each plugin.
Within each plugin sub-directory is located a single JAR file (the plugin JAR file) and a lib folder containing any libraries used by the plugin. For each plugin JAR file found a config file is extracted and the fully-qualified classname of the class to invoke as the plugin entry-point is read.
For each plugin I create a URLClassLoader instance, adding a number of URL objects to the URLClassLoader; the plugin sub-directory, the plugin JAR file itself, the "lib" sub-directory and each JAR file within the lib sub-directory.
So, knowing the fully-qualified name of the class to create, and having built a URLClassLoader for the plugin, I am able to instantiate the plugin as follows:
Class clazz = Class.forName(className, true, classLoader);
Constructor con = clazz.getConstructor(null);
Object obj = con.newInstance(null);
This works fine, and I am able to access the functionality of the plugin through a defined plugin interface just like any other object in the application.
My problem arises when the loaded plugin attempts to create an instance of a class defined in one of the JAR files in the plugins' lib folder, specifically an instance of "com.ibm.xml.parsers.SAXParser" defined in xml4j.jar, which is included in the plugins' lib folder and which has been added as a URL to the URLClassLoader for the plugin.
The loaded plugin contains the following statement:
org.xml.sax.Parser parser = org.xml.sax.helpers.ParserFactory.makeParser("com.ibm.xml.parsers.SAXParser");
A bit of investigation reveals that this eventually leads to a call to Class.forName() - it appears that my URLClassLoader is being ignored and the default ClassLoader is being used. If I add the xml4j.jar JAR file to my classpath using -cp or -Xbootclasspath/a: everything works as expected.
Is there anyway to force the default ClassLoader to recognise the URLS on my URLClassLoader or to force the xml4j code to use my URLClassLoader (short of actually modifying the xml4j code)?
Any help is very much appreciated.
Thanks,
Mark

Yeah - that was my understanding - that if class A references class B and causes the definition of class B to be loaded into memory, that the Classloaded associated with class A would be loaded to load class B.
I know that my URLClassLoader is working - if I remove one of the 3rd party JARs from the plugin lib folder, the process fails on a ClassNotFound exception long before reaching the SAXParser problem.
I've attached a sample log4j trace of the error for illustration:
FATAL 2004-06-10 09:54:35,875 [TemplateParser : logStackTrace] - java.lang.ClassNotFoundException: com.ibm.xml.parsers.SAXParser
FATAL 2004-06-10 09:54:35,875 [TemplateParser : logStackTrace] -      at java.net.URLClassLoader$1.run(URLClassLoader.java:199)
FATAL 2004-06-10 09:54:35,885 [TemplateParser : logStackTrace] -      at java.security.AccessController.doPrivileged(Native Method)
FATAL 2004-06-10 09:54:35,885 [TemplateParser : logStackTrace] -      at java.net.URLClassLoader.findClass(URLClassLoader.java:187)
FATAL 2004-06-10 09:54:35,885 [TemplateParser : logStackTrace] -      at java.lang.ClassLoader.loadClass(ClassLoader.java:289)
FATAL 2004-06-10 09:54:35,895 [TemplateParser : logStackTrace] -      at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:274)
FATAL 2004-06-10 09:54:35,895 [TemplateParser : logStackTrace] -      at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
FATAL 2004-06-10 09:54:35,895 [TemplateParser : logStackTrace] -      at org.xml.sax.helpers.NewInstance.newInstance(NewInstance.java:42)
The NewInstance class calls Class.forName(className)
FATAL 2004-06-10 09:54:35,895 [TemplateParser : logStackTrace] -      at org.xml.sax.helpers.ParserFactory.makeParser(ParserFactory.java:127)
FATAL 2004-06-10 09:54:35,895 [TemplateParser : logStackTrace] -      at com.templatemanager.TemplateParser.loadTemplateIntoCache(TemplateParser.java:238)
FATAL 2004-06-10 09:54:35,895 [TemplateParser : logStackTrace] -      at com.templatemanager.TemplateManager.getTemplatePropertiesByPropID(TemplateManager.java:170)
FATAL 2004-06-10 09:54:35,905 [TemplateParser : logStackTrace] -      at com.model.PageSetObject.setStyle(PageSetObject.java:236)
FATAL 2004-06-10 09:54:35,905 [TemplateParser : logStackTrace] -      at com.xmlobjectstore.XMLObjectStore$PageSetObjectHandler.startElement(XMLObjectStore.java:2388)
FATAL 2004-06-10 09:54:35,905 [TemplateParser : logStackTrace] -      at com.xmlobjectstore.Switcher.startElement(Switcher.java:36)
FATAL 2004-06-10 09:54:35,905 [TemplateParser : logStackTrace] -      at com.ibm.xml.parsers.SAXParser.startElement(SAXParser.java)
FATAL 2004-06-10 09:54:35,905 [TemplateParser : logStackTrace] -      at com.ibm.xml.internal.DefaultScanner.scanElement(DefaultScanner.java)
FATAL 2004-06-10 09:54:35,905 [TemplateParser : logStackTrace] -      at com.ibm.xml.internal.DefaultScanner.scanContent(DefaultScanner.java)
FATAL 2004-06-10 09:54:35,905 [TemplateParser : logStackTrace] -      at com.ibm.xml.internal.DefaultScanner.scanDocument(DefaultScanner.java)
FATAL 2004-06-10 09:54:35,905 [TemplateParser : logStackTrace] -      at com.ibm.xml.framework.XMLParser.parse(XMLParser.java)
FATAL 2004-06-10 09:54:35,905 [TemplateParser : logStackTrace] -      at com.ibm.xml.parsers.SAXParser.parse(SAXParser.java)
FATAL 2004-06-10 09:54:35,915 [TemplateParser : logStackTrace] -      at com.ibm.xml.framework.XMLParser.parse(XMLParser.java)
FATAL 2004-06-10 09:54:35,915 [TemplateParser : logStackTrace] -      at com.xmlobjectstore.XMLObjectStore.LoadCourse(XMLObjectStore.java:1960)
FATAL 2004-06-10 09:54:35,915 [TemplateParser : logStackTrace] -      at com.xmlobjectstore.XMLObjectStore.ReadObject(XMLObjectStore.java:271)
FATAL 2004-06-10 09:54:35,915 [TemplateParser : logStackTrace] -      at com.editor.actions.EditorAction.readCourseFromFile(EditorAction.java:1259)
FATAL 2004-06-10 09:54:35,915 [TemplateParser : logStackTrace] -      at com.editor.actions.EditorAction.openCourseFromFile(EditorAction.java:1287)
FATAL 2004-06-10 09:54:35,925 [TemplateParser : logStackTrace] -      at com.editor.actions.EditorAction$6.construct(EditorAction.java:1183)
FATAL 2004-06-10 09:54:35,925 [TemplateParser : logStackTrace] -      at com.util.SwingWorker$2.run(SwingWorker.java:119)
FATAL 2004-06-10 09:54:35,925 [TemplateParser : logStackTrace] -      at java.lang.Thread.run(Thread.java:534)

Similar Messages

  • Problems using an URLClassLoader

    I am trying to get the MySQL Driver to work as a plugin. To realize this, I am trying to get the class loaded only when needed through this piece of code.
    File file = new File("mysql-connector-java-3.0.6-stable-bin.jar");
    URLClassLoader classLoader = new URLClassLoader(new URL[] {new URL("jar:"+file.toURL()+"!/")});
    //classLoader.loadClass("com.mysql.jdbc.Driver").newInstance();
    //classLoader.newInstance("com.mysql.jdbc.Driver");
    //Class.forName("com.mysql.jdbc.Driver").newInstance();
    Class c = classLoader.loadClass("com.mysql.jdbc.Driver");
    DriverManager.registerDriver((Driver)c.newInstance());
    con = DriverManager.getConnection("jdbc:mysql://"+Settings.getSetting(Settings.DATABASE_HOST)+"/"+Settings.getSetting(Settings.DATABASE_NAME)+"?user="+Settings.getSetting(Settings.DATABASE_USER_NAME)+"&password="+Settings.getSetting(Settings.DATABASE_PASSWORD));The only problem is that the DriverManager doesn't find any suitable Driver to connect... But when I simply include the jar file I'm loading up in the Class Path, it works just fine using Class.forName.... Any help would be appreciated!

    Final resolution:
    The problem wasn't in my code... It was a bug from the DriverManager class which has been reported into the bug database. See here for a description as well as a workaround:
    http://developer.java.sun.com/developer/bugParade/bugs/4507707.html

  • 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)

  • 64-bit JNI C++ to JAVA invocation multiple threads classloader problem

    Hi ALL,
    I have a C++ app that invokes Java classes on 64-bit Solaris 10 with 64-bit JVM.
    Here is the problem:
    The native non-main (not the thread that initializes the JVM) threads would not be able to find any user-define class.
    Here are the symptoms and observations:
    1. JNIEnv::ExceptionDescribe() showed the following StackOverflowError:
    Exception in thread "Thread-0" java.lang.StackOverflowError
            at java.util.Arrays.copyOf(Arrays.java:2734)
            at java.util.Vector.ensureCapacityHelper(Vector.java:226)
            at java.util.Vector.addElement(Vector.java:573)
            at java.lang.ClassLoader.addClass(ClassLoader.java:173)
            at java.lang.ClassLoader.defineClass1(Native Method)
            at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
            at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
            at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
            at java.net.URLClassLoader.access$000(URLClassLoader.java:56)
            at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
            at java.security.AccessController.doPrivileged(Native Method)
            at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
            at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
            at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)2. The "main thread" that instantiates the JVM has no problem finding and loading any class or method
    3. But the other threads (non-main threads) would not be able to find the user-defined classes unless the classes were already loaded by the main thread.
    4. The non-main threads can find the "standard" java classes with no problem
    5. The same app ran fine on 32-bit system.
    6. Except for the JVM reference is global, each thread acquired JNIEnv by either GetEnv() or AttachCurrentThread().
    Any idea why it is a problem with 64-bit?
    I have the sample program to reproduce this issue in this thread: http://forums.sun.com/thread.jspa?messageID=10885363&#10885363. That was the original thread I raised but I have narrowed it down to a more concrete scenario. That's why I am creating this new thread. I hope this does not break any rule on this forum. If it does, I apologize.
    I really appreciate it if anyone can provide any help/suggestion.
    Regards,
    - Triet

    Here is the sample program. Again, this works on 32-bit but not 64-bit.
    #include <string>
    #include "jni.h"
    #include "TestThread.h"
    static JavaVM *g_pjvm = NULL;  /* denotes a Java VM */
    static JNIEnv *g_penv = NULL;  /* pointer to native method interface */
    void initJVM(char** jvmOptions) {
        printf("RJniTest init starts...\n");
        JavaVMInitArgs vm_args; /* JDK/JRE 6 VM initialization arguments */
        JavaVMOption* poptions;
        int optionLen = 0;
        while (jvmOptions[optionLen]) {
            optionLen++;
        printf("RJniTest::init len=%d\n", optionLen);
        if (optionLen > 0) {
            printf("RJniWrapper::init jvmOptions\n");
            poptions = new JavaVMOption[optionLen];
            //poptions[0].optionString = "-Djava.class.path=/usr/lib/java";
            int idx = 0;
            while (jvmOptions[idx]) {
                poptions[idx].optionString = jvmOptions[idx];
                idx++;
        printf("RJniTest::init vm_args: version(%x), nOptions(%d)\n",
                JNI_VERSION_1_6, optionLen);
        vm_args.version = JNI_VERSION_1_6;
        vm_args.nOptions = optionLen;
        vm_args.options = poptions;
        vm_args.ignoreUnrecognized = JNI_FALSE;
        // load and initialize a Java VM, return a JNI interface
        // pointer in env
        printf("RJniTest::init creates JVM\n");
        JNI_CreateJavaVM(&g_pjvm, (void**)&g_penv, &vm_args);
        printf("RJniTest init ends\n");
    void findClass(const char* classname) {
        static const char* fname = "justFindClasses";
        printf("%s: findClass: %s\n", fname, classname);
        JNIEnv* jenv;
        jint ret = g_pjvm->GetEnv((void**)&jenv, JNI_VERSION_1_6);
        if (ret == JNI_EDETACHED) {
            ret = g_pjvm->AttachCurrentThread((void**)&jenv, NULL);
            if (ret != JNI_OK || jenv == NULL) {
                printf("%s: get env error: ret=%d\n", ret, fname);
            } else {
                printf("%s: got new env\n", fname);
        } else if (ret == JNI_OK) {
            printf("%s: env already there\n");
        jclass classref;
        classref = jenv->FindClass(classname);
        if (classref == NULL) {
            printf("%s: %s class not found!\n", fname, classname);
            if (jenv->ExceptionOccurred()) {
                jenv->ExceptionDescribe();
                jenv->ExceptionClear();
        printf("%s: found class: %s\n", fname, classname);
    class RJniTestThread : public TestThread {
    public:
        void threadmain();
    void RJniTestThread::threadmain() {
        printf("RJniTestThread::threadmain: Starting testing\n");
        findClass("org/apache/commons/logging/Log");
        findClass("java/util/List");
        printf("RJniTestThread::threadmain: done.\n");
    int main(int argc, char** argv) {
        char **jvmOptions = NULL;
        printf("RJniTestDriver starts...\n");
        if (argc > 1) {
            jvmOptions = new char*[argc];
            for (int i = 0; i < argc ; i ++) {
                jvmOptions[i] = argv[i + 1];
            jvmOptions[argc - 1] = NULL;
        } else {
            int size = 8;
            int i = 0;
            jvmOptions = new char*[size];
            jvmOptions[i++] = (char*) "-Djava.class.path=<list of jar files and path here>";
            jvmOptions[i++] = (char*) "-Djava.library.path=/sandbox/mxdev/3rdparty/java/unix/jdk1.6.0_14/jre/lib/sparc";
            jvmOptions[i++] = (char*) "-Djava.compiler=NONE";
            jvmOptions[i++] = (char*) "-verbose:jni";
            jvmOptions[i++] = (char*) "-Xcheck:jni";
            jvmOptions[i++] = NULL;
        printf("init JVM\n");
        initJVM(jvmOptions);
        // UNCOMMENT HERE
        // findClass("org/apache/commons/logging/Log");
        // findClass("java/util/List");
        // UNCOMMENT END
        printf("start test thread\n");
        RJniTestThread testThread;
        ThreadId tid = testThread.launch();
        printf("wait for test thread\n");
        int ret = pthread_join(tid, NULL);
        printf("RJniTestDriver ends\n");
    }

  • Oracle 10g to 11g Upgrade - Oracle Clusterware problem

    Oracle10g RAC (2 Nodes) RHEL 4 64bit
    Hi All,
    I have began the procedure for upgrading Oracle Clusterware to 11g. However, during the install OUI was giving me certain error messages like it couldn't transfer the OUI installlogs to node 2. Well, I kept pushing through the install and after I ran the last rootupgrade script on node 2 it gave me the following error:
    Checking the existence of nodeapps on this node
    Exception in thread "main" java.lang.UnsupportedClassVersionError: oracle/ops/opsctl/OPSCTLDriver (Unsupported major.minor version 49.0)
    at java.lang.ClassLoader.defineClass0(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:539)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:123)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:251)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:55)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:194)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:187)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:289)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:274)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)
    Creating '/crs/home/install/paramfile.crs' with data used for CRS configuration
    Exception in thread "main" java.lang.UnsupportedClassVersionError: oracle/ops/opsctl/OPSCTLDriver (Unsupported major.minor version 49.0)
    at java.lang.ClassLoader.defineClass0(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:539)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:123)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:251)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:55)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:194)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:187)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:289)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:274)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)
    Failed to retrieve VIP details
    Exception in thread "main" java.lang.UnsupportedClassVersionError: oracle/ops/opsctl/OPSCTLDriver (Unsupported major.minor version 49.0)
    at java.lang.ClassLoader.defineClass0(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:539)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:123)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:251)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:55)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:194)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:187)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:289)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:274)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)
    Failed to retrieve VIP details
    Setting CRS configuration values in /crs/home/install/paramfile.crs
    So I ignored the error for the time being and after that I checked the status of crs and it gave me the following:
    [oracle@vtl-rac2 crsd]$ crsstatus
    HA Resource Target State
    ora.VMRACDEV.VMRACDEV1.inst ONLINE ONLINE on vtl-rac1
    ora.VMRACDEV.VMRACDEV2.inst ONLINE ONLINE on vtl-rac2
    ora.VMRACDEV.db ONLINE ONLINE on vtl-rac1
    ora.vtl-rac1.ASM1.asm ONLINE ONLINE on vtl-rac1
    ora.vtl-rac1.LISTENER_VTL-RAC1.lsnr ONLINE ONLINE on vtl-rac1
    ora.vtl-rac1.gsd ONLINE ONLINE on vtl-rac1
    ora.vtl-rac1.ons ONLINE OFFLINE
    ora.vtl-rac1.vip ONLINE ONLINE on vtl-rac1
    ora.vtl-rac2.ASM2.asm ONLINE ONLINE on vtl-rac2
    ora.vtl-rac2.LISTENER_VTL-RAC2.lsnr ONLINE ONLINE on vtl-rac2
    ora.vtl-rac2.gsd ONLINE ONLINE on vtl-rac2
    ora.vtl-rac2.ons ONLINE OFFLINE
    ora.vtl-rac2.vip ONLINE ONLINE on vtl-rac2
    So i tried to bring it back up by doing a crs_stop -all and crs_start -all and it gave me the following error:
    vtl-rac1 : CRS-1019: Resource ora.vtl-rac2.ons (application) cannot run on vtl-rac1
    Start of `ora.vtl-rac1.ons` on member `vtl-rac1` failed.
    vtl-rac2 : CRS-1019: Resource ora.vtl-rac1.ons (application) cannot run on vtl-rac2
    CRS-0223: Resource 'ora.VMRACDEV.db' has placement error.
    CRS-0215: Could not start resource 'ora.vtl-rac1.ons'.
    CRS-0215: Could not start resource 'ora.vtl-rac2.ons'.
    I am thinking that all of this is caused by the various issues I had with the install. If I am incorrect, then please let me know. If it is true, I would like to know if there are any 11g docs on how to clean up a failed clusterware upgrade. Any advice would be greatly appreciated on any of the situations I am having.
    Thank you

    Hi Chandra,
    Did CVU report any problems before the upgrade?No, there were no errors reported by CVU before the upgrade.
    I don't there is note out there for cleaning 11g CRS
    install...and I think can very use the 10g CRS note -
    239998.1.Yeah I might have to go that way.
    I have both the 11g CRS install and upgrade from 10g
    to 11CRS at
    http://chandradba.blogspot.com/2007/08/oracle-11g-rac-
    install-on-red-hat-50.html
    and
    http://chandradba.blogspot.com/2008/02/oracle-10g-crs-
    upgrade-to-11g-crs.html
    see if it helps.Yup, your guide is very simple, clear and error proof :) That's how mine when pretty much except right around 75% I started getting these strange errors of files not being able to be transferred to node 2. Anyways, it shouldn't be a problem as none of those errors were configuration related...or else I would have a messed up cluster.
    Well, I actually rebooted both machines and now the whole CRS stack is up!! So I guess I am ok. We'll just have to wait and see.
    Thanks for your help Chandra...I always appreciate it.

  • Problem when applet going to load local machine jar files

    hi all,
    I have an applet that contains a 'core' module(jar) and 'core dependency' modules(jars).To reduce the applet download time i decided to load some heavy weight and lesser use 'core dependency' jars from local machine and core jar module and other low weight and highly use 'core dependency' jar modules from applet archives. I use the same class loader that used to load the applet archives for load local machine 'core dependency' modules.
    eg- this.getClass().getClassLoader().loadClass("class")
    When applet starts, Local machine 'core dependency' jar modules start loading but it couldn’t find classes in the core module (that download from archives) and stop the loading applet . But when i run that applet using IDE it is work fine. Please someone help me to solve this problem.
    Exception in thread "thread applet-com.dfn.pro.ui.UIContext-1" java.lang.NoClassDefFoundError: com/dfn/pro/plugins/dataupdate/UpdatableTable
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClassCond(Unknown Source)
    at java.lang.ClassLoader.defineClass(Unknown Source)
    at java.security.SecureClassLoader.defineClass(Unknown Source)
    at java.net.URLClassLoader.defineClass(Unknown Source)
    at java.net.URLClassLoader.access$000(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at com.dfn.pro.plugins.JarClassLoader.invokeClass(Unknown Source)
    at com.dfn.pro.plugins.PluginContext.loadPlugins(Unknown Source)
    at com.dfn.pro.plugins.PluginContext.analyzeDependancies(Unknown Source)
    at com.dfn.pro.plugins.PluginContext.<init>(Unknown Source)
    at com.dfn.pro.plugins.PluginContext.getPluginContext(Unknown Source)
    at com.dfn.pro.ui.UIContext.init(Unknown Source)
    at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
    Caused by: java.lang.ClassNotFoundException: com.dfn.pro.plugins.dataupdate.UpdatableTable
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)

    eg- this.getClass().getClassLoader().loadClass("class")Try using Thread.currentThread().getContextClassLoader() instead of this.getClass().getClassLoader().

  • Problems uncompressing compressed jar files

    Hi all,
    I am seeing an unusual issue where some entries don't have full header info. By this I mean, according to the ZIP spec, it is possible that the header info is stored before the file data, so you CAN get the right info. But sometimes, it can be stored as an EXT header, where it is some place AFTER the compressed file data.
    So most of the time we are getting good size/comrpessed size info and can properly get the entry out of the zip file. But sometimes, we get -1 values and are not able to get the entry at all.
    We are working on allowing a classloader to get classes out of an "embeded" zip/jar file. In other words, a jar file can contain embeded zip/jar files (only 1 level deep), and our classloader not only finds the classes of the main jar file (using the URLClassLoader capabilities, but if a class being looked for is not found in the main jar file, we then try to find it in any embeded jar/zip files. Finding the classes is fine, trying to create .class files out of the compressed data from an embeded jar/zip is the problem.
    We are getting NegativeArraySizeExceptions thrown.
    URLConnection connection = resURL.openConnection();
    byte[] classData = new byte[connection.getContentLength()];
    InputStream input = connection.getInputStream();
    The resURL points to an embeded jar/zip within the outer jar file. The exception is thrown in the 2nd line above, when we try to create the byte[] array to hold the class data. The getContentLength() returns -1.
    Any help would be appreciated. Thanks.

    ZipInputStream only reads the local file header (LFH) of an entry if getNextEntry() is called, when the size and compressed size are not in the LFH becourse the sizes were unknow when the LFH was written the sizes are set to -1 and a flag is set to indicate that the entry has an EXT header after the data which contains the sizes.
    So I think the only thing you could do at the moment it to write an extension of ZipInputStream that checks if the flag is set and then looks for the EXT header to get the sizes but the difficult part is to get the data, ZipInputStream uses a PushbackInputStream to read the data but that InputStream doesn't support the mark method.
    Good luck.

  • Problems with signed JAR files in JWS/JRE6 environment.

    Hello All,
    I'm encountering a problem running our desktop application as a Java Web Start deployment in a JRE 6 environment. There were never any problems when running the same application as a JWS deployment in JRE 1.4, or 5, environments. There are also currently no problems in a JRE 6 environment when running the application as a standard desktop application.
    The problem which I am having has nothing to do with launching the application. But for good measure, I verified the JNLP file with JaNeLA. A couple things we out of order, which I addressed to make JaNeLA happy, but my problem still persists. Here is my JNLP file (anonymized to protect the innocent):
    TS: 2010-10-18 17:04:46
    <?xml version="1.0" encoding="UTF-8"?>
    <jnlp codebase="$$codebase" href="$$name">
         <information>
              <title>Acme Desktop</title>
              <vendor>Acme Corporation</vendor>
              <homepage href="http://www.acme.com/"/>
              <description>Acme Client for Acme Server</description>
              <description kind="tooltip">Acme Client for Acme Server</description>
              <icon href="desktop.gif"/>
              <offline-allowed/>
         </information>
         <security>
              <all-permissions/>
         </security>
         <resources>
              <j2se version="1.5+"/>
              <jar href="acmedesktop.jar" download="eager" version="8.00.01.00+"/>
              <jar href="lib/antlr-2.7.2.jar" download="eager" version="8.00.01.00+"/>
              <jar href="lib/backport-util-concurrent.jar" download="eager" version="8.00.01.00+"/>
              <jar href="lib/commons-codec-1.3.jar" download="eager" version="8.00.01.00+"/>
              <jar href="lib/commons-httpclient.jar" download="eager" version="8.00.01.00+"/>
              <jar href="lib/commons-logging.jar" download="eager" version="8.00.01.00+"/>
              <jar href="lib/acmeapi.jar" download="eager" version="8.00.01.00+"/>
              <jar href="lib/HelpJavaDT.jar" download="eager" version="8.00.01.00+"/>
              <jar href="lib/HelpJavaDT_es.jar" download="eager" version="8.00.01.00+"/>
              <jar href="lib/jacorb.jar" download="eager" version="8.00.01.00+"/>
              <jar href="lib/Multivalent.jar" download="eager" version="8.00.01.00+"/>
              <jar href="lib/slf4j-api-1.5.6.jar" download="eager" version="8.00.01.00+"/>
              <jar href="lib/slf4j-jdk14-1.5.6.jar" download="eager" version="8.00.01.00+"/>
              <jar href="lib/snow.jar" download="lazy" version="8.00.01.00+"/>
              <jar href="lib/AcmeTMClient.jar" download="eager" version="8.00.01.00+"/>
              <jar href="lib/xercesImpl.jar" download="eager" version="8.00.01.00+"/>
              <jar href="lib/xml-apis.jar" download="eager" version="8.00.01.00+"/>
              <extension name="installer" href="desktopInstaller.jnlp" />
              <extension name="Java Help" href="help.jnlp"/>
              <property name="java.library.path" value="./lib"/>
              <property name="admin" value="false"/>
              <property name="webstart" value="true"/>          
              <!-- The following two lines are for SSO implementation only
              <property name="urladdress" value="http://localhost:8080/AcmeDesktop/servlet/AcmeServlet"/>
              <property name="cookiespec" value="RFC2109"/>
              -->          
         </resources>
         <resources os="Windows">
              <nativelib href="lib/jniWin32.jar" version="8.00.01.00+"/>
         </resources>
         <application-desc main-class="desktop"/>     
    </jnlp>-----
    When running as a JWS deployment, on JRE 6, the application will be functioning normally for a little while, and then suddenly the following exception is thrown, and the current operation fails because the class in question cannot be accessed:
    java.lang.SecurityException: class "acmeapi.communication.CDocImpl"'s signer information does not match signer information of other classes in the same package
         at java.lang.ClassLoader.checkCerts(ClassLoader.java:807)
         at java.lang.ClassLoader.preDefineClass(ClassLoader.java:488)
         at java.lang.ClassLoader.defineClassCond(ClassLoader.java:626)
         at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
         at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
         at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
         at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
         at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
         at java.security.AccessController.doPrivileged(Native Method)
         at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
         at com.sun.jnlp.JNLPClassLoader.findClass(JNLPClassLoader.java:288)
         at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
         at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
         at acmeapi.common.CDoc.getAnnotationsInfo(CDoc.java:493)
         at acmedesktop.communication.CCommunicationManager.privateGetAnnotations(CCommunicationManager.java:1976)
         at acmedesktop.communication.CCommunicationManager.getAnnotations(CCommunicationManager.java:1828)
         at acmedesktop.annotations.CViewAnnotations.getAnnotations(CViewAnnotations.java:826)
         at acmedesktop.annotations.CViewAnnotations.createView(CViewAnnotations.java:583)
         at acmedesktop.annotations.CViewAnnotations.setData(CViewAnnotations.java:736)
         at acmedesktop.annotations.CViewAnnotations.init(CViewAnnotations.java:205)
         at acmedesktop.hitspanel.CHitsPanel.viewAnnotations(CHitsPanel.java:281)
         at acmedesktop.hitspanel.CHitsTab$3.mousePressed(CHitsTab.java:316)
         at java.awt.AWTEventMulticaster.mousePressed(AWTEventMulticaster.java:263)
         at java.awt.Component.processMouseEvent(Component.java:6260)
         at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
         at java.awt.Component.processEvent(Component.java:6028)
         at java.awt.Container.processEvent(Container.java:2041)
         at java.awt.Component.dispatchEventImpl(Component.java:4630)
         at java.awt.Container.dispatchEventImpl(Container.java:2099)
         at java.awt.Component.dispatchEvent(Component.java:4460)
         at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4574)
         at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4235)
         at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
         at java.awt.Container.dispatchEventImpl(Container.java:2085)
         at java.awt.Window.dispatchEventImpl(Window.java:2478)
         at java.awt.Component.dispatchEvent(Component.java:4460)
         at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
         at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
         at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
         at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
         at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
         at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
         at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)-----
    The classes of our desktop product are contained within the 'acmedesktop' and 'acmeapi' packages. It requires access to the hard drive of the workstation, and therefore, all jar files included with the application are signed using the following ANT task when compiled:
    <signjar keystore="resources/codesigning/keystore.pfx" storetype="pkcs12" storepass="myPassword" alias="myAlias">
         <fileset dir="${jws_dist}/app" includes="*.jar"/>
         <fileset dir="${jws_dist}/app/lib" includes="*.jar" excludes="jhall__V${dt_version}.jar"/>
    </signjar>-----
    Therefore, all classes, within all jar files, are signed with the same certificate (with the exception of the JavaHelp libraries, which are already signed by Sun - but the class in question attempting to be loaded here is not contained within the JavaHelp jar file anyway). So, the point being, that the exception message stating that the "signer information of the acmeapi.communication.CDocImpl class doesn't match the signer information of other classes in the same package", is simply not correct. All classes within that jar file were signed using the same certificate.
    I downloaded the JRE 6 source from dev.java.net and picked through this issue with a debugger. The ClassLoader.checkCerts() method compares the certificate used to sign the current class which is attempting to be loaded, with the certificates which signed all other previously loaded classes within the same package. If they don't match, the exception above is thrown. What is causing the issue is when the checkCerts() method attempts to get the certificates which signed the currently loading class, null is returned. And obviously, comparing null, with an array of the certificates which signed the previously loaded classes, isn't going to match; therefore this exception is thrown.
    The checkCerts() method gets the certificates of the currently loading class by calling the java.security.CodeSource.getCertificates() method. Tracing deeper in the debugger, the CodeSource object ultimately gets the certificates from the 'signersRef' member variable of the com.sun.deploy.cache.CachedJarFile class. signerRef is a SoftReference object and can therefore be garbage collected at some point. If it has already been garbage collected, the CachedJarFile class will attempt to retrieve it again from the loaded cache entry by calling com.sun.deploy.cache.MemoryCache.getLoadedResource().
    The MemoryCache class maintains the cache entries to the jar files as MemoryCache.CachedResourceReference objects, which subclass WeakReference, and therefore these objects can be garbage collected as well. If the cache entries have also been garbage collected, this leaves the CachedJarFile class with no ability to repopulate the CachedJarFile.signerRef object. Therefore it is completely out of luck getting the certificates which signed the currently loading class, which ultimately causes the above exception.
    When the com.sun.deploy.cache.Cache class attempts to retrieve a cache entry using its getCacheEntry() method, it will attempt to get the entry from the MemoryCache class, if null is returned, it will recreate the cache entry and add it back to the MemoryCache. In contrast, when the CachedJarFile class attempts to get a cache entry from the MemoryCache class, if null is returned, it just gives up.
    (from com.sun.deploy.cache.CachedJarFile:244)
    private CacheEntry getCacheEntry() {
         /* if it was not created by Cache do not search for entry */
         if (resourceURL == null)
              return null;
         CacheEntry ce = (CacheEntry) MemoryCache.getLoadedResource(resourceURL);
         if (ce == null) {
              //This should not happen because CacheEntry should not get collected
              // before CachedJarFile is collected.
              Trace.println("Missing CacheEntry for " + resourceURL + "\n" + ce,
                   TraceLevel.CACHE);
         return ce;
    When debugging, code execution falls within the code block with the comment stating "This should not happen...", but it is happening in my case.
    On an interesting side note, using the jvisualvm.exe tool included with JDK 6, I was able to tell that it seems as though these objects are collected the first time that the JVM allocates more heap space, and then the issue will occur. If I set the initial heap size very large (using -Xms) this issue won't occur at all. But that is kind of a bad solution which I would rather not do, but it is interesting to note for the sake of troubleshooting this issue. The max heap size (-Xmx) is plenty big enough, so the issue is not that we are running out of memory here.
    Does anyone have any insight as to what could be causing this? I've searched, and found a couple threads with similar problems but with no clear solutions. It is not just one workstation either, it happens everywhere I deploy the app as a Java Web Start application in a JRE 6 environment. I have been using version 1.6.0_18 on XP, but it seems to happen on any update version of 1.6. Is the fact that the CachedJarFile class doesn't attempt to reload the resource when it can't retrieve it from MemoryCache a bug? I've dug as deep as I can on this and I'm at wits end, does anybody have any ideas?
    Thank you
    Jake
    Edited by: jkc532 on Nov 12, 2010 10:35 AM

    jkc532 wrote:
    .. Is the fact that the CachedJarFile class doesn't attempt to reload the resource when it can't retrieve it from MemoryCache a bug? From your comprehensive investigation and report, it seems so to me.
    ..I've dug as deep as I can on this and I'm at wits end, does anybody have any ideas?Just after read the summary I was tired, so I have some understanding of the effort you have already invested in this (the 'wits' you have already spent). I think you should raise a bug report and seek Oracle's response.

  • SOAP API integration problem with OIM 11g R1

    Hi,
    We're facing a problem when we are attempting to provision for a third party Web Service application in OIM 11g R1.
    During development and test running in an IDE environment, JDeveloper, the soap wsdl requests are triggered and a response is received successfully. However, when we shift the work and integrate it with OIM using design console, there seems to be an error indicating an invalid wsdl location. We have used the super class Exception, in try-catch block for handling of the exceptions. Please see the log message.
    Xl Home Dir :/oracle/Middleware/Oracle_IDM1/server
    Running CREATEUSERTASK
    Target Class = org.identityconnectors.Provisioning.QuickShareUserProvisioning
    URL : XXXXX
    User ID : XXXX
    Password : XXXX
    ERROR: Invalid wsdl location robi/XXXX_saved_wsdl.wsdl
    When we simply run the jar file from the command line, it gives us, java.lang.NoClassDefFoundError: javax/xml/rpc/Service
    [oracle@idmlab JavaTasks]$ java -jar archive1.jar
    URL : XXXXX
    User ID : XXXX
    Password : XXXX
    Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/rpc/Service
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
    at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
    at org.identityconnectors.Provisioning.QuickShareUserProvisioning.createUser(QuickShareUserProvisioning.java:41)
    at org.identityconnectors.Provisioning.QuickShareUserProvisioning.main(QuickShareUserProvisioning.java:215)
    Caused by: java.lang.ClassNotFoundException: javax.xml.rpc.Service
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
    ... 14 more
    Any help or suggestion, appreciated!
    Thanks
    Tamim Khan

    Hi Kevin,
    Thanks a lot for the response. But, when i deployed the composite SAR in to the server from Jdeveloper, i checked the option to "Overwrite any existing composite with same revision ID". SO, i used the same revision ID (Say 1.0), will this also need to be disabled?
    Thanks,
    Srini

  • Running a java program using URLClassLoader

    I have been developing text editor for my final project which can compile and run java prorams.
    this is the code that i have written for running the class file that is created after compilation---
    import java.net.*;
    import java.net.URLClassLoader;
    import java.net.URL;
    import java.io.File;
    import java.lang.reflect.*;
    public class runMethod extends ClassLoader{
         public void run(String dir, String f){
              File file = new File(dir);
              File[] files = file.listFiles();
         URL[] urls = new URL[files.length];
              try{
                   URL url = file.toURL();
              }catch(MalformedURLException e) {
         System.out.println("MalformedURLException: " + e.getMessage());
                   ClassLoader loader = new URLClassLoader(urls);
              try{
                        Class clazz = Class.forName(f, true,loader);
                        Method method = clazz.getDeclaredMethod("main", new Class[] { String[].class });
                        method.invoke(null, new Object[] {});
                   } catch (Exception ex) {
                   System.out.println(ex.getMessage());
    But the output it gives me is not the running program but "null". please help me in figuring out what is the problem and why is it not running the class file and giving the output.

    Here a complete example.
    Suppose that your workspace is C:/java/projects/, that your project is called myproject and the build directory is called classes (myproject/classes/)
    create the class MyTargetClass in a package called test1 :
    package test1;
    public class MyTargetClass {
         public static void main(String[] args) {
              System.out.println("Hello from "+MyTargetClass.class.getName());
    }Create the class RunMethod in a package called test2 :
    package test2;
    import java.net.*;
    import java.io.File;
    import java.lang.reflect.*;
    public class RunMethod {
         public void run(String dir, String f) {
              URL[] urls = null;
              try {
                   // Convert the file object to a URL
                   File myDir = new File(dir);
                   URL url = myDir.toURL();
                   urls = new URL[] { url };
              } catch (MalformedURLException e) {
                   e.printStackTrace();
              try {
                   // Create a new class loader with the directory
                   ClassLoader cl = new URLClassLoader(urls);
                   // Load in the class
                   Class clazz = cl.loadClass(f);
                   // Create a new instance of the new class
                   //MyTargetClass= (MyTargetClass) clazz.newInstance();
                   Method main = clazz.getDeclaredMethod("main", new Class[] { String[].class });
                   main.invoke(null, new Object[] { null });
              } catch (Exception e) {
                   e.printStackTrace();
         public static void main(String[] args) {
              new RunMethod().run("C:/java/projects/myproject/classes/", "test1.MyTargetClass");
    }Compile and run the RunMethod class.
    Hope That Helps

  • Problem with creating Connection pool and JNDI, driver is not detected

    Hi,
    I have an issue with creating Connection Pool and JNDI.
    I'm using:
    - JDK 1.6
    - OS: Linux(ubuntu 8.10)
    - Netbeans IDE 6.5.1
    - Java EE 5.0
    - Apache Tomcat 6.0.18 Its lib directory contains all necessary jar files for Oracle database driver
    - Oracle 11g Enterprise
    My problem is that the Oracle database driver is not detected when I want to create a pool (it works pretty well and is detected without any problem when I create ordinary connection by DriverManager)
    Therefore after running:
    InitialContext ic = new InitialContext();
    Context context = (Context)ic.lookup("java:comp/env");
    DataSource dataSource = (DataSource)context.lookup("jdbc/oracle11g");
    Connection connection = dataSource.getConnection();and right after dataSource.getConnection() I have the following exception:
    org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot load JDBC driver class 'oracle.jdbc.OracleDriver'
    at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1136)
    at org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:880)
    at servlets.Servlet1.doPost(Servlet1.java:47)
    at servlets.Servlet1.doGet(Servlet1.java:29)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
    at java.lang.Thread.run(Thread.java:619)
    Caused by: java.lang.ClassNotFoundException: oracle.jdbc.OracleDriver
    at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
    at sun.misc.Launcher$ExtClassLoader.findClass(Launcher.java:229)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:169)
    at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1130)
    ... 17 more
    My application context file (context.xml) is:
    <?xml version="1.0" encoding="UTF-8"?>
    <Context path="/WebApplication3">
      <Resource auth="Container"
                      driverClassName="oracle.jdbc.OracleDriver"
                      maxActive="8"
                      maxIdle="4"
                      name="jdbc/oracle11g"
                      username="scott"
                      password="tiger"
                      type="javax.sql.DataSource"
                      url="jdbc:oracle:thin:@localhost:1521:database01" />
    </Context>and my web.xml is:
        <resource-ref>
            <description>Oracle Datasource example</description>
            <res-ref-name>jdbc/oracle11g</res-ref-name>
            <res-type>javax.sql.DataSource</res-type>
            <res-auth>Container</res-auth>
        </resource-ref>
    ...I found similar threads in different forums including sun, such as
    http://forums.sun.com/thread.jspa?threadID=567630&start=0&tstart=0
    http://forums.sun.com/thread.jspa?threadID=639243&tstart=0
    http://forums.sun.com/thread.jspa?threadID=5312178&tstart=0
    , but no solution.
    As many suggest, I also tried to put context directly in the server.xml (instead of my application context) and referencing it by <ResourceLink /> inside my application context but it didn't work and instead it gave me the following message:
    org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '   ' for connect URL 'null'
    Has anyone succeeded in creating a connection pool with JNDI by using Tomcat 6 or higher ? If yes, could kindly explain about the applied method.
    Regards,

    Hello again,
    Finally I managed to run my application also with Tomcat 6.0.18. There was only two lines that had to be modified
    in the context.xml file (the context of my application project and not server's)
    Instead of writing
    <Context antiJARLocking="true" path="/WebApplication2">
        type="javax.sql.DataSource"
        factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"
    </Context>we had to write:
    <Context antiJARLocking="true" path="/WebApplication2">
        type="oracle.jdbc.pool.OracleDataSource"
        factory="oracle.jdbc.pool.OracleDataSourceFactory"
    </Context>- No modification was needed to be done at server level (niether server.xml nor server context.xml)
    - I just added the ojdbc6.jar in $CATALINA_HOME/lib (I didn't even need to add it in WEB-INF/lib of my project)
    - The servlet used to do the test was the same that I presented in my precedent post.
    For those who have encountered my problem and are interested in the format of the web.xml and context.xml
    with Tomcat 6.0, you can find them below:
    Oracle server: Oracle 11g Enterprise
    Tomcat server version: 6.0.18
    Oracle driver: ojdbc.jar
    IDE: Netbeans 6.5.1
    The context.xml file of the web application
    <?xml version="1.0" encoding="UTF-8"?>
    <Context antiJARLocking="true" path="/WebApplication2">
        <Resource name="jdbc/oracle11g"
                  type="oracle.jdbc.pool.OracleDataSource"
                  factory="oracle.jdbc.pool.OracleDataSourceFactory"
                  url="jdbc:oracle:thin:@localhost:1521:database01"
                  driverClassName="oracle.jdbc.OracleDriver"
                  userName="scott"
                  password="tiger"
                  auth="Container"
                  maxActive="100"
                  maxIdle="30"
                  maxWait="10000"
                  logAbandoned="true"
                  removeAbandoned="true"
                  removeAbandonedTimeout="60" />
    </Context>The web.xml of my web application
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
        <resource-ref>
            <description>Oracle Database 11g DataSource</description>
            <res-type>oracle.jdbc.pool.OracleDataSource</res-type>
            <res-auth>Container</res-auth>
            <res-ref-name>jdbc/oracle11g</res-ref-name>
        </resource-ref>
        <servlet>
            <servlet-name>Servlet1</servlet-name>
            <servlet-class>servlets.Servlet1</servlet-class>
        </servlet>
        <servlet-mapping>
            <servlet-name>Servlet1</servlet-name>
            <url-pattern>/Servlet1</url-pattern>
        </servlet-mapping>
        <session-config>
            <session-timeout>
                30
            </session-timeout>
        </session-config>
        <welcome-file-list>
            <welcome-file>index.jsp</welcome-file>
        </welcome-file-list>
    </web-app>Ok, now I'm happy as the original problem is completely solved
    Regards

  • The system cannot find the path specified - Problems

    I am having an issue that I am hoping someone can help figure out for me.
    I am currently learning Java, and am working with the Beginning Programming with Java for Dummies book second edition. I have downloaded and am running the Java 6 program and am using the JCreator 3.5Pro that was recommended to run the Practice files for the Dummies book.
    I have the practice files here:
    C/Program Files/Xinox Software/JCreatorV3/My Projects
    While trying to compile one of the practice files, I get this error message:
    --------------------Configuration: MyNewProject - JDK version 1.6.0_21 <Default> - <Default>--------------------
    javac: file not found: src_mynewproject.txt (The system cannot find the path specified)
    Process completed.
    **When I try to execute, I get this error message:**
    --------------------Configuration: MyNewProject - JDK version 1.6.0_21 <Default> - <Default>--------------------
    java.lang.NoClassDefFoundError: EchoLine
    Caused by: java.lang.ClassNotFoundException: EchoLine
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
    Could not find the main class: EchoLine. Program will exit.
    Exception in thread "main"
    Process completed.
    When I set up the new file, and the new class, I confirmed the file path.
    I know most people will ask if I am absolutely certain I put in the code in properly, and yes I did. It was a matter of copying word for word, and punctuation. I did it 100% correctly. About 12 times. I have NO idea what this means, but I would REALLY REALLY appreciate any help on this.
    Please keep in mind, I am slightly clueless, and really need to have any help dumbed down a bit. Lol.
    As a side note, this isn't my first project, and I haven't had this problem before now.
    thanks in advance. =)

    So I wanted to clarify what I've done a bit more since I decided to redownload the dummies programs for the program and try again.
    I will try to list my steps in order of what I did and see if I've gone wrong somewhere along the line.
    I downloaded my project files from here: http://ca.dummies.com/store/product/Beginning-Programming-with-Java-For-Dummies-2nd-Edition.productCd-0764588745,navId-322469,descCd-DOWNLOAD.html
    I unzipped them this time here: C:\Program Files\Java\jdk1.6.0_21\MyProjects\
    I opened JCreator 3.5 and starting fresh, with all previous projects deleted and clicked on "Open Workspace". I chose "MyWorkspace.jcw". Right clicked MyWorkspace and chose "Add new Project" and then chose "Empty Project". As per the books instruction for the first project, I named it "MyFirstProject". My file path was: C:\Program Files\Java\jdk1.6.0_21\MyProjects\MyFirstProject. Which is where I upzipped the files. I added it to current workspace and clicked finish.
    I then added a new class. As per the books instructions, I right clicked "MyFirstProject" and selected Add New Class. For the name, I used MyFirstJavaClass, which is what the book told me to do. My locations are the exact same as above. and I clicked on Generate new Method, as it told me to. Which it doesn't in the next few lessons, so I know this has nothing to do with it. For that and a few other reasons. Lol.
    I clicked on Finish.
    All I had to do was replace a single line of code. Not type it all in this time.
    Here is what shows up on the screen:
    class MyFirstJavaClass {
         * Method main
         * @param args
         public static void main(String[] args) {
              // TODO: Add your code here
    I need to change the : // TODO: Add your code here
    with the line:
    System.out.println.("Chocolate, royalties, sleep");
    When I do this, and compile project, I get this:
    --------------------Configuration: MyFirstProject - JDK version 1.6.0_21 <Default> - <Default>--------------------
    javac: file not found: src_myfirstproject.txt (The system cannot find the path specified)
    Process completed.
    AGAIN! But it worked a few days ago.
    And when I execute, I get this:
    --------------------Configuration: MyFirstProject - JDK version 1.6.0_21 <Default> - <Default>--------------------
    java.lang.NoClassDefFoundError: MyFirstJavaClass
    Caused by: java.lang.ClassNotFoundException: MyFirstJavaClass
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
    Could not find the main class: MyFirstJavaClass. Program will exit.
    Exception in thread "main"
    Process completed.
    I really hope the extra info helps someone help me!
    thank you!
    Edited by: MissPamela on Jul 19, 2010 3:23 PM

  • [b]problem in starting j2EE RI server[/b]

    I am getting this error when i try to start j2EE server. it is a J2EE RI installed with sunONE studio 4 update 1 edition.
    Can someone tell me what is the problem ?
    C:\Program Files\s1studio\ee\j2sdkee1.3.1\bin>j2ee -verbose
    No local string for j2ee.listenPort
    J2EE server listen port: 1050
    No local string for j2ee.naming
    Naming service started: 1050
    No local string for enterprise.log.logging.serverversion.started
    No local string for enterprise.log.using.vm.name.version.from
    No local string for enterprise.log.vm's.classpath
    No local string for enterprise.log.j2ee.homedirectory
    No local string for enterprise.log.logging.serverversion.started
    No local string for enterprise.log.using.vm.name.version.from
    No local string for enterprise.log.vm's.classpath
    No local string for enterprise.log.j2ee.homedirectory
    No local string for idle_resource_threshold_error
    No local string for binding.datasource
    No local string for binding.datasource
    No local string for binding.datasource
    No local string for binding.datasource
    No local string for binding.datasource
    No local string for binding.datasource
    java.lang.ClassNotFoundException: com.pointbase.xa.xaDataSource
    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 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.sun.enterprise.repository.JdbcXAResource.createDataSource(JdbcXAResource.java:65)
    at com.sun.enterprise.resource.ResourceInstaller.installJdbcXADataSources(ResourceInstaller.java:458)
    at com.sun.enterprise.resource.ResourceInstaller.installJdbcDataSources(ResourceInstaller.java:349)
    at com.sun.enterprise.server.J2EEServer.run(J2EEServer.java:264)
    at com.sun.enterprise.server.J2EEServer.main(J2EEServer.java:972)
    No local string for poolmgr.datasourceerror
    Error in creating data source object
    No local string for jms.start
    Starting JMS service...
    No local string for enterprise.log.logging.serverversion.started
    No local string for enterprise.log.using.vm.name.version.from
    No local string for enterprise.log.vm's.classpath
    No local string for enterprise.log.j2ee.homedirectory
    No local string for enterprise.log.logging.serverversion.started
    No local string for enterprise.log.using.vm.name.version.from
    No local string for enterprise.log.vm's.classpath
    No local string for enterprise.log.j2ee.homedirectory
    No local string for enterprise.log.logging.serverversion.started
    No local string for enterprise.log.using.vm.name.version.from
    No local string for enterprise.log.vm's.classpath
    No local string for enterprise.log.j2ee.homedirectory
    No local string for jms.start.failed
    Couldn't start JMS service...
    javax.jms.JMSException: Can't start JMSService
    at com.sun.jms.service.JMSManagerImpl.startJMSService(JMSManagerImpl.java:86)
    at com.sun.enterprise.jms.JmsUtil.startJmsService(JmsUtil.java:169)
    at com.sun.enterprise.server.J2EEServer.run(J2EEServer.java:268)
    at com.sun.enterprise.server.J2EEServer.main(J2EEServer.java:972)
    javax.jms.JMSException: Can't start JMSService
    at com.sun.jms.service.JMSManagerImpl.startJMSService(JMSManagerImpl.java:86)
    at com.sun.enterprise.jms.JmsUtil.startJmsService(JmsUtil.java:169)
    at com.sun.enterprise.server.J2EEServer.run(J2EEServer.java:268)
    at com.sun.enterprise.server.J2EEServer.main(J2EEServer.java:972)
    java.lang.RuntimeException: Can't start JMSService
    at com.sun.enterprise.server.J2EEServer.run(J2EEServer.java:346)
    at com.sun.enterprise.server.J2EEServer.main(J2EEServer.java:972)
    J2EE server reported the following error: Can't start JMSService
    Error executing J2EE server ...
    java.lang.NoClassDefFoundError: com/pointbase/jdbc/jdbcDataSource
    at com.sun.jms.service.JMSServiceImpl.stop(JMSServiceImpl.java:1329)
    at com.sun.jms.service.JMSServiceImpl.stop(JMSServiceImpl.java:1308)
    at com.sun.jms.service.JMSServiceImpl$1.run(JMSServiceImpl.java:102)

    Depending on your OS, there are two possibilities:
    PointBase:
    the .lck file was not being deleted due to a permission error, and that led to a string of events that would cause the check point error. (e.g. a rollback would be attempted on every access to the db)
    Adding "FilePermission delete" to the servlet block of the lib/security/server.policy file fixed the problem.
    or
    After installing the Sun ONE Studio 4 update 1 software, I'm receiving errors trying to use the J2EE RI server, the PointBase database, and/or the internal UDDI Registry. How do I fix this?
    Applicable to release S1S4u1 EEfJ. Also applicable to releases: S1S7 EEfS (Solaris environment only)
    If you are in a Solaris(TM) environment and plan to use the PointBase Server 4.2 Restricted Edition database, the J2EE(TM) Reference Implementation 1.3.1 server, the internal Java(TM) Web Services Developer Pack's (JWSDP) Tomcat 4.1 server, or the internal UDDI registry server packaged with the Sun(TM) ONE Studio, Enterprise Edition for Java(TM) software (IDE), be aware that you must have write access to the IDE directories used by these components. To ensure a writeable IDE installation, install a personal copy of the Sun ONE Studio, Enterprise Edition for Java software in your home directory and run the product from this location.
    Please note that the default Solaris installation procedure causes the <s1studio-install-dir> tree to be owned by the root user. Therefore, a non-root user running the IDE will be denied write access resulting in errors when attempting to run any of these packaged servers.
    To install a personal copy of the Sun ONE Studio 4, Enterprise Edition for Java, please use the following instructions.
    If you have the Sun ONE Studio 4 update 1 CD, do the following:
    1.Be sure you are logged on as 'yourself', not a root user.
    2.Insert the CD. NOTE: If the Auto run feature is enabled, an installer wizard appears and asks for the root password. Close this wizard. Do not install this product as root user.
    3.From the directory where you want the IDE installed, type /cdrom/s1studio/image/ffj_installers_ee/ffj_ee_solsparc_en.bin
    4.Follow the install panels, using the Sun ONE Studio 4, Enterprise Edition for Java Getting Started Guide (found at http://forte.sun.com/ffj/documentation/s1s41/getstartedee41.pdf )for any additional information.
    If you have downloaded Sun ONE Studio 7, Enterprise Edition for Solaris from the web site, do the following:
    1. Go to this web site http://www.sun.com/software/sundev/jde/buy/index.html and read the section called "Before you Download" for additional pre-install information.
    2. Scroll to the area entitled Enterprise Edition for Java and click on the Try & Buy Download link. This takes you to the Download Center Login page.
    3. Enter your username and password to login, (you may need to register). Accept the license agreement. You will be presented with the download page.
    4. Be sure you are logged on as 'yourself', not a root user.
    5. Find the correct file for the Solaris platform, ffj_ee_solsparc_en.bin, (151.54MB), and click the link to begin the product download, saving the file into a download directory of your choice.
    6. Once the download is complete, set the DISPLAY environment variable to display to your local system, for example: % setenv DISPLAY your-local-system:0.0
    7. Set the execute permission on the ffj_ee_solsparc_en.bin file by typing: % chmod a+x ffj_ee_solsparc_en.bin
    8. Execute the installer as a non-root user by typing (from the download directory): % ffj_ee_solsparc_en.bin
    9. See the Sun ONE Studio 4, Enterprise Edition for Java Getting Started Guide (found at http://forte.sun.com/ffj/documentation/s1s41/getstartedee41.pdf ) for additional installation and configuration information.

  • JMS problem with Sun Application Server 8.2

    Hi!
    I've just started trying JMS and found a problem.
    I set a connection factory called "QueueConnectionFactory" in the Sun Application Server Admin Consol.
    After this I test this code:
    import javax.jms.*;
    import javax.naming.*;
    public class Sun_JNDI
    public static void main(String args[]) throws Exception
    Context jndiContext = null;
    System.setProperty("java.naming.factory.initial","com.sun.enterprise.naming.SerialInitContextFactory" );
    System.setProperty("java.naming.factory.url.pkgs","=com.sun.enterprise.naming");
    System.setProperty("java.naming.provider.url","localhost:1024");
    jndiContext = new InitialContext();
    Object O = jndiContext.lookup("QueueConnectionFactory");
    System.out.println(jndiContext);
    in result I got this long Exception message:
    2006.02.12. 10:52:59 com.sun.corba.ee.spi.logging.LogWrapperBase doLog
    INFO: "IOP00710299: (INTERNAL) Successfully created IIOP listener on the specified host/port: all interfaces/1356"
    2006.02.12. 10:53:00 com.sun.enterprise.connectors.ActiveRAFactory createActiveResourceAdapter
    SEVERE: RAR6001 : Class Not found : com.sun.messaging.jms.ra.ResourceAdapter
    2006.02.12. 10:53:00 com.sun.enterprise.connectors.ActiveRAFactory createActiveResourceAdapter
    SEVERE:
    com.sun.enterprise.connectors.ConnectorRuntimeException: Error in creating active RAR
    at com.sun.enterprise.connectors.ActiveRAFactory.createActiveResourceAdapter(ActiveRAFactory.java:76)
    at com.sun.enterprise.connectors.ResourceAdapterAdminServiceImpl.createActiveResourceAdapter(ResourceAdapterAdminServiceImpl.java:267)
    at com.sun.enterprise.connectors.ConnectorRuntime.createActiveResourceAdapter(ConnectorRuntime.java:189)
    at com.sun.enterprise.naming.factory.ConnectorObjectFactory.getObjectInstance(ConnectorObjectFactory.java:71)
    at javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:304)
    at com.sun.enterprise.naming.SerialContext.lookup(SerialContext.java:293)
    at javax.naming.InitialContext.lookup(InitialContext.java:351)
    at Sun_JNDI.main(Sun_JNDI.java:40)
    Caused by: java.lang.ClassNotFoundException: com.sun.messaging.jms.ra.ResourceAdapter
    at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:164)
    at com.sun.enterprise.connectors.ActiveRAFactory.createActiveResourceAdapter(ActiveRAFactory.java:50)
    ... 7 more
    2006.02.12. 10:53:00 com.sun.enterprise.naming.SerialContext lookup
    SEVERE: NAM0004: Exception during name lookup : {0}
    com.sun.enterprise.connectors.ConnectorRuntimeException: Error in creating active RAR
    at com.sun.enterprise.connectors.ActiveRAFactory.createActiveResourceAdapter(ActiveRAFactory.java:76)
    at com.sun.enterprise.connectors.ResourceAdapterAdminServiceImpl.createActiveResourceAdapter(ResourceAdapterAdminServiceImpl.java:267)
    at com.sun.enterprise.connectors.ConnectorRuntime.createActiveResourceAdapter(ConnectorRuntime.java:189)
    at com.sun.enterprise.naming.factory.ConnectorObjectFactory.getObjectInstance(ConnectorObjectFactory.java:71)
    at javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:304)
    at com.sun.enterprise.naming.SerialContext.lookup(SerialContext.java:293)
    at javax.naming.InitialContext.lookup(InitialContext.java:351)
    at Sun_JNDI.main(Sun_JNDI.java:40)
    Caused by: java.lang.ClassNotFoundException: com.sun.messaging.jms.ra.ResourceAdapter
    at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:164)
    at com.sun.enterprise.connectors.ActiveRAFactory.createActiveResourceAdapter(ActiveRAFactory.java:50)
    ... 7 more
    Exception in thread "main" javax.naming.CommunicationException: serial context communication ex [Root exception is com.sun.enterprise.connectors.ConnectorRuntimeException: Error in creating active RAR]
    at com.sun.enterprise.naming.SerialContext.lookup(SerialContext.java:317)
    at javax.naming.InitialContext.lookup(InitialContext.java:351)
    at Sun_JNDI.main(Sun_JNDI.java:40)
    Caused by: com.sun.enterprise.connectors.ConnectorRuntimeException: Error in creating active RAR
    at com.sun.enterprise.connectors.ActiveRAFactory.createActiveResourceAdapter(ActiveRAFactory.java:76)
    at com.sun.enterprise.connectors.ResourceAdapterAdminServiceImpl.createActiveResourceAdapter(ResourceAdapterAdminServiceImpl.java:267)
    at com.sun.enterprise.connectors.ConnectorRuntime.createActiveResourceAdapter(ConnectorRuntime.java:189)
    at com.sun.enterprise.naming.factory.ConnectorObjectFactory.getObjectInstance(ConnectorObjectFactory.java:71)
    at javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:304)
    at com.sun.enterprise.naming.SerialContext.lookup(SerialContext.java:293)
    ... 2 more
    Caused by: java.lang.ClassNotFoundException: com.sun.messaging.jms.ra.ResourceAdapter
    at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:164)
    at com.sun.enterprise.connectors.ActiveRAFactory.createActiveResourceAdapter(ActiveRAFactory.java:50)
    ... 7 more
    So I tested this code under Netbeans5 and I don't where to find jar file contains the class: com.sun.messaging.jms.ra.ResourceAdapter
    Other time I tryied to lookup this URL: "java:comp/env/jms/QueueConnectionFactory"
    The result was: javax.naming.NameNotFoundException
    I know it is a small code example but if I'm not able to solve this problem I can't go on with JMS.
    I would be glad by any help.
    Regards:
    Sandor

    Hello
    In my code it looks like that:
    1: System.setProperty("com.sun.jndi.ldap.LdapCtxFactory", "iiop://localhost:3700");
    2: Context ctx = new InitialContext();
    3: TopicConnectionFactory factory = (TopicConnectionFactory)ctx.lookup("jms/DailyDestinationFactory");
    4: TopicConnection connection = factory.createTopicConnection();
    5: TopicSession session = connection.createTopicSession(false, Session.AUTO_ACKNOWLEDGE);
    6: Topic topic = (Topic)ctx.lookup("jms/DailyBean");
    7: TopicPublisher pub = session.createPublisher(topic);
    8: TextMessage msg = session.createTextMessage();
    9: msg.setText("NewMessage");
    10: pub.send(msg);
    and it work with Sun App Server 8.2.

  • Problem installing sun application server 8.2

    Hi,
    I couldn't still install the 8.2 version.
    However I'm trying to install it in Java 1.5.0._05 updated version?
    Is there a specific version of Java which is causing the problem?
    quoted from my previous email
    I tried to reinstall appserver on my localhost and i have a problem: when the installer copied files and start to confgiure domains the following error occured =>>
    INFO - unpacked jar file: activation.jar.pack
    INFO - unpacked jar file: appserv-assemblytool.jar.pack
    INFO - unpacked jar file: appserv-cmp.jar.pack
    INFO - unpacked jar file: appserv-ext.jar.pack
    INFO - unpacked jar file: appserv-jstl.jar.pack
    INFO - unpacked jar file: appserv-rt1.jar.pack
    INFO - unpacked jar file: appserv-rt2.jar.pack
    INFO - unpacked jar file: appserv-rt3.jar.pack
    INFO - unpacked jar file: appserv-rt4.jar.pack
    INFO - unpacked jar file: appserv-tags.jar.pack
    INFO - unpacked jar file: commons-launcher.jar.pack
    INFO - unpacked jar file: commons-logging.jar.pack
    INFO - unpacked jar file: deployhelp.jar.pack
    INFO - unpacked jar file: j2ee-svc.jar.pack
    INFO - unpacked jar file: j2ee.jar.pack
    INFO - unpacked jar file: jax-qname.jar.pack
    INFO - unpacked jar file: jaxr-api.jar.pack
    INFO - unpacked jar file: jaxr-impl.jar.pack
    INFO - unpacked jar file: jaxrpc-api.jar.pack
    INFO - unpacked jar file: jaxrpc-impl.jar.pack
    INFO - unpacked jar file: jsf-api.jar.pack
    INFO - unpacked jar file: jsf-impl.jar.pack
    INFO - unpacked jar file: mail.jar.pack
    INFO - unpacked jar file: relaxngDatatype.jar.pack
    INFO - unpacked jar file: saaj-api.jar.pack
    INFO - unpacked jar file: saaj-impl.jar.pack
    INFO - unpacked jar file: sun-appserv-ant.jar.pack
    INFO - unpacked jar file: xsdlib.jar.pack
    INFO - unpacked jar file: sun-as-jsr88-dm.jar.pack
    INFO - number of merged jar entries: 2671
    INFO - number of merged jar entries: 1425
    INFO - number of merged jar entries: 2459
    INFO - number of merged jar entries: 1169
    INFO - Start core server configuration.
    ERROR - default domain creation returned following exception:
    20.09.2005 12:29:21 com.sun.enterprise.pluggable.PluggableFeatureFactoryBaseImpl getInstance
    WARNING: Error loading pluggable features class com.sun.enterprise.admin.pluggable.PEClientPluggableFeatureImpl
    java.lang.ClassNotFoundException: com.sun.enterprise.admin.pluggable.PEClientPluggableFeatureImpl
    at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:164)
    at com.sun.enterprise.pluggable.PluggableFeatureFactoryBaseImpl.getInstance(Plugga bleFeatureFactoryBaseImpl.java:104)
    at com.sun.enterprise.cli.commands.BaseLifeCycleCommand.createPluggableFeatureFact ory(BaseLifeCycleCommand.java:97)
    at com.sun.enterprise.cli.commands.BaseLifeCycleCommand.<init>(BaseLifeCycle Command.java:67)
    at com.sun.enterprise.cli.commands.CreateDomainCommand.<init>(CreateDomainCo mmand.java:65)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessor Impl.java:39)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructor AccessorImpl.java:27)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:494)
    at java.lang.Class.newInstance0(Class.java:350)
    at java.lang.Class.newInstance(Class.java:303)
    at com.sun.enterprise.cli.framework.CommandFactory.createCommand(CommandFactory.ja va:57)
    at com.sun.enterprise.cli.framework.CLIMain.invokeCommand(CLIMain.java:131)
    at com.sun.enterprise.cli.framework.CLIMain.main(CLIMain.java:46)
    20.09.2005 12:29:21 com.sun.enterprise.cli.commands.BaseLifeCycleCommand createPluggableFeatureFactory
    WARNING: SERVER0009: Pluggable features using class com.sun.enterprise.admin.pluggable.PEClientPluggableFeatureImpl could not be initialized. Server will run with default features.
    CLI130 Could not create domain, domain1
    INFO - End core server configuration.
    INFO - Start samples configuration.
    INFO - End samples configuration.
    INFO - Start Sun Java System Message Queue configuration
    INFO - End Sun Java System Message Queue configuration
    INFO - Start PointBase configuration
    INFO - Java home location configured
    INFO - End PointBase configuration
    More Information:
    Log File: C:\DOCUME~1\jk\LOCALS~1\Temp\Install_Application_Server_8PE_200509201227.log
    I get this error, however I deleted the folder c:\sun/AppServer before doing the installation.
    Can anyone please help
    The version is Java Sun App Server 8.2 version!
    Should i delete the file productregistry in the windows32 folder?
    Regards,
    Manisha

    I resolved the problem, the main reason was their was appserv-rt.jar file in the Java lib folder, once this was taken out, it worked perfectly.
    Manisha

Maybe you are looking for