本文介紹了Wsimport錯(cuò)誤地生成帶有額外下劃線的枚舉類型的處理方法,對(duì)大家解決問(wèn)題具有一定的參考價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧!
問(wèn)題描述
我正在使用wsimport從(也生成的)wsdl文件生成我的JAX-WS客戶端,但在客戶端生成與服務(wù)器端不匹配的枚舉時(shí)遇到問(wèn)題。
我的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");
}
我本以為為客戶端生成的枚舉項(xiàng)將與來(lái)自服務(wù)器端(以及在WSDL中)的枚舉項(xiàng)相匹配。但是,當(dāng)您查看時(shí),它會(huì)正確地生成它們,但第一項(xiàng)除外,它會(huì)生成為BLAH_99_X
,然后映射到正確的值。
有什么真正的理由必須以它所做的方式生成該項(xiàng)目嗎?有沒(méi)有其他人遇到過(guò)這種情況,以及如何正確生成它?
更新
我憑直覺(jué)將一個(gè)瘋狂的值(T1A32BCS12
)添加到我的枚舉中,它在客戶機(jī)代碼中生成T_1_A_32_BCS_12("T1A32BCS12")
作為我的枚舉項(xiàng)。所以,似乎任何時(shí)候你有一個(gè)字母和一個(gè)數(shù)字并排的wsimport是在它們之間插入下劃線。這是wsimport中的錯(cuò)誤嗎?似乎沒(méi)有合理的理由會(huì)發(fā)生這種情況。
推薦答案
為了保持事物的整潔,避免周圍有毫無(wú)意義的公開(kāi)問(wèn)題…這顯然是JAX-WS RI 2.2.7中的一個(gè)錯(cuò)誤。據(jù)我所知,沒(méi)有解決辦法。
這篇關(guān)于Wsimport錯(cuò)誤地生成帶有額外下劃線的枚舉類型的文章就介紹到這了,希望我們推薦的答案對(duì)大家有所幫助,