0

それで、私はしばらくそれを理解しようとしていました。JAXB アノテーションを含む Java クラスがあります。

import javax.xml.bind.annotation.XmlRootElement;

@XmlRootElement
public class Book {

private String title;

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }
}

schemagenその後、次のように実行できます。

schemagen -d d:\Temp Book.java

XML スキーマが生成されます: schema1.xsd. 戻りコードは 0 です (windows ( echo %ERRORLEVEL%) と linux ( ) の両方を試しましecho $?た)。

ここで、Jackson アノテーションをこのクラスに追加する必要があるため、単一の JSON 属性を追加します。

import javax.xml.bind.annotation.XmlRootElement;
import com.fasterxml.jackson.annotation.JsonProperty;

@XmlRootElement
public class Book {

    @JsonProperty("title")
    private String title;

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }
}

残念ながら、schemagen を実行すると成功したように見えます (スキーマ ファイルが生成されます) が、リターン コードは 1 (Linux と Windows の両方で) であり、gmake が失敗する原因となるので問題があります。

悲しいことschemagenに、エラー メッセージは出力されません。しかし、jackson jar が見つからないのではないかと疑っているので、jackson-annotation jar (jackson-core と jackson-databind の依存関係を含む) を共通の D:\Temp の場所にコピーし、次のように実行schemagenします。

schemagen -cp d:\Temp -d d:\Temp Book.java

残念ながら、次のように実行すると同じ結果になります。

schemagen -cp d:\Temp\* -d d:\Temp Book.java

また、コンソールに単一の出力を取得nullし (JAXB 担当者はここで冗長性を強調しました)、リターン コードは -1 です。

Jackson アノテーションを使用して schemagen を正常に実行する方法 (戻りコード 0) は? 助言がありますか?

4

1 に答える 1