1

ResourceMapping以下をOSGiサービスとして登録しようとしました。

package ru.focusmedia.odp.server.poim.http;

import org.ops4j.pax.web.extender.whiteboard.ResourceMapping;

import ru.focusmedia.odp.server.poim.api.PoimConfig;

import aQute.bnd.annotation.component.Component;

@Component(immediate = true)
public class PoimResourceMapping implements ResourceMapping {
    private String httpContextId;
    private String alias = "...";
    private String someAbsolutePath = "...";

    @Override
    public String getHttpContextId() {
        return httpContextId;
    }

    @Override
    public String getAlias() {
        return "/resources";
    }

    @Override
    public String getPath() {
        return someAbsolutePath;
    }

}

ただし、ブラウザの。の下に結果が表示されませんhttp://127.0.0.1:8282/resources/aFileUnderMyPath。PaxWebがログのマッピングにアクセスしていることがわかります。これは可能ですか、それとも代わりにサーブレットを作成する必要がありますか?

4

1 に答える 1

2

短い答えはノーです。

pathバンドルに対して相対的に解決されるため、絶対パスはいくつかの URL 構文エラーになります。

ファイルをバンドルにロードして、そこから提供してみませんか? いくつかのバージョニング規則に従って、提供する必要があるリソースを含むバンドルを動的に読み込みます。

于 2012-05-30T16:59:36.297 に答える