matchOnUriPrefix=true 似乎不起作用



我正在使用:

  • 狂野 10.1.0 决赛
  • 骆驼 2.19.1
  • Camel Java DSL RouteBuilder

在我的RouteBuilder.config中,我有以下内容来自:

from("undertow:http://localhost:" + portNum + "/DataplatformESB/v3?matchOnUriPrefix=true&httpMethodRestrict=post,get,put,options,patch,delete")

当我测试使用GETPUTPATCH进行"localhost:8080/DataplatformESB/v3"时,它们都工作正常。但是当我测试"localhost:8080/DataplatformESB/v3/anythingelse"时,我会得到一个404 (page not found)作为回报。在野蝇日志中,它统计:"Matched prefix path /DataplatformESB for path /DataplatformESB/v3/anythingelse"。所以对我来说,"matchOnUriPrefix=true"似乎不起作用。

我已经用from("restlet:http://localhost:" + portNum + "/DataplatformESB/v3?matchOnUriPrefix=true&httpMethodRestrict=post,get,put,options,patch,delete")测试过,但这也不能用。

我也用restConfiguration.componentProperty("matchOnUriPrefix", "true")尝试过,但没有运气。

有没有人知道为什么matchOnUriPrefix=true似乎对我不起作用?

我做了一些进一步的研究,发现了以下内容:

我从https://github.com/apache/camel/tree/master/components/camel-undertow/src/test/java/org/apache/camel/component/undertow/UndertowPrefixMatchingTest.java那里获得了暗流测试项目,并在 NetBeans 中运行/测试了该项目。

代码为:from("undertow:http://localhost:{{port}}/bar?matchOnUriPrefix=true") .transform(bodyAs(String.class).append(" Matching prefix")) .to("mock:bar");

这运行良好,当 URL 以前缀开头时返回 OK:"bar"。所以"bar/foo"也返回正常。

但是当我从网站https://github.com/wildfly-extras/wildfly-camel-examples/tree/master/camel-rest-swagger将此代码粘贴到野蝇骆驼休息 Swagger 示例中(没有野蝇骆驼休息示例(时,我只有在以"bar"作为路径进行测试时才会得到 OK。 使用"bar/foo"会产生 404 返回代码。

我仍在使用野蝇 10.1 最终版和骆驼 2.19.1。

那么是什么导致了产出的差异呢?我需要在 Wildfly 中更改什么才能使其正常工作?

默认情况下matchOnUriPrefix选项是否在野蝇上被禁用/忽略?

在 Wildlfly 安装上使用 Wildfly-Camel 2.18.3 时,它似乎可以工作。 看起来 matchOnUriPrefix 的默认值已更改或此属性的处理已更改。 在这种情况下,在我看来,这引入了上述错误。

相关内容

  • 没有找到相关文章

最新更新