Development Environment:
Eclipse 3.7.1 RCP SDK
Problem generation process:
Create an eclipse RCP project, use windowbuilder to design the editor interface, and bind a control (such as label) to Data.
Code generated in the eclipse Background:
Protected DataBindingContext initDataBindings (){
DataBindingContext bindingContext = new DataBindingContext ();
IObservableValue lblSysNoObserveTextObserveWidget = SWTObservables. observeText (lblSysNo );
IObservableValue syscontextpolicypesystemnameobservevalue = PojoObservables. observeValue (sysContext, "cmdype. systemNo ");
BindingContext. bindValue (lblSysNoObserveTextObserveWidget, syscontextpolicypesystemnameobservevalue, null, null );
Return bindingContext;
}
An error message is displayed when you save the program and run the code.
Error message:
! SESSION 22:58:20. 305 ----------------------------------------------- eclipse. buildId = unknownjava. version = 1.6.0 _ 22java. vendor = Sun Microsystems Inc. bootLoader constants: OS = win32, ARCH = x86, WS = win32, NL = zh_CNFramework arguments:-application teshost. applicationCommand-line arguments:-application teshost. application-data D: \ work \ src /.. /runtime-teshost.application-dev file: D:/work/src /. met Adata/. plugins/org. eclipse. PVDF. core/teshost. application/dev. properties-OS win32-ws win32-arch x86-consoleLog! ENTRY org. eclipse. osgi 2 0 2011-11-22 22:58:21. 360! MESSAGE One or more bundles are not resolved because the following root constraints are not resolved :! SUBENTRY 1 org. eclipse. osgi 2 0 2011-11-22 22:58:21. 360! MESSAGE Bundle initial @ reference: file: http://www.cnblogs.com/work/src/teshost/ was not resolved .! SUBENTRY 2 teshost 2 0 2011-11-22 22:58:21. 360! MESSAGE Missing required bundle org. eclipse. core. databinding. beans_0.0.0 .! ENTRY org. eclipse. osgi 2 0 2011-11-22 22:58:21. 361! MESSAGE The following is a complete list of bundles which are not resolved, see the prior log entry for the root cause if it exists :! SUBENTRY 1 org. eclipse. osgi 2 0 2011-11-22 22:58:21. 362! MESSAGE Bundle teshost_1.0.0 [38] was not resolved .! SUBENTRY 2 teshost 2 0 2011-11-22 22:58:21. 362! MESSAGE Missing required bundle org. eclipse. core. databinding. beans_0.0.0 .! ENTRY org. eclipse. osgi 2 0 2011-11-22 22:58:21. 371! MESSAGE One or more bundles are not resolved because the following root constraints are not resolved :! SUBENTRY 1 org. eclipse. osgi 2 0 2011-11-22 22:58:21. 371! MESSAGE Bundle initial @ reference: file: http://www.cnblogs.com/work/src/teshost/ was not resolved .! SUBENTRY 2 teshost 2 0 2011-11-22 22:58:21. 372! MESSAGE Missing required bundle org. eclipse. core. databinding. beans_0.0.0 .! ENTRY org. eclipse. osgi 2 0 2011-11-22 22:58:21. 373! MESSAGE The following is a complete list of bundles which are not resolved, see the prior log entry for the root cause if it exists :! SUBENTRY 1 org. eclipse. osgi 2 0 2011-11-22 22:58:21. 373! MESSAGE Bundle teshost_1.0.0 [38] was not resolved .! SUBENTRY 2 teshost 2 0 2011-11-22 22:58:21. 373! MESSAGE Missing required bundle org. eclipse. core. databinding. beans_0.0.0 .! ENTRY org. eclipse. osgi 4 0 2011-11-22 22:58:21. 374! MESSAGE Application error! STACK 1java. lang. runtimeException: Application "teshost. application "cocould not be found in the registry. the applications available are: org. eclipse. equinox. app. error. at org. eclipse. equinox. internal. app. eclipseAppContainer. startDefaultApp (EclipseAppContainer. java: 248) at org. eclipse. equinox. internal. app. mainApplicationLauncher. run (MainApplicationLauncher. java: 29) 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 (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: 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)
An error has occurred. See the log file
Error cause:
In the generated binding code, PojoObservables comes from
Org. eclipse. core. databinding. beans jar package.
This jar package is in Plug-in Dependencies, but the project cannot be loaded no matter how it is. The specific cause of the error is unknown. After you debug the code, an exception will be reported:
Java. lang. RuntimeException: No application id has been found.
At org. eclipse. equinox. internal. app. EclipseAppContainer. startdefaapp app (EclipseAppContainer. java: 242)
Solution:
1. Find the corresponding jar package under the eclipse installation directory, such as: d: \ eclipse-SDK-3.7.1-win32 \ eclipse \ plugins \ org. eclipse. core. databinding. beans_1.2.100.I20100824-0800.jar
2. Add the jar package other than the jar package to the project reference (Add Extenal JARS ...)
3. copy the jar package to the lib folder of the project.
4. Open the MANIFEST. MF file of the project and go to the MANIFEST. MF Tab page.
5. Delete dependencies:
Require-Bundle: org. eclipse. ui,
Org. eclipse. core. runtime, org. eclipse. core. databinding, org. eclipse. core. databinding. beans, // Delete this row. Due to part 1, the project Generation Code does not report an error because the namespace is found. Org. eclipse. core. databinding. observable, org. eclipse. core. databinding. property, org. eclipse. jface. databinding
6. Add jar package references on the runtime and build tab pages respectively.
7. Restart the execution and solve the problem.
PS: The specific cause of the problem is unknown. It may be a RCP bug.