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。我可以看到 Pax Web 正在日志中访问我的映射。这是可能的还是我需要编写一个servlet?

4

1 回答 1

2

最简洁的答案是不。

是相对于捆绑包解析的path,因此您的绝对路径将出现一些 url 语法错误。

为什么不将您的文件打包加载并从那里提供呢?我们动态加载包含我们需要遵循一些版本控制约定的资源的包。

于 2012-05-30T16:59:36.297 回答