0
public class Pojo {
   private String value;

   public static void printValue() {
      System.out.println("value=" + value);
   }
}

次のようにWebサービスからこれを返したいと思います:

@WebService
public class MyService {
   @WebMethod
   public Pojo getPojo() {
      return new Pojo();
   }
}

できるか、すべきか、できないか、すべきでないかについて、決定的な答えが見つからないようです。

4

2 に答える 2

2

データのみがネットワーク経由で送信されます。静的または非静的メソッドは送信されません。

受信側でデータを同じクラスにバインドする場合(問題ありません)、メソッドは元に戻りますが、SOAPはそれとは何の関係もありません。これは、独自のトリックです。もちろん、他の言語(C#、python、...)で書かれたクライアントにはあなたのメソッドはありません。

PS返送するオブジェクトのクラスには、常にメソッドがあります。Pojoは暗黙的にObjectからサブクラス化されているため、toString()、hashCode()などがあります。JAX-WSは気にしません。

于 2009-09-22T20:50:46.107 に答える
1

いいえ、考えてみてください。

  1. Web サービスは、プラットフォームに依存しないことを意図しています
  2. ネットワーク経由で送信されるのは、単純な XML (またはその他の形式) データです。

では、静的メソッドをネットワーク経由で送信するにはどうすればよいでしょうか。Java 以外のクライアントは、Web サービスの応答をどのように解釈できますか?

于 2009-09-22T20:25:23.263 に答える