0

Tomcat で Metro を使用して SOAP サービスを作成しました。正常に動作しますが、クラスは完全には返されません。

他のクラスとの関係を持つクラス ServiceReport があります。これはコードです:

@Entity
@Table( name = "ALBAU_SERVICEREPORT" )
public class ServiceReport extends StoredEntity<ServiceReport> {

   @ManyToOne( targetEntity = AlbauInstallation.class, cascade = CascadeType.PERSIST )
   @XmlTransient
   private AlbauInstallation installation;

   @OneToOne( cascade = CascadeType.ALL )
   private FlexDocument flexDocumentData;

   //   private Header headerData;
   @OneToMany( cascade = CascadeType.ALL,
               fetch = FetchType.EAGER,
               targetEntity = Position.class,
               mappedBy = "serviceReport" )
   private List<Position> positionList;

WSDL で作成される唯一のプロパティは、flexDocumentData です。生成されたインターフェイスに AlbauInstallation と positionList の両方を含めるには、どのような注釈が必要ですか?

これは WSDL へのリンクです: http://alpha.sertal.ch:8181/VisionWeb/soap/AlbauInterface?wsdl

OneToOne 関係が渡され、他の関係が渡されないようです

4

1 に答える 1

0

この場合、解決策は非常に単純なようです。

クラスPositionでは、ManyToOne アノテーションを次のように変更しました。

@ManyToOne
private ServiceReport serviceReport;

に:

@ManyToOne(targetEntity = ServiceReport.class)
private ServiceReport serviceReport;

必要な 2 番目の変更は、setterfor ポジションを追加することでした。理由はわかりませんが、setter がないとプロパティが WSDL に表示されません。

そして今、WSDLでコレクションを取得します

于 2012-05-20T11:48:50.823 に答える