Eclipse не может создать клиент веб-службы, используя AXIS2 и CXF
После нескольких дней попыток разработать клиент WS из предоставленного WSDL, я обнаружил, что все это время я использовал ось, а не axis2...
Что ж, я делаю, щелкая правой кнопкой мыши wsdl > New > Other > Web Service Client.
В окне мастера все время было установлено "Apache Axis", а я не видел этого. Нажав на него, я могу выбрать "Apache Axis2" и "Apache CXF 2.x", но оба не удаются, а "Apache Axis" "работает": клиент создан, но не добавляет имя пользователя и пароль заголовка в XML запрос.
Вот ошибка, которую я получаю, когда пытаюсь использовать CXF:
Unable to add the follwing facets to project SIAPP_WS_FORNECEDOR_CFX_01: CXF 2.x Web Services.
org.eclipse.wst.common.project.facet.core.FacetedProjectFrameworkException: Failed while installing CXF 2.x Web Services 1.0.
at org.eclipse.wst.common.project.facet.core.internal.FacetedProject.callDelegate(FacetedProject.java:1507)
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$1.run(FacetedProject.java:324)
at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2344)
at org.eclipse.wst.common.project.facet.core.internal.FacetedProject.modify(FacetedProject.java:339)
at org.eclipse.jst.ws.internal.consumption.ui.common.FacetOperationDelegate$1.run(FacetOperationDelegate.java:62)
at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:121)
Caused by: org.eclipse.core.runtime.CoreException: CXF Runtime location not set. Please set location in Preferences > Web Services > CXf 2.x Preferences
at org.eclipse.jst.ws.internal.cxf.facet.CXFFacetInstallDelegate.execute(CXFFacetInstallDelegate.java:50)
at org.eclipse.wst.common.project.facet.core.internal.FacetedProject.callDelegate(FacetedProject.java:1477)
... 8 more
1 ответ
Для CXF вам нужно перейти в "Предпочтения" -> "Веб-служба" -> "Настройки CXF 2.x" и добавить среду выполнения CXF (указать на установку CXF). Это должно позволить ему найти инструмент wsdl2java (и такой), который будет необходим для CXF.