Frage

Ich habe einige Klassen generiert aus WSDL-Dateien von der Axis-Framework. In einer dieser Klassen gibt es eine generierte Methode


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

Der Variablenname org in dem Methodenparameter erstellt mit Paket org.apache.axis.client einen Namen Zusammenstoß, als der Compiler zwischen dem Paket und Variable nicht unterscheiden kann. Ich weiß, ich kann dieses Problem beheben leicht durch den Variablennamen org in dem Verfahren zu ändern, aber ich möchte dies vermeiden, weil es den Workflow verlangsamt. Gibt es eine Möglichkeit, um diese andere als entweder Modifizieren die WSDL-Datei oder die generierten Klassen?

Compiler-Fehler:


 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
War es hilfreich?

Lösung

Gibt es eine Möglichkeit, um zu bewirken, dass Code generiert Import-Anweisungen zu haben? Das würde verhindern, dass Sie mit den vollständig qualifizierten Namen der Klasse haben.

Also, wenn Sie könnte hinzufügen:

import org.apache.axis.client.Call;

in die Datei dann Methodenaufruf wäre nur:

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

Ich bin mir nicht sicher, ob Achse eine Option für diese allerdings hat. Wenn nicht, würde ich sagen die Variable umbenennen (vielleicht zu „Organisation“) wäre die beste Sache sein. Ich würde empfehlen, manuelle Änderungen von automatisch generierten Dateien zu vermeiden, wie das macht sie härter zu regenerieren.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top