2009-09-04 4 views
2

CIS(Content Integration Suite)を介してストレージアプリケーションに文書をアップロードするためのJavaアプリケーションを作成しました。このアプリケーションはRADで正常に動作しますが、Unix環境では実行可能なjarとしてNoClassDefFoundErrorを取得します。私は自分のローカルマシン上でクラスを見つけることができず、インターネット上のクラスへの参照はありません。JavaアプリケーションNoClassDefFoundError

マニフェストには、必要なjarファイルとメインクラスのクラスパスが含まれています。

誰でも手助けできますか?

Fri Sep 04 16:47:25 EDT 2009 : StandardBatchApplication startup() completed. 
java.lang.NoClassDefFoundError: com.stellent.cis.support.spring.ResourceHelper 
     at com.stellent.cis.common.classloader.IsolatedJarClassLoader$TemporaryF 
     at com.stellent.cis.common.classloader.IsolatedJarClassLoader$TemporaryF 
     at com.stellent.cis.common.classloader.IsolatedJarClassLoader$TemporaryF 
     at com.stellent.cis.common.classloader.IsolatedJarClassLoader.<clinit>(I 
     at java.lang.J9VMInternals.initializeImpl(Native Method) 
     at java.lang.J9VMInternals.initialize(J9VMInternals.java:196) 
     at com.stellent.cis.impl.CISApplicationFactory.getCisClassloader(CISAppl 
     at com.stellent.cis.impl.CISApplicationFactory.getCisApplication(CISAppl 
     at com.stellent.cis.impl.CISApplicationFactory.initialize(CISApplication 
     at com.lowes.ipt.edi.processor.CISApp.initialize(CISApp.java:48) 
     at com.lowes.ipt.edi.processor.EDItoEDAMUploadProcessor.main(EDItoEDAMUp 
Caused by: java.lang.ClassNotFoundException: com.stellent.cis.support.spring.Res 
     at java.net.URLClassLoader.findClass(URLClassLoader.java:496) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:631) 
     at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:597) 
     ... 11 more 

アップデート:CISを扱うjarファイルは1つだけです。私は瓶の中を見ており、授業はありません。私はCISクラスを持つ他のRADデフォルトクラスに慣れていません。これは、このクラスだけでなく、webservices.jarに含まれるクラスに対しても発生しています。私はクラスを見ることができます、そして、それは私のクラスパスの一部です。私がパスからJarを削除すると、別のクラスが見つからないためにそれが不平を言うからです。私はそれを私の道に戻すと、それはプログラムの中でさらに進んで同じエラーを出します。

答えて

0

この問題は、UNIXのtmpディレクトリのアクセス許可によって発生しています。 CIS APIはtmpディレクトリを使用して、実行に必要なファイル/クラスを作成して格納します。自分のIDでプロセスを実行していたため、wsadminによって作成されたtmpファイルにアクセスできませんでした。この問題を解決するには、プロセスをwsadminとして実行する必要があります。

0

欠落しているクラスは、ローカルマシンにインストールされていて、リモートマシンにインストールされていないJARファイルにある可能性があります。または、おそらく、ローカルマシンの別の場所にある削除マシンにインストールされます(リモートマシンがUnixマシンで、ローカルがWindowsの場合)。

ビルドするJARのMANIFEST.MFファイルに設定されているクラスパスには、リモートマシン上のすべての関連するJARを見つけるためのクラスパスを指定する必要があります。そのJARがインストールされている場所を見つけて、クラスパス。 UnixマシンのJARは、しばしば/ usr/share/javaにインストールされますが、CISに慣れていないため、それが普通に配布されるJARファイルが分からないので、それ以上は言えません。

関連する問題