我最近发现了Confluence的servlet-filter模块。然而,在试图让它发挥作用后,我陷入了死胡同。我在这里得到我的信息:
这是我尝试过的。我注释了我的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>
然后,我在名为HelloWorldFilter.java的com / test / filters中创建了一个标准的Java servlet(扩展了HttpServlet等)。在&#34; doGet()&#34;方法,我只需要一个System.out.println()行来读取&#34;在过滤器中#34;。但是,当我转到以下网址时,我总是得到&#34; Page Not Found&#34;错误页面:
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:
像我刚才所说的那样,我在这里陷入了死胡同,无法弄清楚如何让它发挥作用。任何人都可以提供任何建议或示例代码如何使其工作?答案 0 :(得分:1)
经过几天的讨论,我终于想出了什么是错的。我正在扩展javax.servlet.http.HttpServlet
而不是实施javax.servlet.Filter
。在我改为实现Filter并实现了所有正确的方法后,我的servlet过滤器开始在127.0.0.1:8090/helloworld
工作。有许多例子使用标准的Java Servlet(即扩展HttpServlet),但[显然]不能与Confluence一起使用。我希望这有助于其他人在Confluence的困惑中挣扎。感谢所有花时间阅读的人。
答案 1 :(得分:0)
您的调度程序代码缺少结束&#34;&gt;&#34;:
<dispatcher>REQUEST</dispatcher
此致 戈尔卡