2013-03-31 86 views
0

我已經產生了使用CXF 2.7.3代碼形式WSDL到Java的,但建設大會時,我得到「代碼過大」的錯誤。表明其中一種方法已經超過了java 64kb的限制。我確切地知道哪個類和我看起來像cxf中的bug。 Actully Axis2也是如此,所以我想知道如果有人知道如何解決這個問題。生成Java代碼提供了代碼太大錯誤

我玩弄路徑生態API-EX /例子/ JAVA提供here代碼/

我怎麼能強制代碼生成分裂產生大的方法?或者我應該使用一些外部工具呢?

[ERROR] \workspace\e-conomics\target\generated\src\main\java\com\e_conomic\Econo 
micWebServiceSoap_EconomicWebServiceSoap12_Client.java:[34,23] error: code too l 
arge 
+0

WSD文檔有多大_is_? –

+1

看到你的自我..它的長https://api.e-conomic.com/secure/api1/EconomicWebService.asmx?wsdl我想要整合到這個服務..我的第二個想法是下載並帶走我不需要.. – user1043825

+0

這是排序的文件,其下載應當由經典的蠕蟲音效陪伴:「傳入」 –

回答

2

不要與-client標誌運行WSDL2Java的。 _Client.java類只是一個示例類,用於展示如何使用生成的服務類和代理等。這通常不需要任何東西。那應該是用這種大方法生成的唯一類。

+0

我應該說我已經刪除了,我運行最新的CXF和我也試過Axis2的。軸線更進一步,但在68608行:),說「代碼太大」。這不是我想要整合的wsdl或服務。 – user1043825

+0

如果刪除了那個,那麼你應該有一個新的錯誤或類名。錯誤將不再在Econo micWebServiceSoap_EconomicWebServiceSoap12_Client.java中,因爲不會生成該錯誤。你可以更新新位置嗎? –

+0

實際上,我從wsdl(3mb-> 2.4mb)中刪除了我不需要的東西,以便編譯它,並且它運行得非常好。我到處發佈了針對您的請求的第二個錯誤消息,但是這一次只是對整個3mb wsdl進行了處理。我做的不同之處在於在本地使用WSDL。無論您如何提及和我之前嘗試過的-client標誌,都會導致問題與本地沒有的問題結合在一起,對於遇到類似問題的人來說也是非常有用的。 – user1043825

0

您已經有了一個3MB的WSDL文檔。 (難怪當我試圖查看一個這樣大小的通用XML文檔時,我的瀏覽器有點不高興。)它有大約3000個定義在它的元素;還有3k消息和4.5k操作。我不知道你究竟在達到什麼限度(有一些地方是所有特定類型實體的註冊機構都在建設中),但這並不重要。對於大多數代碼來說,這通常太大。 (你打的限制似乎是在字節碼的方法的總大小的一個;打,通常是一些指示別的地方去嚴重出錯:在這種情況下,它的掩體剋星WSDL文檔。)

構建具有一套更小的元素,消息和操作將是一個極好的主意一個簡化版本。在Maven可以找到它的倉庫中放置這個縮減版本(例如,在src/main/wsdl中)也會很有意義,因爲它會阻止您在每次構建時再次下載該3MB文檔。

+0

我知道,在這裏希望得到靈丹妙藥,它怎麼好玩可以編輯3000元素wsdl?明天他們編輯他們的API,突然沒有任何工程再次..希望不要去手動蠻力路.. – user1043825