Geotools를 사용하는 응용 프로그램을 개발하고 Geotools는 Java 고급 이미징 (JAI) API를 사용하여 Glassfish에서 실행됩니다. 나는이를하지 않는 내가 EAR 파일로 EJB 모듈을 패키징 할 경우,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)
그러나 : 내가 넷빈즈에서 내 응용 프로그램을 실행할 때 EJB 항아리로 인해 CDI 검사시에 ClassNotFoundException의 배포에 실패 파일 위의 예외 및 확인을로드 할 것으로 보인다.
Mac에서는 JAI 핵심 클래스가 시스템 확장 라이브러리에 있으므로 클래스 패스에 표시되지 않는 것을 당황스럽게 생각합니다.
클래스 로딩과 관련하여 EJB jar와 EAR 파일간에 차이가 있습니까? 아니면 Glassfish/Weld에서 큰 것입니까?
글래스 피시는 어쨌든 내 prject가 사용하는 라이브러리를 어떻게 찾습니까? 그들은 ejb jar 파일에 패키지되지 않은 것 같습니다. 넷빈이 여기에 어떤 식 으로든 영리한 일을하고 있습니다.
감사의 JAI 라이브러리를 사용하기 위해 글래스 피시에 CLASSPATH를 구성 할 수 조쉬