1

wsimport を使用して WSDL ファイル (これも生成されます) から JAX-WS クライアントを生成していますが、サーバー側と一致しない列挙をクライアント側で生成するという問題があります。

私の WSDL ファイルからの該当するスニペットは、正しいエントリを示しています。

<xs:simpleType name="type">
  <xs:restriction base="xs:string">
    <xs:enumeration value="BLAH_99X"/>
    <xs:enumeration value="BLAH_123"/>
    <xs:enumeration value="BLAH_ABC"/>
  </xs:restriction>
</xs:simpleType>

クライアント用に生成された列挙型の該当する部分は次のとおりです。

@XmlType(name = "type")
@XmlEnum
public enum Type {
    @XmlEnumValue("BLAH_99X")
    BLAH_99_X("BLAH_99X"),
    BLAH_123("BLAH_123"),
    BLAH_ABC("BLAH_ABC");
}

クライアント用に生成された列挙項目は、サーバー側 (および WSDL 内) のものと一致すると予想していました。ただし、見てみると、最初に生成されたアイテム以外はすべて正しく生成BLAH_99_Xされ、正しい値にマップされます。

そのアイテムをそのように生成しなければならない本当の理由はありますか? 他の誰かがこれに遭遇し、それを正しく生成する方法はありますか?

アップデート

T1A32BCS12直感で列挙型にクレイジーな値 ( ) を追加したところT_1_A_32_BCS_12("T1A32BCS12")、クライアント コードで列挙型アイテムとして生成されました。そのため、文字と数字が並んでいる場合はいつでも wsimport がそれらの間にアンダースコアを挿入しているようです。これは wsimport のバグですか? これが起こるべき論理的な理由はないようです。

4

1 に答える 1

3

物事をきれいに保ち、無意味なオープンな質問をしないようにするために...これは明らかにJAX-WS RI 2.2.7のバグです。私が見つけた限り、それに対する回避策はありません。

于 2012-12-12T14:47:14.167 に答える