java - 如何使用 Apache Camel 3.x 重写 Urls?
问题描述
我正在将我的 Maven 构建的 Spring Boot 应用程序从 Apache Camel 2.24.3 升级到 3.8.0。此版本中已弃用的所有内容都已删除,包括 url 重写解决方案。我正在使用 camel-urlrewrite jar 来重写 url,这样我就可以独立于我正在调用的 3rd 方应用程序维护自己的 API。这个 jar 使用了另一个 jar:
<dependency>
<groupId>org.tuckey</groupId>
<artifactId>urlrewritefilter</artifactId>
<version>4.0.3</version>
</dependency>
该解决方案将自身添加到 servlet 过滤器链中,并且在调用时将使用外部配置的 xml 文件来告诉它要重写哪些 url。
然后,此解决方案将在码头路线中使用#dslParm。
我尝试过自己配置 org.tukey 解决方案,但它从未由 Camel 触发。
@Configuration 公共类 UrlRewriteFilterConfig {
@Bean
public UrlRewriteFilter urlRewriteFilter(final ServletContext servletContext) throws ServletException {
UrlRewriteFilter urlRewriteFilter = new UrlRewriteFilter();
urlRewriteFilter.init(new FilterConfig() {
private final Map<String, String> params = new HashMap<String, String>();
{
URL resource = ResourceHelper.class.getResource("/urlrewrite.xml");
params.put("confPath", resource.getPath());
}
@Override
public String getFilterName() {
return "UrlRewriteFilter";
}
@Override
public ServletContext getServletContext() {
return servletContext;
}
@Override
public String getInitParameter(String name) {
return params.get(name);
}
@Override
public Enumeration<String> getInitParameterNames() {
return Collections.enumeration(params.keySet());
}
});
return urlRewriteFilter;
}
@Bean
FilterRegistrationBean<UrlRewriteFilter> urlRewriteFilterFilterRegistrationBean(final UrlRewriteFilter filter) {
final FilterRegistrationBean<UrlRewriteFilter> filterRegistrationBean = new FilterRegistrationBean<>();
filterRegistrationBean.setFilter(filter);
filterRegistrationBean.setEnabled(true);
return filterRegistrationBean;
}
}
我在这里走错路了吗?在 Apache Camel 3.x 中是否有更简单/其他的方法来做到这一点?
解决方案
推荐阅读
- ios - Cocoapods 未安装最新版本的 FBSDK
- java - 如何使用增强的for循环更改字符串数组中的字符串内容?
- python - 绘制二维高斯的椭圆轮廓
- stm32 - STM32CubeMx 中的问题
- c# - 为什么 Math.Round 在十进制和双精度之间的行为不同
- flutter - Flutter TextFormField Validador 始终为真
- python - 我无法在我的 jupyter 笔记本中运行 ![alt text](img.png) 降价代码
- python - 从 pptx 中提取文本并在 excel 中导出
- architecture - 指令在内存中是如何排列的?
- mongodb - 如何加密/解密 MongoDB