使用 ProducerTemplate 通过 Camel 进行代理身份验证

2024-03-14

我有一个使用 Camel 并在 ServiceMix 服务器上运行的项目,但我似乎无法让它访问外部 Web 服务,我怀疑这是因为我无法正确设置代理身份验证。

Exchange exchange = producerTemplate.request(url, new Processor() {
    public void process(Exchange exchange) throws Exception {
        exchange.getIn().setHeader(Exchange.HTTP_METHOD, "POST");
        exchange.getIn().setHeader(Exchange.CONTENT_TYPE, "application/json");
    }
});
response = exchange.getOut().getBody(String.class);

如果我在最后一行放置断点,我会在交换对象中看到 ConnectionTimeOutException,并且响应为 null。

我尝试以多种方式设置代理。

1)我尝试在实现的类中设置代理设置骆驼上下文感知:

camelContext.getProperties().put("http.proxyHost", "...");
camelContext.getProperties().put("http.proxyPort", "8080");
camelContext.getProperties().put("http.proxyUser", "...");
camelContext.getProperties().put("http.proxyPassword", "...");
camelContext.getProperties().put("http.proxySet", "true");

这在独立模式下有效,但是当我在 ServiceMix 中部署代码时,camelContext 对象为 null。

2)我尝试在中设置代理设置等/系统.属性ServiceMix.xml 文件

3)我尝试在中使用 http-conf:conduit骆驼上下文.xml像这样:

<http-conf:conduit name="*.http-conduit">
    <http-conf:client ProxyServer="..." ProxyServerPort="8080" />
    <http-conf:proxyAuthorization>
        <conf-sec:UserName>...</conf-sec:UserName>
        <conf-sec:Password>...</conf-sec:Password>
    </http-conf:proxyAuthorization>
</http-conf:conduit>

然而,我认为只有当我使用 cxf 客户端时这才有效。

什么都不起作用,我需要它在部署到 ServiceMix 上时能够工作。 任何帮助将不胜感激。

Thanks.


如果我是对的,问题更像是您无法访问 SMX 中的属性。 ServiceMix 支持 SpringDM,我建议使用它来从配置管理请求属性。

0) 假设您使用 Spring,您的 main-appContext xml 必须放置在资源/META-INF/spring/,SMX 将在那里查找它以初始化您的应用程序。

1) 将不同的属性文件添加到ServiceMix/etc(不要使用system.properties)。它必须命名为 *.cfg,即:我的属性.cfg

1.5) 确保配置已加载。在 SMX 中,输入:

config:update
config:list | grep my.prop.name

2) 您需要 Spring DM 解析此文件。添加如下所示的 appcontext xml 内容(确保您拥有命名空间)。

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:osgix="http://www.springframework.org/schema/osgi-compendium"
    xsi:schemaLocation="
       http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd
       http://www.springframework.org/schema/context
       http://www.springframework.org/schema/context/spring-context.xsd
       http://www.springframework.org/schema/osgi-compendium 
       http://www.springframework.org/schema/osgi-compendium/spring-osgi-compendium.xsd">

    <osgix:cm-properties id="myProperties" persistent-id="my.properties" /> <!--without the extension-->
    <context:property-placeholder ignore-unresolvable="true" properties-ref="myProperties" />
</beans>

3.) 也导入此 appcontext 并通过 ${my.prop} 占位符使用属性。

希望这可以帮助!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 ProducerTemplate 通过 Camel 进行代理身份验证 的相关文章

