У меня есть git-репозиторий с кучей проектов, я проверяю их внутри рабочего пространства eclipse, поэтому в итоге получается структура каталогов, подобная этой:
Я пытаюсь активировать фасет axis2 для project1, но он терпит неудачу с NullPointerException, которое я отслеживал до фазы "копировать файлы в рабочее пространство" в плагине оси 2.
Если я перемещаю project1 на один уровень, чтобы он был дочерним элементом рабочего пространства, я могу активировать грань без каких-либо проблем. Перемещение проектов на один уровень не будет работать, потому что там есть другие клонированные живые репозитории.
Мне кажется, что плагин axis2 пытается скопировать файлы в WORKSPACE_LOC/project1 или PARENT_LOC/project1, и WORKSPACE_LOC и PARENT_LOC указывают на базовый каталог рабочей области, и я, похоже, не могу их изменить.
Я попытался добавить символические ссылки в каталог рабочей области, указывающий на каталоги проектов, но это не сработало.
Я смог реплицировать это вне контекста git, просто попытка добавить фасет axis2 к проекту внутри каталога внутри рабочей области вызовет его.
Я смог воспроизвести это в Eclipse Luna в Linux и Eclipse Juno в Mac.
Это исключение, которое я получаю:
java.lang.NullPointerException
at org.eclipse.jst.ws.axis2.facet.utils.ContentCopyUtils.makeFolderPathAtLocation(ContentCopyUtils.java:247)
at org.eclipse.jst.ws.axis2.facet.utils.ContentCopyUtils.makeFolderPathAtLocation(ContentCopyUtils.java:292)
at org.eclipse.jst.ws.axis2.facet.utils.ContentCopyUtils.copyDirectoryRecursivelyIntoWorkspace(ContentCopyUtils.java:123)
at org.eclipse.jst.ws.axis2.facet.commands.Axis2WebservicesServerCommand.executeOverride(Axis2WebservicesServerCommand.java:113)
at org.eclipse.jst.ws.axis2.facet.deligate.Axis2CoreFacetInstallDelegate.execute(Axis2CoreFacetInstallDelegate.java:43)
at org.eclipse.wst.common.project.facet.core.internal.FacetedProject.callDelegate(FacetedProject.java:1477)
at org.eclipse.wst.common.project.facet.core.internal.FacetedProject.modifyInternal(FacetedProject.java:441)
at org.eclipse.wst.common.project.facet.core.internal.FacetedProject.mergeChangesInternal(FacetedProject.java:1181)
at org.eclipse.wst.common.project.facet.core.internal.FacetedProject.access$2(FacetedProject.java:1117)
at org.eclipse.wst.common.project.facet.core.internal.FacetedProject$5.run(FacetedProject.java:1099)
at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2313)
at org.eclipse.wst.common.project.facet.core.internal.FacetedProject.mergeChanges(FacetedProject.java:1109)
at org.eclipse.wst.common.project.facet.core.internal.FacetedProjectWorkingCopy.commitChanges(FacetedProjectWorkingCopy.java:2020)
at org.eclipse.wst.common.project.facet.ui.internal.FacetsPropertyPage$4.run(FacetsPropertyPage.java:232)
at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2313)
at org.eclipse.wst.common.project.facet.ui.internal.FacetsPropertyPage$5.run(FacetsPropertyPage.java:246)
at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:122)
Это было вызвано проблемой с плагином ax2 eclipse, если у вас есть проекты во вложенной структуре, подобной этой, и вы хотите ее использовать, вам придется переместить их в каталог за пределами каталога рабочей области, чтобы это не происходило.