質問

Axis Frameworkによって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 ...)
}

コンパイラがパッケージと変数を区別できないため、methodパラメーターの変数名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
役に立ちましたか?

解決

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

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

import org.apache.axis.client.Call;

ファイルへの場合、メソッド呼び出しは次のようになります。

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

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top