2

axis2-1.5 にある wsdl2java を使用して .java ファイルを生成しました。これで、次のフォルダー構造にファイルが生成されました: src/net/mycompany/www/services/

services フォルダー内のファイルは、SessionIntegrationStub および SessionIntegrationCallbackHandler です。

今すぐ Web サービスを利用したいと思います。net フォルダーを CLASSPATH 環境変数に追加しました。私のJavaファイルは、次を使用してWebサービスをインポートするようになりました:

import net.mycompany.www.services;

public class test 
{ 
  public static void main(String[] args) 
  {
    SessionIntegrationStub stub = new SessionIntegrationStub();
    System.out.println(stub.getSessionIntegration("test"));
  } 
} 

今、これを使用してコンパイルしようとすると:

javac test.java

私は得る:パッケージnet.mycompany.wwwは存在しません。

何か案が?

4

3 に答える 3

2

すでに提案したように、パッケージではなく、生成されたスタブ クラスをインポートする必要があります

import net.mycompany.www.services.SessionIntegrationStub;

次に、XML 要求オブジェクトを設定する必要があります。あなたのWSDLがどのように見えるかはわかりませんが、たとえば

SessionIntegrationStub.SessionRequest req = new SessionIntegrationStub.SessionRequest()
req.setParamOne(1)
req.setParamTwo(2)

そして最後にWebサービスを呼び出します

SessionIntegrationStub.SessionResponse resp = stub.operationOne(req)

println resp.getAnswer()

: 上記のセッターとゲッターは、スキーマで宣言された要素に対応しています。SessionRequest クラスと SessionResponse クラスは、スキーマで宣言された複合型に対応します。

于 2010-04-02T08:39:53.997 に答える
0

ここでの問題は、パッケージ構造です。test.java は、生成されたソースとは異なるパッケージにあります。

現在のファイルを同じパッケージ構造に保持するか、生成されたソースのフルパスをjavacのように提供する必要があります

javac src/net/mycompany/www/services/ .java src/net/mycompany/services/ .java

于 2010-04-03T18:35:08.440 に答える
0

これはおそらく言うべきimport net.mycompany.www.services.*;です。アスタリスクを逃しました。

于 2010-02-19T20:31:23.067 に答える