2015-06-18 55 views
0

我們有一個用java 1.4版和1.4軸編寫的websercie代碼 現在我們正在嘗試升級到java 1.7我在使用java 1.7版本編譯時遇到以下錯誤。將java web服務代碼從java 1.4升級到java 1.7時得到錯誤

[javac的]
^ [javac的](使用-source 5或更高,以使用 '枚舉' 作爲關鍵字)

[javac] C:\xxx\adapter\xyz\src\abc\java\com\a\b\c\d\schema\e 

_PrototypeSoapStub.java:30:警告:如釋放5, '枚舉' 是一個關鍵字,並且 米

AY不能用作一個標識符

[javac]   oper.setUse(org.apache.axis.enum.Use.ENCODED); 

[javac]         ^
[javac] (use -source 5 or higher to use 'enum' as a keyword) 
[javac] C:\xxx\adapter\xyz\src\abc\java\com\a\b\c\d\schema\e 

_Prototyp eSoapStub.java:41:警告:如釋放5 '枚舉' 是一個關鍵字,並且m AY不能用作一個標識符

[javac]   oper.setStyle(org.apache.axis.enum.Style.RPC); 

[javac]          ^
[javac] (use -source 5 or higher to use 'enum' as a keyword) 

[javac] C:\xxx\adapter\xyz\src\abc\java\com\a\b\c\d\schema\e 

_PrototypeSoapStub.java:42:警告:如釋放5, 「枚舉」是一個關鍵詞, 米

唉不能用作標識符

[javac]   oper.setUse(org.apache.axis.enum.Use.ENCODED); 

能否請你建議如何解決這個?

回答

1

Java 5增加了一個語言功能調用枚舉。

從Java 5開始,enum不能用作標識符(方法名,變量名,部分包),因爲它是關鍵字。

您必須使用較新版本的庫。

+0

雖然這是正確的,但如果關鍵字正在被第三方庫使用,這個答案並不是那麼有用,就像OP的情況一樣。 –

+0

真的,謝謝... – Crazyjavahacking

1

看着Javadocs for apache axis 1.4,你會發現不推薦使用org.apache.axis.enum.Use。您應該更改所有參考,以改爲使用org.apache.axis.constants.Scope。這會讓你周圍使用enum關鍵字作爲標識符,正如你發現的那樣,你不能再做了。作爲一個側面說明,Axis 1.4在近十年內還沒有更新。現在是時候開始調查重寫這個東西了,這個東西仍然保留下來並且是標準的一部分。 Java EE有一個integrated web service framework,它比Axis更容易使用,並且仍然保持活躍。然而,這將代表一個重要的重寫,所以這可能不是您的直接選擇。