0

RESTlet を介して REST を実装しています。これは、このような安らかな Web サービスを構築するための素晴らしいフレームワークです。習得が容易で、構文がコンパクトです。ただし、通常、誰か/プログラムが何らかのリソースにアクセスしたい場合、XMLを印刷/出力するのに時間がかかることがわかったので、JaxbRepresentationを使用します。私のコードを見てみましょう:

@Override
@Get
public Representation toXml() throws IOException {
    if (this.requireAuthentication) {
        if (!this.app.authenticate(getRequest(), getResponse())) 
        { 
            return new EmptyRepresentation(); 
        }
    }

    //check if the representation already tried to be requested before
    //and therefore the data has been in cache
    Object dataInCache = this.app.getCachedData().get(getURI);
    if (dataInCache != null) {
        System.out.println("Representing from Cache");
        //this is warning. unless we can check that dataInCache is of type T, we can
        //get rid of this warning
        this.dataToBeRepresented = (T)dataInCache;
    } else {
        System.out.println("NOT IN CACHE");
        this.dataToBeRepresented = whenDataIsNotInCache();
        //automatically add data to cache
        this.app.getCachedData().put(getURI, this.dataToBeRepresented, cached_duration);
    }

    //now represent it (if not previously execute the EmptyRepresentation)
    JaxbRepresentation<T> jaxb = new JaxbRepresentation<T>(dataToBeRepresented);
    jaxb.setFormattedOutput(true);
    return jaxb;
}

ご覧のとおり、あなたは私に尋ねたかもしれません。はい、Kitty-Cache を使用してキャッシュを実装しています。したがって、作成に費用がかかり、実際には 70 年間変更されないように見える XML がある場合は、キャッシュを使用します...また、おそらく静的データにも使用します。キャッシュの最大制限時間は、メモリに保持される 1 時間です。

出力をキャッシュしても、ハングしたり、部分的に印刷されたり、残りのドキュメントを印刷するまでに時間がかかったりするなど、出力が応答しないことがあります。XML ドキュメントは、ブラウザとプログラムからアクセスでき、GET を使用しました。

実際には何が問題なのですか?できればRESTletの開発者からの回答も教えていただきたいです。ありがとう

4

0 に答える 0