2

Webサービスを設定しようとしています。

私のアプローチは次のとおりです。

  • 動的Webプロジェクトを作成する
  • クラス「MyService」を作成します。

    @WebService
    @XmlSeeAlso({B.class})
    public class MyService {
        public A method() {
            return new B();
        }
    }
    
  • クラス「A」を作成します。

    @XmlSeeAlso(B.class)
    public class A {
        public int propertyOfA=0;
    }
    
  • クラス「B」を作成します。

    public class B extends A {
        public int propertyOfB=1;
    }
    
  • MyService.javaからWebサービスを作成します

エラーはなく、すべてのファイルが作成されます。ただし、クラスBはWSDLのどこにも表示されません。したがって、すべてのWebサービス応答propertyOfBには、サービスの説明に含まれていないため、の値が含まれることはありません。

BWSDLにアクセスするにはどうすればよいですか?

編集:違いがあるかどうかはわかりませんが、Tomcat v7.0、ApacheAxis用のWebサービスを作成しています

4

1 に答える 1

1

あなたの要件は、Bタイプのオブジェクトがmethod()操作からも返される可能性があることをWebサービスのユーザーに通知することだと思います。したがって、あなたがしなければならないのは、このようなエントリをservice.xmlに追加することです。

 <parameter name="extraClass">B</parameter>

そのため、WSDLにエントリが追加され、Webサービス操作がこれらの種類のオブジェクトも返すことに言及します。したがって、code-genが発生すると、これらも生成されます。応答のxsi:typeを確認することで、返されるクラスを見つけることができます。詳細については、このブログをお読みください。http://ssagara.blogspot.com/2011/07/how-to-get-best-use-of-axis2-object.html

于 2012-11-10T03:49:57.440 に答える