【问题标题】:wsimport generating enum types incorrectly with extra underscorewsimport 使用额外的下划线错误地生成枚举类型
【发布时间】:2012-10-04 16:33:59
【问题描述】:

我正在使用 wsimport 从 WSDL 文件(也已生成)生成我的 JAX-WS 客户端,但我遇到了一个问题,即它在客户端生成与服务器端不匹配的枚举。

我的 WSDL 文件中适用的 sn-p 显示了正确的条目:

<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 中的错误吗?这似乎没有合乎逻辑的理由。

【问题讨论】:

    标签: java jax-ws wsimport


    【解决方案1】:

    为了让事情保持整洁,避免出现毫无意义的开放性问题……这显然是 JAX-WS RI 2.2.7 中的一个错误。据我发现没有解决方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多