【问题标题】:Can Pax Web Whiteboard ResourceMapping have path pointing outside the bundle?Pax Web Whiteboard ResourceMapping 的路径可以指向捆绑包之外吗?
【发布时间】:2012-05-29 13:49:42
【问题描述】:

我已尝试将以下 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?

【问题讨论】:

    标签: pax pax-web


    【解决方案1】:

    简短的回答是否定的。

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

    为什么不将您的文件打包加载并从那里提供呢?我们根据一些版本控制规则动态加载包含我们需要服务的资源的包。

    【讨论】:

    • 这是可能的,但不太方便。对于管理员来说,“将文件放入此目录”和“将文件放入此目录,然后重新构建捆绑包并部署它”之间存在很大差异。同样,每当用户上传文档时,我都需要重新启动捆绑包......
    • 是的,当然取决于您的用例。在我们的例子中,要服务的文件是由构建生成的,所以它是一个自然的集成。在您的情况下,您希望为用户提供的文件提供服务,您需要查看为此目的制作的 servlet。
    猜你喜欢
    • 1970-01-01
    • 2015-01-04
    • 1970-01-01
    • 2016-07-09
    • 1970-01-01
    • 2013-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多