本文介紹了Wsimport錯誤地生成帶有額外下劃線的枚舉類型的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!
問題描述
我正在使用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中的錯誤嗎?似乎沒有合理的理由會發生這種情況。
推薦答案
為了保持事物的整潔,避免周圍有毫無意義的公開問題…這顯然是JAX-WS RI 2.2.7中的一個錯誤。據我所知,沒有解決辦法。
這篇關于Wsimport錯誤地生成帶有額外下劃線的枚舉類型的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,