일부 번들에 라이브러리를 제공해야합니다. 이 라이브러리는 RMI를 사용하기 때문에 (적어도 내가 아는 한) 시스템 클래스 로더를 사용하여 작업 할 수 있어야합니다 (런타임에 classcastexceptions을 발생시키는 라이브러리 "osgi-fy"를 시도했습니다). 그래서 내가 그 라이브러리를 사용하는 번들에서 의존성을 제거하고, jars.extra.classpath (Eclipse 프로젝트의 build.properties에있는) 특성에 포함 된 라이브러리로 컴파일한다. 회전에osgi에서 시스템 전체 패키지를 구성하는 방법은 무엇입니까?
java -classpath lib/blipnetapi.jar -jar bin/felix.jar
요식의 클래스에 대한 NoClassDefFoundException을 throwed :
는 다음 나는 펠릭스 구성 파일에
org.osgi.framework.bootdelegation=com.blipsystems.*
을 추가하고 따라와 명령 줄 펠릭스 컨테이너를 시작 blipnetapi.jar 라이브러리 :
ERROR: Error starting file:/home/frza/felix/load/BlipnetApiOsgiService_1.0.0.1.jar (org.osgi.framework.BundleException: Activator start error in bundle BlipnetApiOsgiService [30].) java.lang.NoClassDefFoundError: com/blipsystems/blipnet/api/util/BlipNetSecurityManager at java.lang.Class.getDeclaredConstructors0(Native Method) at java.lang.Class.privateGetDeclaredConstructors(Class.java:2389) at java.lang.Class.getConstructor0(Class.java:2699) at java.lang.Class.newInstance0(Class.java:326) at java.lang.Class.newInstance(Class.java:308) at org.apache.felix.framework.Felix.createBundleActivator(Felix.java:3525) at org.apache.felix.framework.Felix.activateBundle(Felix.java:1694) at org.apache.felix.framework.Felix.startBundle(Felix.java:1621) at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1076) at org.apache.felix.framework.StartLevelImpl.run(StartLevelImpl.java:264) at java.lang.Thread.run(Thread.java:619) Caused by: java.lang.ClassNotFoundException: com.blipsystems.blipnet.api.util.BlipNetSecurityManager at org.apache.felix.framework.ModuleImpl.findClassOrResourceByDelegation(ModuleImpl.java:726) at org.apache.felix.framework.ModuleImpl.access$100(ModuleImpl.java:60) at org.apache.felix.framework.ModuleImpl$ModuleClassLoader.loadClass(ModuleImpl.java:1631) at java.lang.ClassLoader.loadClass(ClassLoader.java:251) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319) ... 11 more
내 질문은 다음과 같습니다. mething? 내가 잘못 했어?