19.09.2010

Библиотеки CORBA в Yoko

Столкнулся с проблемой запуска Geronimo с включенной поддержкой Corba:

# java -javaagent:jpa.jar -jar server.jar
Booting Geronimo Kernel (in Java 1.6.0_21)...
Starting Geronimo Application Server v2.2
[******************                      ]  45%   8s Starting org.apache.ger...2010-09-19 12:20:19,957 ERROR [NameService] Incorrect level of org.omg.CORBA classes found.


Likely cause is an incorrect java.endorsed.dirs configuration
2010-09-19 12:20:19,958 ERROR [GBeanInstanceState] Error while starting; GBean is now in the FAILED state: abstractName="org.apache.geronimo.configs/j2ee-corba-yoko/2.2/car?ServiceModule=org.apache.geronimo.configs/j2ee-corba-yoko/2.2/car,j2eeType=CORBANameService,name=NameServer"
org.apache.geronimo.gbean.InvalidConfigurationException: CORBA usage requires Yoko CORBA spec classes in java.endorsed.dirs classpath
        at org.apache.geronimo.corba.NameService.doStart(NameService.java:168)
        at org.apache.geronimo.gbean.runtime.GBeanInstance.createInstance(GBeanInstance.java:953)
        at org.apache.geronimo.gbean.runtime.GBeanInstanceState.attemptFullStart(GBeanInstanceState.java:269)
        at org.apache.geronimo.gbean.runtime.GBeanInstanceState.start(GBeanInstanceState.java:103)
        at org.apache.geronimo.gbean.runtime.GBeanInstance.start(GBeanInstance.java:525)
        at org.apache.geronimo.gbean.runtime.GBeanDependency.attemptFullStart(GBeanDependency.java:110)
        at org.apache.geronimo.gbean.runtime.GBeanDependency.addTarget(GBeanDependency.java:145)
        at org.apache.geronimo.gbean.runtime.GBeanDependency$1.running(GBeanDependency.java:119)
        at org.apache.geronimo.kernel.basic.BasicLifecycleMonitor.fireRunningEvent(BasicLifecycleMonitor.java:175)
        at org.apache.geronimo.kernel.basic.BasicLifecycleMonitor.access$300(BasicLifecycleMonitor.java:44)
        at org.apache.geronimo.kernel.basic.BasicLifecycleMonitor$RawLifecycleBroadcaster.fireRunningEvent(BasicLifecycleMonitor.java:253)
        at org.apache.geronimo.gbean.runtime.GBeanInstanceState.attemptFullStart(GBeanInstanceState.java:295)
        at org.apache.geronimo.gbean.runtime.GBeanInstanceState.start(GBeanInstanceState.java:103)
        at org.apache.geronimo.gbean.runtime.GBeanInstanceState.startRecursive(GBeanInstanceState.java:125)
        at org.apache.geronimo.gbean.runtime.GBeanInstance.startRecursive(GBeanInstance.java:539)
        at org.apache.geronimo.kernel.basic.BasicKernel.startRecursiveGBean(BasicKernel.java:377)
        at org.apache.geronimo.kernel.config.ConfigurationUtil.startConfigurationGBeans(ConfigurationUtil.java:456)
        at org.apache.geronimo.kernel.config.KernelConfigurationManager.start(KernelConfigurationManager.java:190)
        at org.apache.geronimo.kernel.config.SimpleConfigurationManager.startConfiguration(SimpleConfigurationManager.java:546)
        at sun.reflect.GeneratedMethodAccessor22.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.geronimo.gbean.runtime.ReflectionMethodInvoker.invoke(ReflectionMethodInvoker.java:34)
        at org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:130)
        at org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:816)
        at org.apache.geronimo.gbean.runtime.RawInvoker.invoke(RawInvoker.java:57)
        at org.apache.geronimo.kernel.basic.RawOperationInvoker.invoke(RawOperationInvoker.java:35)
        at org.apache.geronimo.kernel.basic.ProxyMethodInterceptor.intercept(ProxyMethodInterceptor.java:96)
        at org.apache.geronimo.gbean.GBeanLifecycle$$EnhancerByCGLIB$$6ef26397.startConfiguration(<generated>)
        at org.apache.geronimo.system.main.EmbeddedDaemon.doStartup(EmbeddedDaemon.java:161)
        at org.apache.geronimo.system.main.EmbeddedDaemon.execute(EmbeddedDaemon.java:78)
        at org.apache.geronimo.kernel.util.MainConfigurationBootstrapper.main(MainConfigurationBootstrapper.java:45)
        at org.apache.geronimo.cli.AbstractCLI.executeMain(AbstractCLI.java:65)
        at org.apache.geronimo.cli.daemon.DaemonCLI.main(DaemonCLI.java:30)
