ウィザードを持つ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) で