我有一些由Axis Framework从WSDL文件生成的类。在其中一个类中,有一个生成的方法
public com.initechsystems.www.initech7.initechbo.Organization createOrganization(com.initechsystems.www.initech7.initechbo.Organization org) throws java.rmi.RemoteException {
//(... snip ...)
_call.setProperty(org.apache.axis.client.Call.SEND_TYPE_ATTR, Boolean.FALSE);
//(... snip ...)
}
方法参数中的变量名称org与包org.apache.axis.client创建命名冲突,因为编译器无法区分包和变量。我意识到我可以通过更改方法中的变量名称org来轻松解决这个问题,但我想避免这种情况,因为它会降低工作流程的速度。除了修改WSDL文件或生成的类之外,还有其他方法吗?
编译错误:
D:\projects\java\initechdir\target\generated-sources\axistools\wsdl2java\com\initechsystems\www\initech7\initechws\OrganizationManagement\OrganizationManagementSoapStub.java:[1678,29] cannot find symbol
symbol : variable apache
location: class com.initechsystems.www.initech7.initechbo.Organization
答案 0 :(得分:2)
有没有办法让生成的代码具有import语句?这将阻止您拥有该类的完全限定名称。
所以,如果你可以添加:
import org.apache.axis.client.Call;
到文件然后你的方法调用就是:
_call.setProperty(Call.SEND_TYPE_ATTR, Boolean.FALSE);
我不确定Axis是否有选择。如果不是,我会说重命名变量(可能是“组织”)将是最好的事情。我建议避免手动编辑自动生成的文件,因为这会使它们更难重新生成。