1

Metro 2.2.1 を使用して単純な Web サービス インターフェイスを設計しました。Java SE (ビルド 1.6.0_24-b07-334) に付属の wsimport ユーティリティを実行して WSDL URL の場所を指定すると、クライアント スタブ コードが生成されますが、コードにメソッドがありません。なぜこれが当てはまるのか、私は困惑しており、ポインタをいただければ幸いです。

メインの Web サービス クラス AutoUpdateAPI には次のメソッドがあります。

public UpdateActionWS getLatestUpdate(@WebParam(name = "application") String application,     @WebParam(name = "version")  String version,@WebParam(name = "entries") UpdateItemWS[] entries, @WebParam(name = "license") String license);

次の定義を持つ UpdateActionWS クラスを返します。

public class UpdateActionWS {

protected String url;
protected String version;
protected boolean forcedInstall = false;

protected UpdateItemWS[] additions;
protected UpdateItemWS[] subtractions;
protected UpdateItemWS[] changes;

public UpdateActionWS() {

}

protected UpdateActionWS(String url, String version, boolean forcedInstall, UpdateItemWS[] additions, UpdateItemWS[] subtractions, UpdateItemWS[] changes) {
    this.additions = additions;
    this.subtractions = subtractions;
    this.changes = changes;
    this.url = url;
    this.version = version;
    this.forcedInstall = forcedInstall;
}

@WebMethod
public UpdateItemWS[] getAdditions() { return additions; }
@WebMethod
public UpdateItemWS[] getSubtractions() { return subtractions; }
@WebMethod
public UpdateItemWS[] getChanges() { return changes; }


@WebMethod
public String getUpdateURL() { return url; }

@WebMethod
public String getVersion() {
    return version;
}

@WebMethod
public boolean getForcedInstall() {
    return forcedInstall;
}
@WebMethod
public void setForcedInstall(boolean forcedInstall) {
    this.forcedInstall = forcedInstall;
}
}

ここで、クライアント スタブが生成されると、このクラスの出力は次のようになります。

/**
* <p>Java class for updateActionWS complex type.
* 
* <p>The following schema fragment specifies the expected content contained within this class.
* 
* <pre>
* &lt;complexType name="updateActionWS">
*   &lt;complexContent>
*     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
*       &lt;sequence>
*         &lt;element name="forcedInstall" type="{http://www.w3.org/2001/XMLSchema}boolean"/>
*       &lt;/sequence>
*     &lt;/restriction>
*   &lt;/complexContent>
* &lt;/complexType>
* </pre>
* 
* 
*/
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "updateActionWS", propOrder = {
"forcedInstall" 
})
public class UpdateActionWS {

protected boolean forcedInstall;

/**
 * Gets the value of the forcedInstall property.
 * 
 */
public boolean isForcedInstall() {
    return forcedInstall;
}

/**
 * Sets the value of the forcedInstall property.
 * 
 */
public void setForcedInstall(boolean value) {
    this.forcedInstall = value;
}

}

私の質問は、なぜ他の方法を無視するのですか? Apache-CXF-2.3.3 に付属の wsimport ユーティリティを使用してみました。最新の JAX-WS ライブラリを Java の承認済みライブラリに追加しようとしましたが、うまくいきませんでした。任意のポインタをいただければ幸いです。

4

0 に答える 0