Caused by: java.lang.NoSuchMethodError: org.omg.PortableInterceptor.IORInterceptor_3_0.adapter_manager_state_changed(Ljava/lang/String;S)V
        at org.apache.yoko.orb.OB.PIManager.adapterManagerStateChange(PIManager.java:532)
        at org.apache.yoko.orb.OBPortableServer.POAManager_impl.activate(POAManager_impl.java:221)
        at org.apache.yoko.orb.CosNaming.tnaming.TransientNameService.initialize(TransientNameService.java:131)
        at org.apache.geronimo.yoko.ORBConfigAdapter$1.run(ORBConfigAdapter.java:188)
        at org.apache.geronimo.yoko.ORBConfigAdapter.createNameService(ORBConfigAdapter.java:191)
        at org.apache.geronimo.corba.NameService.doStart(NameService.java:164)
        ... 33 more
2010-09-19 12:20:20,118 ERROR [GBeanInstanceState] Error while starting; GBean is now in the FAILED state: abstractName="org.apache.geronimo.configs/j2ee-corba-yoko/2.2/car?ServiceModule=org.apache.geronimo.configs/j2ee-corba-yoko/2.2/car,j2eeType=CORBANameService,name=NameServer"
org.apache.geronimo.corba.security.config.ConfigException: Error starting transient name service on port 1050
        at org.apache.geronimo.yoko.ORBConfigAdapter.createNameService(ORBConfigAdapter.java:196)
        at org.apache.geronimo.corba.NameService.doStart(NameService.java:164)
        at org.apache.geronimo.gbean.runtime.GBeanInstance.createInstance(GBeanInstance.java:953)
        at org.apache.geronimo.gbean.runtime.GBeanInstanceState.attemptFullStart(GBeanInstanceState.java:269)
        at org.apache.geronimo.gbean.runtime.GBeanInstanceState.start(GBeanInstanceState.java:103)
        at org.apache.geronimo.gbean.runtime.GBeanInstanceState.startRecursive(GBeanInstanceState.java:125)
        at org.apache.geronimo.gbean.runtime.GBeanInstance.startRecursive(GBeanInstance.java:539)
        at org.apache.geronimo.kernel.basic.BasicKernel.startRecursiveGBean(BasicKernel.java:377)
        at org.apache.geronimo.kernel.config.ConfigurationUtil.startConfigurationGBeans(ConfigurationUtil.java:456)
        at org.apache.geronimo.kernel.config.KernelConfigurationManager.start(KernelConfigurationManager.java:190)
        at org.apache.geronimo.kernel.config.SimpleConfigurationManager.startConfiguration(SimpleConfigurationManager.java:546)
        at sun.reflect.GeneratedMethodAccessor22.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.geronimo.gbean.runtime.ReflectionMethodInvoker.invoke(ReflectionMethodInvoker.java:34)
        at org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:130)
        at org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:816)
        at org.apache.geronimo.gbean.runtime.RawInvoker.invoke(RawInvoker.java:57)
        at org.apache.geronimo.kernel.basic.RawOperationInvoker.invoke(RawOperationInvoker.java:35)
        at org.apache.geronimo.kernel.basic.ProxyMethodInterceptor.intercept(ProxyMethodInterceptor.java:96)
        at org.apache.geronimo.gbean.GBeanLifecycle$$EnhancerByCGLIB$$6ef26397.startConfiguration(<generated>)
        at org.apache.geronimo.system.main.EmbeddedDaemon.doStartup(EmbeddedDaemon.java:161)
        at org.apache.geronimo.system.main.EmbeddedDaemon.execute(EmbeddedDaemon.java:78)
        at org.apache.geronimo.kernel.util.MainConfigurationBootstrapper.main(MainConfigurationBootstrapper.java:45)
        at org.apache.geronimo.cli.AbstractCLI.executeMain(AbstractCLI.java:65)
        at org.apache.geronimo.cli.daemon.DaemonCLI.main(DaemonCLI.java:30)
Caused by: org.apache.yoko.orb.CosNaming.tnaming.TransientServiceException: Unable to initialize name service
        at org.apache.yoko.orb.CosNaming.tnaming.TransientNameService.initialize(TransientNameService.java:156)
        at org.apache.geronimo.yoko.ORBConfigAdapter$1.run(ORBConfigAdapter.java:188)
        at org.apache.geronimo.yoko.ORBConfigAdapter.createNameService(ORBConfigAdapter.java:191)
        ... 25 more
Caused by: org.omg.CORBA.COMM_FAILURE: bind() failed: Address already in use  vmcid: 0x41534000  minor code: 8  completed: No
        at org.apache.yoko.orb.OCI.IIOP.Acceptor_impl.<init>(Acceptor_impl.java:542)
        at org.apache.yoko.orb.OCI.IIOP.AccFactory_impl.create_acceptor(AccFactory_impl.java:163)
        at org.apache.yoko.orb.OBPortableServer.POAManagerFactory_impl.create_POAManager(POAManagerFactory_impl.java:252)
        at org.apache.yoko.orb.OB.ORBControl.initializeRootPOA(ORBControl.java:539)
        at org.apache.yoko.orb.OBCORBA.ORB_impl.resolve_initial_references(ORB_impl.java:1098)
        at org.apache.yoko.orb.CosNaming.tnaming.TransientNameService.initialize(TransientNameService.java:130)
        ... 27 more
