Я работаю над плагином Eclipse, который будет иметь мастера. Этот мастер будет доступен в виде примера из контекстного меню, если щелкнуть правой кнопкой мыши редактор Java.
Мастер будет отвечать за сбор такой информации как:
- расположение файла WSDL
- Имя пакета
Когда мастер завершит работу, я бы хотел, чтобы заглушка веб-сервиса, описанного в WSDL, была сгенерирована в предоставленный ранее пакет.
ВОПРОС: Как я могу генерировать заглушку веб-сервиса виртуально и из исходного кода (не из командной строки) и добавить его в текущий проект?
До сих пор я сталкивался с WSDL2Java (Axis), Apache CXF и wsimport. Я пытаюсь использовать Apache CXF и wsimport, но всегда получаю ClassNotFoundException, даже если все jar-файлы включены в buildpath. Я думаю, что мог бы использовать их неправильно.
Пожалуйста, помогите мне, ребята! Время выполнения этой задачи истекает: - (
Маленький пример:
Допустим, код (Apache CXF):
String[] args = {"-client", "-d", "D:\\test", "D:\test.wsdl" };
WSDLToJava w = new WSDLToJava(args);
ToolContext t = new ToolContext();
w.run(t);
Первые несколько исключительных строк:
java.lang.NoClassDefFoundError: org/apache/cxf/tools/wsdlto/WSDLToJava
at plugin.wsreplication.ui.wizard.component.AddComponentWizard.performFinish(AddComponentWizard.java:160)
at org.eclipse.jface.wizard.WizardDialog.finishPressed(WizardDialog.java:752)
at plugin.wsreplication.ui.wizard.component.AddComponentWizardDialog.finishPressed(AddComponentWizardDialog.java:39)
at org.eclipse.jface.wizard.WizardDialog.buttonPressed(WizardDialog.java:373)
at org.eclipse.jface.dialogs.Dialog$2.widgetSelected(Dialog.java:624)
at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:228)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1003)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3910)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3503)
at org.eclipse.jface.window.Window.runEventLoop(Window.java:825)
at org.eclipse.jface.window.Window.open(Window.java:801)
at plugin.wsreplication.ui.action.AddComponentAction.run(AddComponentAction.java:35)
at org.eclipse.ui.internal.PluginAction.runWithEvent(PluginAction.java:251)