如何设置AxisProperty,使其仅影响一个服务,而不影响其他服务(轴1.4)

时间:2014-01-23 15:46:14

标签: soap classloader axis

我有3个使用Axis 1.4生成的自动生成的soap服务

我想为其中一个设置代理属性 :  AxisProperties.setProperty("https.proxyHost",<some_host>)

然而,看起来这些属性在同一个类加载器

下的所有服务中共享

我不能使用“https.nonProxyHost”,因为主机是动态的

提前致谢...

1 个答案:

答案 0 :(得分:2)

经过调查后,我得出结论,无法在AXIS 1.4上完成

  1. Axis 1.4有一个错误: problem with http proxy parameters caching mechanism

    基本上,Axis 1.4转向一个名为“DefaultHTTPSTransportClientProperties”的类,它充当缓存:如果代理主机为空,它将把主机(在缓存中)填充为空字符串。 该错误是在缓存设置一次后,它无法更改。

  2. 在AXIS的更高版本中,可以设置不同的代理:

    • AxisProperty使用线程类加载器层次结构来确定要使用的属性
    • 如果您想要一个特定的属性,您应该创建自己的类加载器
    • 然后在该类加载器上生成一个线程,并使用特定的代理设置实例化AxisProperties
    • 现在从该线程运行服务,您将拥有该类加载器的特定属性