Caused by: java.net.BindException: Address already in use
        at java.net.PlainSocketImpl.socketBind(Native Method)
        at java.net.PlainSocketImpl.bind(PlainSocketImpl.java:365)
        at java.net.ServerSocket.bind(ServerSocket.java:319)
        at java.net.ServerSocket.<init>(ServerSocket.java:185)
        at org.apache.yoko.orb.OCI.IIOP.DefaultConnectionHelper.createServerSocket(DefaultConnectionHelper.java:55)
        at org.apache.yoko.orb.OCI.IIOP.Acceptor_impl.<init>(Acceptor_impl.java:532)
        ... 32 more
[******************                      ]  45%   9s Startup failed
org.apache.geronimo.kernel.config.LifecycleException: start of org.apache.geronimo.configs/j2ee-corba-yoko/2.2/car failed
        at org.apache.geronimo.kernel.config.SimpleConfigurationManager.startConfiguration(SimpleConfigurationManager.java:562)
        at sun.reflect.GeneratedMethodAccessor22.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.geronimo.gbean.runtime.ReflectionMethodInvoker.invoke(ReflectionMethodInvoker.java:34)
        at org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:130)
        at org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:816)
        at org.apache.geronimo.gbean.runtime.RawInvoker.invoke(RawInvoker.java:57)
        at org.apache.geronimo.kernel.basic.RawOperationInvoker.invoke(RawOperationInvoker.java:35)
        at org.apache.geronimo.kernel.basic.ProxyMethodInterceptor.intercept(ProxyMethodInterceptor.java:96)
        at org.apache.geronimo.gbean.GBeanLifecycle$$EnhancerByCGLIB$$6ef26397.startConfiguration(<generated>)
        at org.apache.geronimo.system.main.EmbeddedDaemon.doStartup(EmbeddedDaemon.java:161)
        at org.apache.geronimo.system.main.EmbeddedDaemon.execute(EmbeddedDaemon.java:78)
        at org.apache.geronimo.kernel.util.MainConfigurationBootstrapper.main(MainConfigurationBootstrapper.java:45)
        at org.apache.geronimo.cli.AbstractCLI.executeMain(AbstractCLI.java:65)
        at org.apache.geronimo.cli.daemon.DaemonCLI.main(DaemonCLI.java:30)
Caused by: org.apache.geronimo.kernel.config.InvalidConfigException: Unknown start exception
        at org.apache.geronimo.kernel.config.ConfigurationUtil.startConfigurationGBeans(ConfigurationUtil.java:522)
        at org.apache.geronimo.kernel.config.KernelConfigurationManager.start(KernelConfigurationManager.java:190)
        at org.apache.geronimo.kernel.config.SimpleConfigurationManager.startConfiguration(SimpleConfigurationManager.java:546)
        ... 15 more
Caused by: org.apache.geronimo.gbean.InvalidConfigurationException: Configuration org.apache.geronimo.configs/j2ee-corba-yoko/2.2/car failed to start due to the following reasons:
  The service ServiceModule=org.apache.geronimo.configs/j2ee-corba-yoko/2.2/car,j2eeType=CORBANameService,name=NameServer did not start because Error starting transient name service on port 1050
  The service ServiceModule=org.apache.geronimo.configs/j2ee-corba-yoko/2.2/car,j2eeType=CORBABean,name=Server did not start because org.apache.geronimo.configs/j2ee-corba-yoko/2.2/car?ServiceModule=org.apache.geronimo.configs/j2ee-corba-yoko/2.2/car,j2eeType=CORBANameService,name=NameServer did not start.
  The service ServiceModule=org.apache.geronimo.configs/j2ee-corba-yoko/2.2/car,j2eeType=CORBABean,name=UnprotectedServer did not start because org.apache.geronimo.configs/j2ee-corba-yoko/2.2/car?ServiceModule=org.apache.geronimo.configs/j2ee-corba-yoko/2.2/car,j2eeType=CORBANameService,name=NameServer did not start.


Дело в том, что Yoko (это CORBA-сервер) использует свои библиотеки, вместо стандартных библиотек JVM (причем во всех реализациях: Sun, IBM, Open и т.д.). И ругается Geronimo именно на некорректные библиотеки.
Другими словами, он не хочет видеть стандартные org.omg.CORBA из JVM, а хочет подцепить Yoko-библиотеки из geronimo-tomcat6-javaee5-2.2/lib/endorsed.
А значит запускать нужно Geronimo, указывая endorsed dirs:
# java -Djava.endorsed.dirs=../lib/endorsed -javaagent:jpa.jar -jar server.jar
Особое внимание нужно уделить тому, откуда запускаете. Я реально пол часа пропарился, написав   lib/endorsed вместо ../lib/endorsed  - запускал то из bin-директории.

Комментариев нет:

Отправить комментарий