将java web服务代码从java 1.4升级到java 1.7时web服务出错
我们有一个用java版本1.4和axis 1.4编写的Webercie代码 现在我们正试图升级到Java1.7,在使用Java1.7版本编译时,我发现了以下错误
[javac]
^
[javac](使用-source 5或更高版本将'enum'用作关键字)
[javac] C:\xxx\adapter\xyz\src\abc\java\com\a\b\c\d\schema\e
_原型soapstub。java:30:警告:从第5版开始,“enum”是一个关键字,并且 m
不能用作标识符
[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
_原型soapstub。java:41:警告:从第5版开始,“enum”是一个关键字,而m 不能用作标识符
[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
_原型soapstub。java:42:警告:从第5版开始,“enum”是一个关键字,并且 m
不能用作标识符
[javac] oper.setUse(org.apache.axis.enum.Use.ENCODED);
你能建议如何解决这个问题吗
# 1 楼答案
Java5添加了一个语言特性,称为枚举
来自Java 5的枚举不能用作标识符(方法名、变量名、包的一部分),因为它是关键字强>
您必须使用较新版本的库强>
# 2 楼答案
查看Javadocs for apache axis 1.4,您将看到
org.apache.axis.enum.Use
已被弃用。您应该将所有引用更改为使用org.apache.axis.constants.Scope
。这将使您能够使用enum
关键字作为标识符,正如您所发现的,您不能再这样做了顺便说一句,Axis1.4已经有近十年没有更新了。现在可能是时候开始研究在一些仍然保留的标准中重写它了。JavaEE有一个integrated web service framework,通常比Axis更易于使用,并且仍然可以积极维护。但是,这将代表一次重大的重写,因此这可能不是您的立即选择