随机推荐

  • Symfony2 中模型辅助函数的放置位置

    我有以下功能 function array duplicates array duplicates array unique array unique array for i 0 i lt count array i if array ke
  • dplyr 组 - 我需要取消分组吗

    下面是一些利用 dplyr 对 mtcars 数据集中的数据进行分组和传播的简单代码 library dplyr mtcars df lt mtcars gt group by disp cyl gt summarise Qty n mtc
  • 从 Xamarin Forms PCL 中删除 ios、windows8 和 wp8 - nuget 3.0 选择加入错误?

    我正在开发 Xamarin Forms 项目 我想定位 Android 和 Windows 10 UWP 当我尝试通过从 PCL 目标中删除 Windows 8 Windows Phone Silverlight 8 Windows Pho
  • 如何在 Python 上使用 PMML 文件和 Augustus 对线性模型进行评分

    我是 python PMML 和 augustus 的新手 所以这个问题有点新手 我有一个 PMML 文件 我想在每次新的数据迭代后从中评分 我必须使用 Python 和 Augustus 来完成这个练习 我读过各种文章 其中一些值得一提
  • 如何使用 jQuery 只获取 HTML 表格中的可见元素?

    我有以下问题 我有一个表 其中每行都有一些可见的单元格 有些不可见 像这样的东西 table thead thead tbody tr td A td td style display none B td tr tr td C td td
  • Angular 4在子组件中调用父方法

    我想在 Angular 4 的子组件中调用父方法 deletePhone 我怎样才能正确地做到这一点 我的父组件如下所示 export class ContactInfo implements OnInit phoneForm FormGr
  • 使用 Android TV 应用程序的遥控器

    我正在开发 Android 电视应用程序 当我尝试在真正的 Android TV 中测试它时 我无法使用遥控器按钮导航到任何按钮或任何内容 上下左右 我搜索过它 发现我必须使用 启用方向键导航 但我不知道如何使用它 我没有找到任何代码或教程
  • 检查 PyTorch 张量在 epsilon 内是否相等

    如何检查两个 PyTorch 张量在语义上是否相等 考虑到浮点错误 我想知道元素是否仅相差一个小的 epsilon 值 在撰写本文时 这是最新稳定版本 0 4 1 中的一个未记录的函数 但文档位于master unstable branch
  • ant 未被识别为内部或外部命令

    我运行的是带有 Service Pack 3 的 Windows XP Professional 版本 5 1 我已经下载了 JDK 1 6 0 24 b07 并测试了它是否有效 我下载了 apache ant zip 并将其安装到 C a
  • 通过 EWS 和 C# 访问没有邮箱的资源日历

    我们的 Exchange 管理员 Exchange 2010 SP1 设置了共享资源日历 没有分配给该资源日历的邮箱 我希望能够使用 EWS 和 C 阅读会议 Snippet ExchangeService esvc new Exchang
  • 在 Lithium 中调用 MySQL 函数

    如何调用 MySQL 函数 例如GeomFromText or 选择为 在里面锂框架 http www lithify me 增删改查 使用数据库 gt 读取 很不方便 我经常更改数据库列 并且将函数包含在变量的值中只会最终被转义 您是否尝
  • 如何在weblogic.xml中设置X-POWERED-BY?

    这里声明可以设置 X POWERED BY 标头外观 但我看不出有什么方法可以通过weblogic xml 有人知道怎么做吗 一般来说 这些属性可以在集群级别被覆盖 在 ClusterMBean 中 如果那里存在相同的属性 服务器 leve
  • 错误:跳转到标签“foo”与“bar”的初始化交叉

    以下 C 示例无法使用 gcc 或 clang 进行编译 但仅会使用 ICC 生成警告 而使用 MSVC 则不会生成任何警告 int main int argc char argv if argc lt 2 goto clean up if
  • 无法通过 ssms 连接到 azure sql

    我正在尝试通过 SQL Server 2008 R2 SP2 连接 Azure 的 SQL 数据库 我正在使用 Azure 并免费试用订阅 我已经到处搜索并尝试过这些事情 在 Windows 防火墙中允许端口 1433 的入站和出站规则 检
  • Python 3 没有 IDLE 吗?

    我昨天在我的 Windows Vista PC 上安装了 Python 3 1 并惊讶地发现 IDLE 的版本是 2 6 4 即 Python 2 6 4 r264 75708 Oct 26 2009 08 23 19 MSC v 1500
  • 使用 UnboundId api 查看 LDAP 中修改的条目

    这是我想要查看 LDAP 中已在 LDAP 服务器端修改的修改条目的要求 Unboundid API 中是否有任何 API 或代码 以便我可以查看 LDAP 中修改的条目 尽管您的问题不太清楚 但我认为您是在问是否有一种方法可以检测目录服务
  • Tkinter 使用鼠标在 Canvas 上调整矩形大小

    我想在 Tkinter 中为我的研究项目创建一个简单的 GUI 图像标签工具 目前 我有可以从目录加载图像并允许我绘制多个边界框的工作代码 我想修改代码 以便在单击矩形 BB 时可以使用鼠标调整它的大小 我在网上搜索过 但找不到任何资源可以
  • 通过将变量名称“缝合”在一起来访问 C++ 中的变量

    假设我有一个变量 int fish5 7 我可以通过连接术语 fish 和 5 来访问fish5吗 理想的解决方案如下所示 printf I am displaying the number seven i fish 5 不 不完全是你想要
  • 将 CSV 文件导入 Django 模型的最简单方法是什么?

    我正在 DJANGO 中制作一个应用程序来处理很多 问题 模型中指定了一个问题表 或多或少会有数千个问题 现在 我手头有一个 Excel 文件 其中包含所有问题 我可以从那里创建一个 CSV 文件 我只需要获取问题表中的 CSV 数据 最简
  • 使用 ProducerTemplate 通过 Camel 进行代理身份验证

    我有一个使用 Camel 并在 ServiceMix 服务器上运行的项目 但我似乎无法让它访问外部 Web 服务 我怀疑这是因为我无法正确设置代理身份验证 Exchange exchange producerTemplate request