簡體   English   中英

Apace CXF - 如何在特定的根包中生成 java 類?

[英]Apace CXF - How to generate java classes in a specific root package?

這在生成.java時工作“很好”:

“C:\Program Files\apache-cxf-3.5.2\bin\wsdl2java.bat”-client http://localhost:10000/Framework.TbGes.TbGes?wsdl

但它會生成許多(100 多個)包,它們都位於不同的根目錄中。

我改為嘗試: wsdl2java.bat -p com.test -client http://localhost:10000/Framework.TbGes.TbGes?wsdl

我得到幾千次這個錯誤:

WSDLToJava 錯誤:http://virtual-1:10000/Framework.TbGes.TbGes?xsd=xsd24 [0,0]: Due dichiarazioni causano un conflitto nella classe ObjectFactory。 http://virtual-1:10000/Framework.TbGes.TbGes?xsd=xsd39 [0,0]: (Relativo allerrore riportato sopra) Questa è laltra dichiarazione。
http://virtual-1:10000/Framework.TbGes.TbGes?xsd=xsd39 [0,0]: Due dichiarazioni causano un conflitto nella classe ObjectFactory。

我想 wsdl2java 試圖在 com.test 中直接生成所有類,忘記了 WDSL 中定義的(子)包名稱,並在類同名的情況下產生沖突

問題:是否有任何選擇,告訴 wsdl2java 生成包 com.test 中的所有類,同時保持 WDSL 中定義的子包?

例子:

省略“-p com.test”,創建這些:

包 webproxyobj_dospinaction.services.web.microarea;

包 setuserinteractionmode.services.web.microarea;

我想用“-p com.test”,同樣的 2 是這樣創建的:

com.test .webproxyobj_dospinaction.services.web.microarea;

com.test .setuserinteractionmode.services.web.microarea;

謝謝你

根據https://cxf.apache.org/docs/wsdl-to-java.html上的文檔,可以選擇

-p [ wsdl-namespace= ] PackageName

Specifies zero, or more, package names to use for the generated code.
Optionally specifies the WSDL namespace to package name mapping.

因此,您可能必須為您在 wsdl 中遇到的每個 wsdl 命名空間添加一個映射。 您應該能夠在 wsdl 中使用 regex-search-and-replace 來生成該命令行參數。 但是,這可能會變得很長,並且取決於您的操作系統和 shell,可能會超過命令行長度限制。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM