2011-05-13 12 views
0

Geotoolsを使用するアプリケーションを開発しています.GeartfishはJava Advanced Imaging(JAI)APIを使用してGlassfishで動作します。私はEJB JARファイルとしてはNetbeansから自分のアプリケーションを実行すると、それがためにCDIのスキャン中にClassNotFoundExceptionの展開に失敗する:Javaアドバンストイメージングは​​MacのGlassfishのEJBモジュールでは使用できませんが、EARには表示されます

com.google.common.collect.ComputationException: org.jboss.weld.resources.spi.ResourceLoadingException: Error loading class org.autogena.skyserver.data.filetypes.SwathFile 
    at com.google.common.collect.ComputingConcurrentHashMap.compute(ComputingConcurrentHashMap.java:218) 
    .... 
Caused by: org.jboss.weld.resources.spi.ResourceLoadingException: Error loading class org.autogena.skyserver.data.filetypes.SwathFile 
    at org.jboss.weld.resources.ClassTransformer.loadClass(ClassTransformer.java:189) 
    ..... 
Caused by: java.lang.NoClassDefFoundError: javax/media/jai/PropertySource 
at java.lang.ClassLoader.defineClass1(Native Method) 
    .... 
Caused by: java.lang.ClassNotFoundException: javax.media.jai.PropertySource 
at java.net.URLClassLoader$1.run(URLClassLoader.java:202) 

しかし、私はEARファイルにEJBモジュールをパッケージ化した場合、私は得ることはありません上の例外とそれはOKをロードするようだ。

MacではJAIコアクラスがシステム拡張ライブラリに入っているので、クラスパス上にどのように表示されないのか困惑しています。

クラス読み込み時にEJB jarファイルとEARファイルの間に違いがありますか?これはGlassfish/Weldで大きくなりますか?

グラスフィッシュは私のprjectがとにかく使っているライブラリを見つけるのですか?彼らはejb jarファイルにパッケージ化されていないようです - ここで何か賢明なやり方をしているのですか?

おかげで、 ジョシュ

答えて

0

はJAIライブラリを使用するためにはGlassfishの上のCLASSPATHを設定してください。

関連する問題