2012-03-18 33 views
5

Tôi đang cố gắng thêm AspectJ vào ứng dụng RCP/RAP Eclipse của tôi.Eclipse RCP AspectJ cấu hình

Tôi đã từng bước như những người này nói: link here (ngoại trừ việc tạo một nền tảng mới, tôi tự thêm các thư viện của mình vào nền tảng của mình).

Nhưng vấn đề là nó vẫn không làm việc ... Tôi nhận được lỗi này:

osgi> !SESSION 2012-03-18 02:16:54.354 ----------------------------------------------- 
eclipse.buildId=unknown 
java.version=1.7.0_02 
java.vendor=Oracle Corporation 
BootLoader constants: OS=linux, ARCH=x86_64, WS=gtk, NL=en_US 
Command-line arguments: -dev file:/home/alexandru/workspaces/Java-RCP-RAP/project/.metadata/.plugins/org.eclipse.pde.core/RAP Application/dev.properties -os linux -ws gtk -arch x86_64 -consoleLog -console -data /home/alexandru/workspaces/Java-RCP-RAP/project/.metadata/.plugins/org.eclipse.rap.ui.launch/RAPApplication 

!ENTRY org.eclipse.osgi 4 0 2012-03-18 02:16:54.960 
!MESSAGE Bundle org.eclipse.equinox.weaving.hook not found. 

java.lang.ClassNotFoundException: org.aspectj.weaver.loadtime.definition.Definition 
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(ClassLoader.java:356) 
    at org.eclipse.equinox.weaving.aspectj.AspectJWeavingActivator.start(Unknown Source) 
    at org.eclipse.osgi.framework.internal.core.BundleContextImpl$1.run(BundleContextImpl.java:711) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:702) 
    at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:683) 
    at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:381) 
    at org.eclipse.osgi.framework.internal.core.AbstractBundle.resume(AbstractBundle.java:389) 
    at org.eclipse.osgi.framework.internal.core.Framework.resumeBundle(Framework.java:1130) 
    at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:559) 
    at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:544) 
    at org.eclipse.osgi.framework.internal.core.StartLevelManager.incFWSL(StartLevelManager.java:457) 
    at org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(StartLevelManager.java:243) 
    at org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:438) 
    at org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:1) 
    at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230) 
    at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340) 

Tôi không biết tại sao tôi có lỗi này ... nó thực sự kỳ lạ ...

Trả lời

3

cũng ... lỗi này xảy ra bởi vì tôi đã không tái xuất các org.aspectj.runtime phụ thuộc ...

nhưng bây giờ tôi có một lỗi:

!ENTRY org.eclipse.osgi 4 0 2012-03-18 21:33:55.112 
!MESSAGE Bundle org.eclipse.equinox.weaving.hook not found. 
java.lang.reflect.InvocationTargetException 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:601) 
    at org.eclipse.equinox.weaving.aspectj.AspectJWeavingActivator.start(Unknown Source) 
    at org.eclipse.osgi.framework.internal.core.BundleContextImpl$1.run(BundleContextImpl.java:711) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:702) 
    at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:683) 
    at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:381) 
    at org.eclipse.osgi.framework.internal.core.AbstractBundle.resume(AbstractBundle.java:389) 
    at org.eclipse.osgi.framework.internal.core.Framework.resumeBundle(Framework.java:1130) 
    at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:559) 
    at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:544) 
    at org.eclipse.osgi.framework.internal.core.StartLevelManager.incFWSL(StartLevelManager.java:457) 
    at org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(StartLevelManager.java:243) 
    at org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:438) 
    at org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:1) 
    at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230) 
    at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340) 
Caused by: java.lang.NoClassDefFoundError: org/eclipse/equinox/service/weaving/IWeavingServiceFactory 
    at org.eclipse.equinox.weaving.aspectj.AspectJWeavingStarter.start(Unknown Source) 
    ... 20 more 
Caused by: java.lang.ClassNotFoundException: org.eclipse.equinox.service.weaving.IWeavingServiceFactory 
    at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:467) 
    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(ClassLoader.java:356) 
    ... 21 more 

Tôi nghĩ rằng điều này là do org.eclipse.equinox.weaving.hook không được tìm thấy ... nhưng tôi đã thêm điều này -Dosgi.framework.extensions=org.eclipse.equinox.weaving.hook tại run configurations.

EDITED với SOLUTION:

tìm thấy nó ..

tôi đã có thêm các thư viện AspectJ trong cùng một thư mục nơi khuôn khổ OSGi của tôi là (nơi nền tảng được định nghĩa)

+4

Và họ tự hỏi tại sao AOP không bao giờ cất cánh ... chức năng tuyệt vời để có nhưng một cơn đau ở cổ để làm việc. Chỉ có bướng bỉnh nhất tồn tại! – jkschneider

Các vấn đề liên quan