2016-10-03 265 views
0

在一台机器上(WIN 7 x64),我有一个可用的eclipse安装和工作空间,我从中运行/调试了Teamcenter插件RCP(eclipse 3.6)完美无瑕。调试Teamcenter胖客户端(eclipse rcp)失败,出现“org.osgi.service.component.ComponentException”

现在我移动蚀和工作区到另一个WIN 7 X64的机器,确保能够对:

  • 具有相同的JRE
  • 具有相同的配置和安装路径
  • 具有相同的目标平台( Teamcenter的)安装(至少相同的插件集)

但新机,当我启动调试configur上有应用程序无法以此异常开始。

org.osgi.framework.ServiceException: Exception in org.eclipse.equinox.internal.ds.ServiceReg.getService() 
    at org.eclipse.osgi.internal.serviceregistry.ServiceUse.getService(ServiceUse.java:130) 
    at org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.getService(ServiceRegistrationImpl.java:447) 
    at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.getService(ServiceRegistry.java:430) 
    at org.eclipse.osgi.framework.internal.core.BundleContextImpl.getService(BundleContextImpl.java:667) 
    at com.teamcenter.rac.util.OSGIUtil.getService(Unknown Source) 
    at com.teamcenter.rac.util.OSGIUtil.getService(Unknown Source) 
    at com.teamcenter.rac.aifrcp.Application.runApplication(Unknown Source) 
    at com.teamcenter.rac.aifrcp.Application.start(Unknown Source) 
    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:369) 
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
    at java.lang.reflect.Method.invoke(Method.java:597) 
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:619) 
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:574) 
    at org.eclipse.equinox.launcher.Main.run(Main.java:1407) 
    at org.eclipse.equinox.launcher.Main.main(Main.java:1383) 
Caused by: org.osgi.service.component.ComponentException: The component was not built because some of its references could not be bound. The component is Component[ 
    name = com.teamcenter.rac.aifrcp.RCPPortal 
    activate = activate 
    deactivate = deactivate 
    modified = 
    configuration-policy = optional 
    factory = null 
    autoenable = true 
    immediate = false 
    implementation = com.teamcenter.rac.aifrcp.RCPPortal 
    state = Unsatisfied 
    properties = 
    serviceFactory = false 
    serviceInterface = [com.teamcenter.rac.services.IPortalService] 
    references = { 
     Reference[name = ISessionService, interface = com.teamcenter.rac.services.ISessionService, policy = static, cardinality = 1..1, target = null, bind = setSessionService, unbind = null] 
    } 
    located in bundle = com.teamcenter.rac.aifrcp_9000.1.0 [594] 
] 
    at org.eclipse.equinox.internal.ds.model.ServiceComponentProp.build(ServiceComponentProp.java:342) 
    at org.eclipse.equinox.internal.ds.InstanceProcess.buildComponent(InstanceProcess.java:580) 
    at org.eclipse.equinox.internal.ds.ServiceReg.getService(ServiceReg.java:53) 
    at org.eclipse.osgi.internal.serviceregistry.ServiceUse$1.run(ServiceUse.java:120) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at org.eclipse.osgi.internal.serviceregistry.ServiceUse.getService(ServiceUse.java:118) 
    ... 20 more 

在那第二台机器我使用其他Eclipse版本和JRE中,并导入/导出插件项目放在一个干净的安装也尝试过,但没办法,运行/调试失败

回答

0

的问题是在.target我用来指定目标平台(在这种情况下为Teamcenter)的文件。

假设我的plugins文件夹位于路径C:\plm\plmsw\tcroot\portal\plugins中。

的Eclipse接受在.TARGET文件两种形式:

  • 插件位置= C:\plm\plmsw\tcroot\portal\plugins enter image description here

  • 插件位置= C:\plm\plmsw\tcroot\portal enter image description here

但在运行时, 只有秒数是正确的,因为它被视为RCP的基本路径。 事实上,这里的错误来源于Teamcenter找不到“注册表”文件夹,该文件夹是在C:\plm\plmsw\tcroot\portal\plugins\registry中搜索的,而不是在其正确的位置C:\plm\plmsw\tcroot\portal\registry