2016-10-04 6 views
0

からオブジェクトのリストを表示するために、私は次のクラスによって表現され、非常に単純なWebサービスを実行している:(WSMachineObjectクラスがすでに別のWebサービス上で動作することに注意してください!)バート(Webサービス):どのようにSOAPレスポンス

@XmlAccessorType(XmlAccessType.FIELD) 
@XmlType(name = "MachinehallObject") 
public class WSMachinehallObject { 

    @XmlElement(name = "machine_list") 
    private ArrayList<WSMachineObject> machines = new ArrayList<>(); 

    @XmlElement(name = "name") 
    protected String name; 

    public WSMachinehallObject(IMachineHall machineHall) { 

     for (IMachine machine : machineHall.getMachines()) { 
      machines.add(new WSMachineObject(machine)); 
     } 

     this.name = machineHall.getName(); 
    } 

} 

私がBirtのこのWebサービスに接続すると、マシンホールの名前がわかります。サーバー側では、WSMachineObjectのすべてが同じであることがわかります。

私の質問は、マシンホール(すでに動作している)の名前を表示し、レポート内のすべてのWSMachineObjectsから選択した情報を表示するデータセットを作成する方法です。

私のWebサービスからのSOAP応答は以下のようになります。

Webservice SOAP response

あなたは私は会場名とその属性を持つマシンのリストを取得見ることができるように。私はmachine_listを私のレポートに入れようとしましたが、単に文字列 "machine_list"をレポートに入れました。マシンのパラメータを追加してレポートに追加しようとすると、同じことが起こりました。

基本的に、別のSOAPオブジェクトの一部であるSOAPオブジェクトのリストを表示する方法を知りたいと思っています。

答えて

0

解決済みの問題が見つかりました。

は、基本的に我々は基本的に、我々はここで使用してオブジェクトのリストを扱っているマーシャラーを伝えることだったので、何この1

@XmlElementWrapper 
@XmlElement(name = "machine_list") 
private ArrayList<WSMachineObject> machines = new ArrayList<>(); 

で、このコードの一部に

@XmlElement(name = "machine_list") 
    private ArrayList<WSMachineObject> machines = new ArrayList<>(); 

を変更する必要があります@XmlElementWrapper注釈。

関連する問題