Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring:配置静态字段单例实例_Java_Spring_Cxf_Wss4j - Fatal编程技术网

Java Spring:配置静态字段单例实例

Java Spring:配置静态字段单例实例,java,spring,cxf,wss4j,Java,Spring,Cxf,Wss4j,CXF的PolicyBasedWS4JinInterceptor创建了一个单例实例: public static final PolicyBasedWSS4JInInterceptor INSTANCE = new PolicyBasedWSS4JInInterceptor(); 由于没有Spring技能,我正在努力通过cxf.xml文件中Spring的bean定义设置acestor(AbstractWSS4JInterceptor)属性映射。基本上,我想在cxf.xml中配置WSS

CXF的PolicyBasedWS4JinInterceptor创建了一个单例实例:

public static final PolicyBasedWSS4JInInterceptor INSTANCE 
    = new PolicyBasedWSS4JInInterceptor();
由于没有Spring技能,我正在努力通过cxf.xml文件中Spring的bean定义设置acestor(AbstractWSS4JInterceptor)属性映射。基本上,我想在cxf.xml中配置WSS相关的属性,如“signaturePropFile”


有人可以演示如何设置PolicyBasedWS4JinInterceptor.INSTANCE的属性映射吗?谢谢

我要声明一个单例bean:

<bean id="interceptor" class="whatever.your.package.PolicyBasedWSS4JInInterceptor" scope="singleton"/>
您将得到与声明它为静态相同的结果,用Spring术语表示。这取决于您喜欢哪种方式,请记住,这样做就像Spring方式一样,您将拦截器放在IoC容器中,因此您可以在必要时插入拦截器,等等。

基于“操作”的WS-Security属性(如“signaturePropFile”)不适用于CXF中基于WS-SecurityPolicy的拦截器。CXF有单独的配置标记,您可以在使用WS-SecurityPolicy时将其作为JAX-WS属性传递,因此不需要访问实例类的任何属性。有关更多信息,请参见此处:


Colm.

bean声明将创建另一个PolicyBasedWS4JinInterceptor实例,对吗?我认为这不起作用,因为WSSecurityInterceptorProvider使用实例将其添加到CXF的拦截器链中,如下所示:
this.getOutiterCeptors().add(PolicyBasedWSS4JOutInterceptor.INSTANCE)该死的抱歉,我没有意识到你的拦截器是一个库的一部分,因此你没有维护代码,我完全不好,非常抱歉。我根本不明白你的问题。
<bean id="anotherBean" ...>
  <property name="interceptor" ref="interceptor"/>
</bean>
private PolicyBasedWSS4JInInterceptor interceptor;

public PolicyBasedWSS4JInInterceptor getInterceptor() {
  return interceptor;
}

public void setPolicyBasedWSS4JInInterceptor(PolicyBasedWSS4JInInterceptor interceptor) {
  this.interceptor = interceptor;
}