2012-04-27 18 views
0

GlassFish V3 JMSキューのスタンドアロンクライアントとして動作するクラスがあります。このクラスはローカルホストから正常に動作します。つまり、glassfishサーバーとスタンドアロンクライアントの両方がローカルPCにあります。InitialContextをインスタンス化できません。

このクライアントをLinuxマシンにインストールする必要があります。 Glassfish V3は既にこのLinuxマシン上で動作しています。グラスフィッシュインストールディレクトリからappserv-rt.jarを追加し、それをstandlaoneクライアントのディレクトリに追加し、クラスパスを設定しました。しかし、私はこのエラーを取得しておいてください。

ここ
javax.naming.NoInitialContextException: Cannot instantiate class: com.sun.enterprise.naming.SerialInitContextFactory [Root exception is java.lang.ClassNotFoundException: com.sun.enterprise.naming.SerialInitContextFactory] 
     at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:657) 
     at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288) 
     at javax.naming.InitialContext.init(InitialContext.java:223) 
     at javax.naming.InitialContext.<init>(InitialContext.java:197) 
     at com.cisco.zbl.controller.ZblBulkUploadThread.run(ZblBulkUploadThread.java:55) 
     at java.lang.Thread.run(Thread.java:662) 
Caused by: java.lang.ClassNotFoundException: com.sun.enterprise.naming.SerialInitContextFactory 
     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) 
     at java.lang.Class.forName0(Native Method) 
     at java.lang.Class.forName(Class.java:247) 
     at com.sun.naming.internal.VersionHelper12.loadClass(VersionHelper12.java:46) 
     at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:654) 
     ... 5 more 

は私のJavaコードは次のとおりです。

public class ZblBulkUploadThread implements Runnable,MessageListener{ 

    private static final Category log = Category.getInstance(ZblBulkUploadThread.class) ; 


      private Queue queue; 

    public void run() 
    { 
      try 
      { 
        ZblConfig zblConfig = new ZblConfig() ; 


        InitialContext jndiContext = null; 

        MessageConsumer messageConsumer=null; 

        Properties props = new Properties(); 
      props.setProperty("java.naming.factory.initial", "com.sun.enterprise.naming.SerialInitContextFactory"); 
      props.setProperty("java.naming.factory.url.pkgs", "com.sun.enterprise.naming"); 
      props.setProperty("java.naming.factory.state", "com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl"); 

        jndiContext = new InitialContext(props); 

        log.debug(zblConfig.getProperty("JMSConnectionFactoryName")) ; 

        //System.setProperty("java.naming.factory.initial","com.sun.jndi.ldap.LdapCtxFactory"); 

        ConnectionFactory connectionFactory = (ConnectionFactory)jndiContext.lookup(zblConfig.getProperty("JMSConnectionFactoryName")); 


        Connection connection = connectionFactory.createConnection(); 


        Session session = connection.createSession(false,Session.AUTO_ACKNOWLEDGE); 

        queue = (Queue)jndiContext.lookup(zblConfig.getProperty("JMSQueueName")) ; 

        messageConsumer = session.createConsumer(queue); 

        connection.start(); 

        while(true) 
        { 

          Message message = messageConsumer.receive() ; 


          ObjectMessage om = ((ObjectMessage)message) ; 
          try 
          { 

            RedirectFile file = (RedirectFile)om.getObject() ; 

            log.debug("filePath "+file.getFilePath()) ; 
            log.debug(" userName "+file.getUserName()) ; 
            log.debug(" mode is "+file.getMode()) ; 

            processMessage(file,zblConfig) ; 

          } 
          catch(Exception ex) 
          { 
            log.error("ERROR "+ex.getMessage()) ; 
            ex.printStackTrace() ; 
          } 
        } 


      } 
      catch(Exception ex) 
      { 

        ex.printStackTrace() ; 
        log.error("Error "+ex.getMessage()) ; 
      } 
    } 

エラーは、このラインに来る:jndiContext = new InitialContext(props);

ノーを使用する場合、それはどんな違いがありません-argコンストラクタInitialContext。ここで

は、このJavaプログラム(Standlaoneクライアント)を呼び出し、私のUNIXシェルスクリプトです:

APP_HOME=/local/scripts/apps/bulkUpload; 

CLASSPATH=.:$APP_HOME/lib/gf-client.jar:$APP_HOME/lib/zbl.jar:$APP_HOME/lib/log4j- 1.2.4.jar:$APP_HOME/lib/javaee.jar:$APP_HOME/lib/poi-3.8-beta5-20111217.jar:$APP_HOME/lib/poi-examples-3.8-beta5-20111217:$APP_HOME/lib/poi-excelant-3.8-beta5-20111217:$APP_HOME/lib/poi-ooxml-3.8-beta5-20111217:$APP_HOME/lib/poi-ooxml-schemas-3.8-beta5-20111217:$APP_HOME/lib/poi-scratchpad-3.8-beta5-20111217:$APP_HOME/lib/appserv-rt.jar: 


echo "CLASSPATH=$CLASSPATH"; 

export APP_HOME; 
export CLASSPATH; 

cd $APP_HOME; 

#javac -d . ZblBulkUploadThread.java 

java -cp $CLASSPATH -Dzbl.properties=zbl-stage.properties -Djava.naming.factory.initial=com.sun.enterprise.naming.SerialInitContextFactory com.cisco.zbl.controller.ZblBulkUploadThread 

私を助けてください - 私は長い間、この問題に引っかかってきました。

答えて

0

コマンドを実行してwhich javaコマンドを実行し、jdkが正しく選択されているかどうかを確認してください。私はLinuxがgc4j選んでいる疑い

更新:

変更素朴な響きのための CLASSPATH=.:$APP_HOME/lib/gf-client.jar:$APP_HOME/lib/zbl.jar:$APP_HOME/lib/log4j- 1.2.4.jar:$APP_HOME/lib/javaee.jar:$APP_HOME/lib/poi-3.8-beta5-20111217.jar:$APP_HOME/lib/poi-examples-3.8-beta5-20111217:$APP_HOME/lib/poi-excelant-3.8-beta5-20111217:$APP_HOME/lib/poi-ooxml-3.8-beta5-20111217:$APP_HOME/lib/poi-ooxml-schemas-3.8-beta5-20111217:$APP_HOME/lib/poi-scratchpad-3.8-beta5-20111217:$APP_HOME/lib/appserv-rt.jar:

CLASSPATH=.:$APP_HOME/lib/gf-client.jar:$APP_HOME/lib/zbl.jar:$APP_HOME/lib/log4j- 1.2.4.jar:$APP_HOME/lib/javaee.jar:$APP_HOME/lib/poi-3.8-beta5-20111217.jar:$APP_HOME/lib/poi-examples-3.8-beta5-20111217:$APP_HOME/lib/poi-excelant-3.8-beta5-20111217:$APP_HOME/lib/poi-ooxml-3.8-beta5-20111217:$APP_HOME/lib/poi-ooxml-schemas-3.8-beta5-20111217:$APP_HOME/lib/poi-scratchpad-3.8-beta5-20111217:$APP_HOME/lib/appserv-rt.jar 
+0

申し訳ありませんがこのライン - しかしgc4jは何ですか? –

+0

Java用gnuコンパイラ - gc4j – Satya

+0

Javaバージョンは "1.6.0_24"を表示します。このマシン上でJavaプログラムをコンパイルできます。このスタンドアロンクライアントコードでも - このLinuxマシンでコンパイルすることができます。 gc4j構成ですか? –

関連する問題