2009-03-17 8 views
2

Certaines classes sont générées à partir de fichiers WSDL par Axis Framework. Dans l'une de ces classes, il existe une méthodeConflit de dénomination Java entre la variable de méthode et les noms de package


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 ...) 
} 

généré org Le nom de variable dans le paramètre de méthode crée un conflit d'attribution de noms avec le paquet org.apache.axis.client, le compilateur ne peut pas distinguer entre le paquet et variable . Je me rends compte que je peux facilement résoudre ce problème en changeant le nom de la variable org dans la méthode, mais je voudrais éviter cela, car cela ralentit le flux de travail. Y a-t-il un moyen de contourner cela, soit en modifiant le fichier WSDL ou les classes générées?

erreur du compilateur:


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

Veuillez poster le texte de l'erreur du compilateur. –

+0

Édité dans le message original. – simon

+0

C'est drôle (comme dans "ha ha", pas comme dans "bizarre"). Je suppose que je n'ai jamais essayé de nommer une variable java ou javax ou org avant. –

Répondre

2

est-il un moyen de faire que le code généré pour avoir des déclarations d'importation? Cela vous empêcherait d'avoir le nom complet de la classe.

Donc, si vous pouvez ajouter:

import org.apache.axis.client.Call; 

au fichier alors votre appel de méthode serait tout simplement:

_call.setProperty(Call.SEND_TYPE_ATTR, Boolean.FALSE); 

Je ne sais pas si l'axe a une option pour que si. Sinon, je dirais que renommer la variable (peut-être «organisation») serait la meilleure chose. Je recommanderais d'éviter les modifications manuelles des fichiers générés automatiquement, car cela rend leur régénération plus difficile.

+0

C'est une bonne idée, mais je pense que ce n'est pas possible - au moins, je n'ai pas trouvé un moyen de le faire .. – simon