• 关于RCP+OSGI的部署


    关于RCP+OSGI的部署

    一直有个想法做个Tomcat应用服务器监控程序的,包括数据库的参数设置,备份。日志的管理,备份,应用进程的获取,CPU占用,内存占用。

    通过在Google和百度的查找最初确定为采用sigar+armchats通过web浏览器中查看。但是想来想去还是做成桌面应用程序。从而确定采用RCP+OSGI来实现

    今天主要是下载了一个采用RCP+OSGI的简单JAVA应用来熟悉RCP+OSGI如何使用,在项目部署的过程中遇到了许多的问题现在将问题及解决措施都记录于下

    java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory

           at common.utils.WorkbenchUtil.<clinit>(WorkbenchUtil.java:58)

           at main.Application.start(Application.java:34)

           at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)

           at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)

           at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)

           at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:344)

           at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)

           at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

           at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

           at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

           at java.lang.reflect.Method.invoke(Unknown Source)

           at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622)

           at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577)

           at org.eclipse.equinox.launcher.Main.run(Main.java:1410)

           at org.eclipse.equinox.launcher.Main.main(Main.java:1386)

    Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory

           at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:513)

           at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429)

           at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417)

           at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)

           at java.lang.ClassLoader.loadClass(Unknown Source)

           ... 15 more

    主要提示没有找到这个类org/apache/commons/logging/LogFactory 但是我看看我自己的JAR包,没有少东西啊。

     

                           

    擦,明明有LogFactory.class这个类啊,myeclipse眼瞎啊。 经过上stackflow google baidu,每一个方法都试了但还是没用,然后自己在runtime 中的classpath中发现commons.logging包并没有在path中,于是手动添加,解决问题了 不在报上述问题了,转而报另外一种问题了 我给大家瞅瞅

    org.apache.commons.logging.LogConfigurationException: java.lang.IllegalAccessError: class sun.reflect.GeneratedConstructorAccessor3 cannot access its superclass sun.reflect.ConstructorAccessorImpl (Caused by java.lang.IllegalAccessError: class sun.reflect.GeneratedConstructorAccessor3 cannot access its superclass sun.reflect.ConstructorAccessorImpl)

           at org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:637)

           at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:336)

           at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:310)

           at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:685)

           at ui.other.provider.impl.LogDirViewTableLabelProvider.<clinit>(LogDirViewTableLabelProvider.java:29)

           at ui.view.LogDirView.initContainer(LogDirView.java:180)

           at ui.view.LogDirView.createPartControl(LogDirView.java:89)

           at org.eclipse.ui.internal.ViewReference.createPartHelper(ViewReference.java:375)

           at org.eclipse.ui.internal.ViewReference.createPart(ViewReference.java:229)

           at org.eclipse.ui.internal.WorkbenchPartReference.getPart(WorkbenchPartReference.java:595)

           at org.eclipse.ui.internal.Perspective.showView(Perspective.java:2245)

           at org.eclipse.ui.internal.WorkbenchPage.busyShowView(WorkbenchPage.java:1145)

           at org.eclipse.ui.internal.WorkbenchPage$20.run(WorkbenchPage.java:3921)

           at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)

           at org.eclipse.ui.internal.WorkbenchPage.showView(WorkbenchPage.java:3918)

           at org.eclipse.ui.internal.WorkbenchPage.showView(WorkbenchPage.java:3894)

           at common.utils.WorkbenchUtil.openViewById(WorkbenchUtil.java:132)

           at main.ApplicationWorkbenchWindowAdvisor.openDefaultView(ApplicationWorkbenchWindowAdvisor.java:126)

           at main.ApplicationWorkbenchWindowAdvisor.postWindowOpen(ApplicationWorkbenchWindowAdvisor.java:106)

           at org.eclipse.ui.internal.WorkbenchWindow.fireWindowOpened(WorkbenchWindow.java:1365)

           at org.eclipse.ui.internal.WorkbenchWindow.open(WorkbenchWindow.java:826)

           at org.eclipse.ui.internal.Workbench$24.runWithException(Workbench.java:1243)

           at org.eclipse.ui.internal.StartupThreading$StartupRunnable.run(StartupThreading.java:31)

           at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)

           at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:135)

           at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4140)

           at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3757)

           at org.eclipse.ui.application.WorkbenchAdvisor.openWindows(WorkbenchAdvisor.java:803)

           at org.eclipse.ui.internal.Workbench$33.runWithException(Workbench.java:1600)

           at org.eclipse.ui.internal.StartupThreading$StartupRunnable.run(StartupThreading.java:31)

           at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)

           at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:135)

           at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4140)

           at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3757)

           at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2609)

           at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2499)

           at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:679)

           at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)

           at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:668)

           at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)

           at main.Application.start(Application.java:37)

           at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)

           at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)

           at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)

           at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:344)

           at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)

           at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

           at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

           at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

           at java.lang.reflect.Method.invoke(Unknown Source)

           at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622)

           at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577)

           at org.eclipse.equinox.launcher.Main.run(Main.java:1410)

           at org.eclipse.equinox.launcher.Main.main(Main.java:1386)

    Caused by: java.lang.IllegalAccessError: class sun.reflect.GeneratedConstructorAccessor3 cannot access its superclass sun.reflect.ConstructorAccessorImpl

           at sun.misc.Unsafe.defineClass(Native Method)

           at sun.reflect.ClassDefiner.defineClass(Unknown Source)

           at sun.reflect.MethodAccessorGenerator$1.run(Unknown Source)

           at sun.reflect.MethodAccessorGenerator$1.run(Unknown Source)

           at java.security.AccessController.doPrivileged(Native Method)

           at sun.reflect.MethodAccessorGenerator.generate(Unknown Source)

           at sun.reflect.MethodAccessorGenerator.generateConstructor(Unknown Source)

           at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)

           at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)

           at java.lang.reflect.Constructor.newInstance(Unknown Source)

           at org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:608)

           ... 53 more

    And

    java.lang.RuntimeException: Widget disposed too early for part ui.view.ConsoleLogView

           at org.eclipse.ui.internal.WorkbenchPartReference$1.widgetDisposed(WorkbenchPartReference.java:171)

           at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:123)

           at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)

           at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053)

           at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1077)

           at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1058)

           at org.eclipse.swt.widgets.Widget.release(Widget.java:808)

           at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:873)

           at org.eclipse.swt.widgets.Widget.release(Widget.java:811)

           at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:873)

           at org.eclipse.swt.widgets.Widget.release(Widget.java:811)

           at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:873)

           at org.eclipse.swt.widgets.Canvas.releaseChildren(Canvas.java:167)

           at org.eclipse.swt.widgets.Decorations.releaseChildren(Decorations.java:773)

           at org.eclipse.swt.widgets.Shell.releaseChildren(Shell.java:1290)

           at org.eclipse.swt.widgets.Widget.release(Widget.java:811)

           at org.eclipse.swt.widgets.Widget.dispose(Widget.java:446)

           at org.eclipse.swt.widgets.Decorations.dispose(Decorations.java:447)

           at org.eclipse.swt.widgets.Shell.dispose(Shell.java:715)

           at org.eclipse.swt.widgets.Display.release(Display.java:3804)

           at org.eclipse.swt.graphics.Device.dispose(Device.java:295)

           at main.Application.start(Application.java:44)

           at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)

           at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)

           at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)

           at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:344)

           at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)

           at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

           at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

           at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

           at java.lang.reflect.Method.invoke(Unknown Source)

           at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622)

           at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577)

           at org.eclipse.equinox.launcher.Main.run(Main.java:1410)

           at org.eclipse.equinox.launcher.Main.main(Main.java:1386)

    and

    java.lang.ExceptionInInitializerError

           at main.ApplicationWorkbenchWindowAdvisor.starupScheduler(ApplicationWorkbenchWindowAdvisor.java:133)

           at main.ApplicationWorkbenchWindowAdvisor.postWindowOpen(ApplicationWorkbenchWindowAdvisor.java:108)

           at org.eclipse.ui.internal.WorkbenchWindow.fireWindowOpened(WorkbenchWindow.java:1365)

           at org.eclipse.ui.internal.WorkbenchWindow.open(WorkbenchWindow.java:826)

           at org.eclipse.ui.internal.Workbench$24.runWithException(Workbench.java:1243)

           at org.eclipse.ui.internal.StartupThreading$StartupRunnable.run(StartupThreading.java:31)

           at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)

           at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:135)

           at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4140)

           at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3757)

           at org.eclipse.ui.application.WorkbenchAdvisor.openWindows(WorkbenchAdvisor.java:803)

           at org.eclipse.ui.internal.Workbench$33.runWithException(Workbench.java:1600)

           at org.eclipse.ui.internal.StartupThreading$StartupRunnable.run(StartupThreading.java:31)

           at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)

           at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:135)

           at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4140)

           at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3757)

           at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2609)

           at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2499)

           at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:679)

           at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)

           at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:668)

           at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)

           at main.Application.start(Application.java:37)

           at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)

           at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)

           at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)

           at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:344)

           at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)

           at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

           at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

           at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

           at java.lang.reflect.Method.invoke(Unknown Source)

           at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622)

           at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577)

           at org.eclipse.equinox.launcher.Main.run(Main.java:1410)

           at org.eclipse.equinox.launcher.Main.main(Main.java:1386)

    Caused by: org.apache.commons.logging.LogConfigurationException: java.lang.IllegalAccessError: class sun.reflect.GeneratedConstructorAccessor5 cannot access its superclass sun.reflect.ConstructorAccessorImpl (Caused by java.lang.IllegalAccessError: class sun.reflect.GeneratedConstructorAccessor5 cannot access its superclass sun.reflect.ConstructorAccessorImpl)

           at org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:637)

           at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:336)

           at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:310)

           at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:685)

           at property.BaseProperty.<clinit>(BaseProperty.java:21)

           ... 37 more

    Caused by: java.lang.IllegalAccessError: class sun.reflect.GeneratedConstructorAccessor5 cannot access its superclass sun.reflect.ConstructorAccessorImpl

           at sun.misc.Unsafe.defineClass(Native Method)

           at sun.reflect.ClassDefiner.defineClass(Unknown Source)

           at sun.reflect.MethodAccessorGenerator$1.run(Unknown Source)

           at sun.reflect.MethodAccessorGenerator$1.run(Unknown Source)

           at java.security.AccessController.doPrivileged(Native Method)

           at sun.reflect.MethodAccessorGenerator.generate(Unknown Source)

           at sun.reflect.MethodAccessorGenerator.generateConstructor(Unknown Source)

           at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)

           at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)

           at java.lang.reflect.Constructor.newInstance(Unknown Source)

           at org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:608)

           ... 41 more

    哈哈错误还挺多的,经过上stackoverflow 有可能是jar包之间存在冲突,又经过了一番探索,我发现在JRE System Library中和Referenced Libraries中都存在rt.jar这个包,会不会就是这个包引起的呢,并且好几个错误都是由sun.reflect这个包引起的。cannot access its superclass sun.reflect.ConstructorAccessorImpl,于是我就把Referenced Libraries这个包给删了,哈哈完美解决了问题。

                                                                                                                                                                            2016.3.13 于青岛

  • 相关阅读:
    Centos操作系统配置VIP以及网络
    heartbeat+nginx搭建高可用HA集群
    sudo -s/sodo -i/su root
    mysql数据库使用sql查询数据库大小及表大小
    Caffe机器学习框架
    TensorFlow实战:Chapter-4(CNN-2-经典卷积神经网络(AlexNet、VGGNet))
    深度工作:充分使用每一份脑力
    Laravel 的中大型专案架构
    python数据分析之numpy
    lumen-Permission 权限管理使用心得
  • 原文地址:https://www.cnblogs.com/winAlaugh/p/5273048.html
Copyright © 2020-2023  润新知