ウィザードを持つEclipseプラグインに取り組んでいます。このウィザードは、Java エディタでマウスを右クリックしてコンテキスト メニューから使用できます。
ウィザードは、次のような情報を収集します。
- WSDL ファイルの場所
- パッケージ名
ウィザードが終了したら、先ほど提供したパッケージに生成された WSDL に記述された Web サービスのスタブを入れたいと考えています。
問題は、どうすれば動的にソース コードから (コマンド ラインからではなく) Web サービス スタブを生成し、それを現在のプロジェクトに追加できるかということです。
今まで、WSDL2Java (Axis)、Apache CXF、および wsimport に出会いました。Apache CXF と wsimport を使用しようとしていますが、すべての jar がビルドパスに含まれているにもかかわらず、常に ClassNotFoundException が発生します。私はそれらを間違って使用した可能性があると思います。
私を助けてください!そのタスクの時間がなくなっています :-(
ちょっとした例:
コードが(Apache CXF)であるとしましょう:
String[] args = {"-client", "-d", "D:\\test", "D:\test.wsdl" };
WSDLToJava w = new WSDLToJava(args);
ToolContext t = 新しい ToolContext();
w.run(t);
例外の最初の数行は次のとおりです。
java.lang.NoClassDefFoundError: org/apache/cxf/tools/wsdlto/WSDLToJava
plugin.wsreplication.ui.wizard.component.AddComponentWizard.performFinish (AddComponentWizard.java:160) で
org.eclipse.jface.wizard.WizardDialog.finishPressed (WizardDialog.java:752) で
plugin.wsreplication.ui.wizard.component.AddComponentWizardDialog.finishPressed (AddComponentWizardDialog.java:39) で
org.eclipse.jface.wizard.WizardDialog.buttonPressed (WizardDialog.java:373) で
org.eclipse.jface.dialogs.Dialog$2.widgetSelected(Dialog.java:624) で
org.eclipse.swt.widgets.TypedListener.handleEvent (TypedListener.java:228) で
org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) で
org.eclipse.swt.widgets.Widget.sendEvent (Widget.java:1003) で
org.eclipse.swt.widgets.Display.runDeferredEvents (Display.java:3910) で
org.eclipse.swt.widgets.Display.readAndDispatch (Display.java:3503) で
org.eclipse.jface.window.Window.runEventLoop(Window.java:825)で
org.eclipse.jface.window.Window.open(Window.java:801) で
plugin.wsreplication.ui.action.AddComponentAction.run(AddComponentAction.java:35) で
org.eclipse.ui.internal.PluginAction.runWithEvent (PluginAction.java:251) で