3

Axis フレームワークによって WSDL ファイルから生成されたいくつかのクラスがあります。これらのクラスの 1 つに、生成されたメソッドがあります。


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
4

1 に答える 1

2

生成されたコードに import ステートメントを持たせる方法はありますか? これにより、クラスの完全修飾名を取得する必要がなくなります。

したがって、追加できる場合:

import org.apache.axis.client.Call;

ファイルに追加すると、メソッド呼び出しは次のようになります。

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

ただし、Axis にそのオプションがあるかどうかはわかりません。そうでない場合は、変数の名前を(おそらく「組織」に)変更するのが最善だと思います。自動生成されたファイルの手動編集は避けることをお勧めします。再生成が難しくなります。

于 2009-03-17T14:12:15.490 に答える