Создайте аспект с помощью AJDT в бывшем проекте Java

Я решил решить проблему в проекте Java с помощью АОП, поэтому я установил AJDT 2.2.3 в свой Eclipse Kepler. Казалось, все работает нормально, так как я могу создать новый проект AspectJ и создать аспекты, и все работает как надо. Аспекты правильно сплетены и выполняются, как я и ожидал. После этого я попытался интегрировать AspectJ в свой уже существующий Java-проект. Я преобразовал его с помощью Configure > Convert to AspectJ Project. Тем не менее все работает нормально, но когда я дошел до того, что фактически создал аспект в этом проекте с помощью мастера создания аспектов, я столкнулся со следующим сообщением об ошибке: Creation of element failed. See error log for more details. Я все еще могу завершить работу мастера, но созданный файл аспекта выглядит иначе, чем аспекты, созданные в моих первых попытках в проекте AspectJ.

Файл

Если я отредактирую созданный файл, тот же аспект, который работал в первой попытке в оригинальном проекте AspectJ, похоже, не будет иметь никакого эффекта.

Сообщение журнала (некоторые строки между ними опущены):

java.lang.reflect.InvocationTargetException
    at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:421)
at org.eclipse.jface.wizard.WizardDialog.run(WizardDialog.java:1028)
at org.eclipse.jdt.internal.ui.wizards.NewElementWizard.performFinish(NewElementWizard.java:134)
...
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:636)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:591)
at org.eclipse.equinox.launcher.Main.run(Main.java:1450)
Caused by: java.lang.NullPointerException
at org.eclipse.ajdt.internal.ui.wizards.AJNewTypeWizardPage.ajc$interMethod$org_eclipse_ajdt_internal_ui_wizards_AJNewTypeWizardPage$org_eclipse_ajdt_internal_ui_wizards_NewTypeWizardPage$createAJType(AJNewTypeWizardPage.aj:267)
at org.eclipse.ajdt.internal.ui.wizards.NewTypeWizardPage.ajc$interMethodDispatch2$org_eclipse_ajdt_internal_ui_wizards_AJNewTypeWizardPage$createAJType(NewTypeWizardPage.java:1)
at org.eclipse.ajdt.internal.ui.wizards.AJNewTypeWizardPage.ajc$interMethodDispatch1$org_eclipse_ajdt_internal_ui_wizards_AJNewTypeWizardPage$org_eclipse_ajdt_internal_ui_wizards_NewTypeWizardPage$createAJType(AJNewTypeWizardPage.aj)
...
org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:728)
at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2345)
at org.eclipse.jdt.core.JavaCore.run(JavaCore.java:5331)
at org.eclipse.jdt.internal.ui.actions.WorkbenchRunnableAdapter.run(WorkbenchRunnableAdapter.java:106)
at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:121)

Кто-нибудь знает, что эта ошибка хочет сказать мне и что я могу сделать, чтобы использовать аспекты в моем проекте?


person LostAvatar    schedule 11.08.2013    source источник
comment
Это похоже на случай для списка рассылки aspectj-users, возможно, даже для Bugzilla. Но сначала попробуйте список.   -  person kriegaex    schedule 12.08.2013
comment
У меня такая же проблема, вы нашли решение?   -  person Johannes Luong    schedule 11.02.2014


Ответы (1)


Не для Kepler, но столкнулся с похожей проблемой на Oxygen. Создал проект Java, преобразовал его в AspectJ, а затем в Maven только для того, чтобы столкнуться с проблемой, упомянутой выше. Выбросил его, создал новый проект Maven и преобразовал его в AspectJ. Это сработало.

person ScottSummers    schedule 01.02.2020