2014-04-25 2 views
1

다른 ORB 구현 (OpenORB)을 사용하는 CORBA/Webstart 응용 프로그램은 더 이상 Java7u55에서 작동하지 않습니다.CORBA/Webstart 응용 프로그램이 Java7u55에서 더 이상 작동하지 않습니다.

다음과 같은 예외가 발생합니다

Error org.omg.CORBA.INITIALIZE: can't instantiate default ORB implementation org.openorb.CORBA.ORBSingleton vmcid: 0x0 minor code: 0 completed: No 
org.omg.CORBA.INITIALIZE: can't instantiate default ORB implementation org.openorb.CORBA.ORBSingleton vmcid: 0x0 minor code: 0 completed: No 
    at org.omg.CORBA.ORB.create_impl_with_systemclassloader(Unknown Source) 
    at org.omg.CORBA.ORB.init(Unknown Source) 
    at org.openorb.CORBA.kernel.OpenORBLoader.init(Unknown Source) 
    at org.openorb.CORBA.ORB.set_parameters(Unknown Source) 
    at org.omg.CORBA.ORB.init(Unknown Source) 
     ... 
Caused by: java.lang.ClassNotFoundException: org.openorb.CORBA.ORBSingleton 
    at java.net.URLClassLoader$1.run(Unknown Source) 
    at java.net.URLClassLoader$1.run(Unknown Source) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(Unknown Source) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    at java.lang.Class.forName0(Native Method) 
    at java.lang.Class.forName(Unknown Source) 
    ... 17 more 

내가 orb.omg.CORBA.ORB.init (에서 AA의 변화를 생각한다)에 SystemClassLoader를 사용하면서 ORB 구현을위한 클래스가 더 이상 발견되지 않은 이유는 이전과 같이 현재 Thread의 ContextClassLoader 대신 ORB 인스턴스를 만들 수 있습니다.

해결 방법 나는 대신 ORB를 사용하는 ORB 구현의 org.omg.CORBA API가 포함 된 Jar를 복사했습니다. <jre-home>/lib/endorsed/ 대신 rt.jar의 구현이 사용됩니다.

이 아이디어를 해결하는 방법에 대한 아이디어가 있으십니까?

+0

https://stackoverflow.com/questions/23217131/java-7-update-55-jacorb-error-when-running-via-webstart –

답변

1

마지막으로 나는 현재 사용되는 OpenORB에서는 작동하지 않지만 JacORB (3.4)에서는 작동하지 않는 해결 방법을 발견했습니다.

오라클은 분명히 org.omg.CORBA.ORBClass 속성 만 구성하도록 제안했지만 org.omg.CORBA.ORBSingletonClass은 분명히 SystemClassLoader에서 볼 수있는 Java와 함께 제공되는 기본 싱글 톤 구현이 사용됨을 의미합니다.

이것은 모든 ORB에서 작동하지 않을 수 있으며 실제로는 OpenBlock이 org.omg.CORBA.ORBSingletonClass을 검사 할 때 작동하지 않지만 Jacorb의 언급 된 버전에서 문제없이 작동합니다.

0

몇 가지 해결 방법이 있어야한다 :

  1. 하여 응용 프로그램을 실행할 때 다음과 같은 VM의 인수를 지정

  2. 는 다음을 지정 -Djava.endorsed.dirs =/경로 /로는/당신의/corba_library_jars_folder -Xbootclasspath/P : /path/to/your/corba_lib.jar : /path/to/your/corba_lib2.jar : 당신의 응용 프로그램을 시작할 때 VM의 인수는 ...

  3. 는 $ JAVA_HOME로 항아리를 복사/jre/lib/endorsed 디렉토리 (생성 (존재하지 않는 경우)

+0

힌트를 주셔서 감사합니다. 그러나 제가 작성한대로 제안을 시도했습니다. 3 allready 그리고 그것은 작동하지 않습니다. 나는 또한 제안 1을 시도했지만 jawaws -J를 사용하여 매개 변수를 전달하는 웹 스타트 응용 프로그램이므로 응용 프로그램이 중지됩니다. – irrenderreiter

+0

비 - 웹 스타트 응용 프로그램과 함께 과거에는 제안 3을 사용했지만 시도해 보겠습니다. JNLP에 서명 할 때, 대안이 될 수 있습니다. – irrenderreiter

관련 문제