【问题标题】:How do I use Confluence's servlet-filter module?如何使用 Confluence 的 servlet-filter 模块?
【发布时间】:2015-07-31 16:30:11
【问题描述】:

我最近开始了解 Confluence 的 servlet-filter 模块。然而,在试图让它工作之后,我遇到了死胡同。我在这里获取我的信息:

https://developer.atlassian.com/confdev/confluence-plugin-guide/confluence-plugin-module-types/servlet-filter-module

这是我尝试过的。我像这样注释了我的 atlassian-plugin.xml 文件:

<servlet-filter name="My Test Filter" key="OURAPP" class="com.test.filters.HelloWorldFilter" location="after-encoding" weight="100">
    <description>Forwards you to a test "Hello, world!" page.</description>
    <url-pattern>/helloworld</url-pattern>
    <dispatcher>REQUEST</dispatcher>
</servlet-filter>

然后,我在 com/test/filters 创建了一个名为 HelloWorldFilter.java 的标准 Java servlet(扩展 HttpServlet 等)。在“doGet()”方法中,我只有一个 System.out.println() 行,上面写着“IN THE FILTER”。但是,当我转到以下 URL 时,我总是得到“找不到页面”的错误页面:

http://127.0.0.1:8090/helloworld

http://127.0.0.1:8090/OURAPP/helloworld

http://127.0.0.1:8090/plugins/OURAPP/helloworld

http://127.0.0.1:8090/rest/helloworld

http://127.0.0.1:8090/rest/OURAPP/helloworld

http://127.0.0.1:8090/OURAPP/rest/helloworld

我们有一个自定义的 Confluence 插件,我们称之为 OURAPP,它不仅通过浏览器 GUI 提供数据,还通过 Confluence 的 REST 功能提供数据。我正在尝试创建一个过滤器来管理有效和无效请求。我们可以通过以下方式访问 REST:

http://127.0.0.1:8090/rest/reststuff/v1/some_function_here

就像我一开始说的,我在这里遇到了死胡同,不知道如何让它工作。任何人都可以提供任何建议或示例代码来说明如何使其正常工作吗?

【问题讨论】:

    标签: servlet-filters confluence confluence-rest-api


    【解决方案1】:

    在搞砸了几天之后,我终于弄清楚出了什么问题。我正在扩展javax.servlet.http.HttpServlet,而不是实现javax.servlet.Filter。在我改为实现过滤器并实现了所有正确的方法后,我的 servlet 过滤器开始在127.0.0.1:8090/helloworld 工作。有许多使用标准 Java Servlet(即扩展 HttpServlet)的示例,但 [显然] 不适用于 Confluence。我希望这可以帮助其他人在 Confluence 的困惑中挣扎。感谢所有花时间阅读的人。

    【讨论】:

      【解决方案2】:

      您的调度员标签缺少结束的“>”:

          <dispatcher>REQUEST</dispatcher
      

      问候, 戈尔卡

      【讨论】:

      • 不是真的......我只是在转录代码时忘记添加它。
      • 你能添加你的日志来检查是否有错误吗?
      • 在搞砸了几天之后,我终于弄清楚出了什么问题。我正在扩展 javax.servlet.http.HttpServlet 而不是实现 javax.servlet.Filter。在我改为实现过滤器并实现了所有正确的方法后,我的 servlet 过滤器开始在 127.0.0.1:8090/helloworld 工作。感谢您帮我看一下这个问题!
      猜你喜欢
      • 2014-10-01
      • 2018-12-09
      • 2011-11-25
      • 2014-09-29
      • 2012-02-09
      • 1970-01-01
      • 2023-01-23
      • 2011-10-25
      • 1970-01-01
      相关资源
      最近更新 更多