我们正在使用Axis2和Rampart进行SOAP Web服务。普通客户端调用存根时,会正确创建SOAP消息(使用WS-Security标头)并在服务器上进行服务。当我们将客户端(连同WS Stub和依赖关系)包装在一个包中并在OSGi(Felix Karaf)下执行时,不会生成标头,这会导致服务器返回SoapFault。
我尝试过的事情是
我使用了一个复合OSGI包,其中包含一个包中所有依赖的非OSGI jar文件。
我在OSGI中直接调试代码并直接在JVM上调试代码,并注意到分歧点是轴引擎在加载“安全”处理程序时调用rampart,而rampart则使用默认策略文件而不是mar文件在“axis.repo.path”中指定。然后我看着由rampart加载策略 - 注意到它没有加载配置的策略但是无法识别问题。
任何见解都将不胜感激。
此致 哈
答案 0 :(得分:0)
我想ws-security是在Axis中使用某种插件机制实现的。可能这种机制在OSGi中不起作用。
我建议尝试使用CXF。它在OSGi中运行良好。