0

C コードで Web サービスを使用したい。私はクライアントを作ろうとしています。Axis2java が行うことを実行し、wsdl ファイルからクラスを生成する必要があります。Axis2c は、wsdl ファイルから生成された (.c) ファイルを作成することがわかりました。ここからダウンロードしました。それを解凍しました。AXIS2C_HOME の環境変数を作成し、AXIS2C_CLASSPATH を作成しました。しかし、私はそれを機能させることはできません。

このコマンドを入力すると:

WSDL2C -uri -ss -sd -d none -u -f -o

このエラーが発生します:

エコーオフ
エラー: メイン クラス org.apache.axis2.wsdl.WSDL2C が見つからないか読み込めませんでした

どうすればこの問題を解決できますか。この Axis2c ツールの正しい使い方を教えてください。

前もって感謝します。

@loentar : Axis2/Java をインストールし、環境変数を設定しました。wsdl2c.bat を実行すると、次のようになります。

E:\dev\Tools\axis2c-bin-1.6.0-win32\bin\tools\wsdl2c>WSDL2C.bat

E:\dev\Tools\axis2c-bin-1.6.0-win32\bin\tools\wsdl2c>echo off
使用法: java [-options] クラス [args...]
           (クラスを実行するため)
   または java [-options] -jar jarfile [args...]
           (jarファイルを実行するため)
オプションは次のとおりです。
    -d32 利用可能な場合は 32 ビット データ モデルを使用します
    -d64 利用可能な場合は 64 ビット データ モデルを使用します
    -server は「サーバー」VM を選択します
                  デフォルトの VM はサーバーです。

    -cp
    -クラスパス
                  を; ディレクトリ、JAR アーカイブ、
                  クラスファイルを検索するためのZIPアーカイブ。
    -D=
                  システム プロパティを設定する
    -verbose:[クラス|gc|jni]
                  詳細出力を有効にする
    -version 製品のバージョンを出力して終了
    -バージョン:
                  指定されたバージョンを実行する必要があります
    -showversion 製品バージョンを出力して続行
    -jre 制限検索 | -no-jre-restrict-search
                  バージョン検索でユーザーのプライベート JRE を含める/除外する
    -? -help このヘルプ メッセージを出力する
    -X 非標準オプションのヘルプを表示
    -ea[:...|:]
    -enableassertions[:...|:]
                  指定された粒度でアサーションを有効にする
    -da[:...|:]
    -disableassertions[:...|:]
                  指定された粒度でアサーションを無効にする
    -esa | -システムアサーションを有効にする
                  システム アサーションを有効にする
    -dsa | -システムアサーションを無効にする
                  システム アサーションを無効にする
    -agentlib:[=]
                  -agentlib:hprof などのネイティブ エージェント ライブラリをロードします。
                  -agentlib:jdwp=help および -agentlib:hprof=help も参照してください。
    -エージェントパス:[=]
                  完全なパス名でネイティブ エージェント ライブラリをロードする
    -javaagent:[=]
                  Java プログラミング言語エージェントをロードします。java.lang.instrument を参照してください。

    -スプラッシュ:
                  指定した画像でスプラッシュ スクリーンを表示する
m については、http://www.oracle.com/technetwork/java/javase/documentation/index.html を参照してください。
鉱石の詳細。

その後、次のコマンドを実行します。

E:\dev\Tools\axis2c-bin-1.6.0-win32\bin\tools\wsdl2c>WSDL2C.bat -uri hello.wsdl
-u -uw

E:\dev\Tools\axis2c-bin-1.6.0-win32\bin\tools\wsdl2c>echo off
認識できないオプション: -uri
エラー: Java 仮想マシンを作成できませんでした。
エラー: 致命的な例外が発生しました。プログラムは終了します。

私に何ができる ?ちなみにwindows8を使っています。

4

2 に答える 2

1

Axis2/C に加えて、Axis2/Java をインストールする必要があります。

AXIS2_HOMEAxis2/Java インストールを指す必要があります。

詳しくはcodegenのREADMEをご覧ください。

クライアントを作成およびコンパイルするコマンドの完全なリストは次のとおりです。

# create stubs
sh $AXIS2C_HOME/bin/tools/wsdl2c/WSDL2C.sh -uri Calculator.wsdl -u -uw

# implement main() in src/your_client.c
# see samples/codegen/client/calculator for example

# compile and link client
gcc -o calculator_client src/*.c -I$AXIS2C_HOME/include/axis2-1.6.0 -L$AXIS2C_HOME/lib -laxutil -laxis2_axiom -laxis2_parser -laxis2_engine -lpthread -laxis2_http_sender -laxis2_http_receiver -ldl -Wl,--rpath -Wl,$AXIS2C_HOME/lib
于 2015-01-21T22:06:03.453 に答える
0

JAVA_HOME、AXIS2_HOME、AXIS2C_HOME の環境変数を設定し、lib フォルダーを CLASSPATH に追加しました。このコマンドを実行した後: WSDL2C.bat -uri hello.wsdl -u -uw 次のメッセージが表示されました:

echo off 
Error: Could not find or load main class org.apache.axis2.wsdl.WSDL2C

私は自分で解決策を見つけました。:) AXIS2_HOME の環境変数を作成したかどうかを再確認したところ、正しくそこにあることがわかりました。存在するにもかかわらず、コマンドプロンプトで再度設定しようとしました。だから私はタイプしました:

SET AXIS2_HOME=E:\dev\Tools\axis2-1.6.2

次に、WSDL2C コード ジェネレーターのコマンドを入力しました。

WSDL2C.bat -uri hello.wsdl -u -uw

そしてバム!正常に動作しました。これで、WSDL ファイルから C ファイルを生成できます。

于 2015-01-26T06:49:07.597 に答える