xfire1.2X 配置使用SOAP1.2报文

3 篇文章 0 订阅

 大家都说xfire简单好用,不过我更觉得这个是相对而言的,如果你需要一些非默认的特性,那么就比较麻烦了,至少这样的文档太少了,指使不知该如何下手。下面是关于让xfire生成的服务使用SOAP1.2报文的设置内容,大家看看吧,我倒觉得不如Axis2来得简单。

 

<? xml version="1.0" encoding="UTF-8" ?>
<! DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd" >
< beans >
    
<!--  SOAP12 binding  -->
    
< bean  id ="xxxxPwdSoap12BindingBean"
        class
="org.codehaus.xfire.spring.config.Soap12BindingBean" >
        
< property  name ="endpoints" >
            
< list >
                
< ref  bean ="xxxxPwdEndPoint"   />
            
</ list >
        
</ property >
        
< property  name ="allowUndefinedEndpoints"  value ="true"   />
        
< property  name ="transport"
            value
="http://www.w3.org/2003/05/soap/bindings/HTTP/"   /> <!--WSDL1.1 http://schemas.xmlsoap.org/soap/http -->
    
</ bean >
    
< bean  id ="xxxxPwdEndPoint"
        class
="org.codehaus.xfire.spring.config.EndpointBean" >
        
< property  name ="name"  ref ="xxxxPwdQName"   />
        
< property  name ="url"
            value
="http://localhost:7001/ReadyESB/XxxxPwdService"   />
    
</ bean >
    
< bean  id ="xxxxPwdQName"  class ="javax.xml.namespace.QName" >
        
< constructor-arg >
            
< value > http://interfaces.service.web.readyesb </ value >
        
</ constructor-arg >
    
</ bean >

    
<!--  SOAP12 binding for WSS -->
    
< bean  id ="xxxxPwdWSSSoap12BindingBean"
        class
="org.codehaus.xfire.spring.config.Soap12BindingBean" >
        
< property  name ="endpoints" >
            
< list >
                
< ref  bean ="xxxxPwdWSSEndPoint"   />
            
</ list >
        
</ property >
        
< property  name ="allowUndefinedEndpoints"  value ="true"   />
        
< property  name ="transport"
            value
="http://www.w3.org/2003/05/soap/bindings/HTTP/"   />
    
</ bean >
    
< bean  id ="xxxxPwdWSSEndPoint"
        class
="org.codehaus.xfire.spring.config.EndpointBean" >
        
< property  name ="name"  ref ="xxxxPwdWSSQName"   />
        
< property  name ="url"
            value
="http://localhost:7001/ReadyESB/XxxxPwdServiceWSS"   />
    
</ bean >
    
< bean  id ="xxxxPwdWSSQName"  class ="javax.xml.namespace.QName" >
        
< constructor-arg >
            
< value > http://interfaces.service.web.readyesb </ value >
        
</ constructor-arg >
    
</ bean >

    
<!--  XMLBeans Service Template  -->
    
< bean  id ="xxxxPwdXMLBeansServiceTemplate"
        class
="org.codehaus.xfire.spring.remoting.XFireExporter"
        abstract
="true" >
        
< property  name ="serviceFactory"
            ref
="xfire.xmlbeansServiceFactory"   />
        
< property  name ="xfire"  ref ="xfire"   />
        
< property  name ="style"  value ="document"   />  <!--  为了兼容性考虑请使用 wrapped Mod 2008-01-29 -->
        
< property  name ="use"  value ="literal"   />
        
< property  name ="bindings"  ref ="xxxxPwdSoap12BindingBean"   />
        
< property  name ="createDefaultBindings"  value ="false"   />
    
</ bean >

    
<!--  XMLBeans Service Template for WSS -->
    
< bean  id ="xxxxPwdWSSXMLBeansServiceTemplate"
        class
="org.codehaus.xfire.spring.remoting.XFireExporter"
        abstract
="true" >
        
< property  name ="serviceFactory"
            ref
="xfire.xmlbeansServiceFactory"   />
        
< property  name ="xfire"  ref ="xfire"   />
        
< property  name ="style"  value ="document"   />  <!--  为了兼容性考虑请使用 wrapped Mod 2008-01-29 -->
        
< property  name ="use"  value ="literal"   />
        
< property  name ="bindings"  ref ="xxxxPwdWSSSoap12BindingBean"   />
        
< property  name ="createDefaultBindings"  value ="false"   />
    
</ bean >

    
<!--  XxxxPwd Interface  -->
    
< bean  id ="XxxxPwdBean"  class ="readyesb.web.service.impl.XxxxPwdImpl"   />

    
<!--  XxxxPwd标准配置  -->
    
< bean  id ="XxxxPwdService"  parent ="xxxxPwdXMLBeansServiceTemplate" >
        
< property  name ="serviceBean"  ref ="XxxxPwdBean"   />
        
< property  name ="serviceClass"
            value
="readyesb.web.service.interfaces.XxxxPwd"   />
        
< property  name ="name"  value ="XxxxPwdService"   />
    
</ bean >

    
<!--  XxxxPwdWSS认证配置  -->
    
< bean  id ="XxxxPwdServiceWSS"
        parent
="xxxxPwdWSSXMLBeansServiceTemplate" >
        
< property  name ="serviceBean"  ref ="XxxxPwdBean"   />
        
< property  name ="serviceClass"
            value
="readyesb.web.service.interfaces.XxxxPwdWSS"   />
        
< property  name ="inHandlers" >
            
< list >
                
< ref  bean ="domInHandler"   />
                
< ref  bean ="wss4jInHandler"   />
                
< ref  bean ="ValidateUserTokenHandler"   />
            
</ list >
        
</ property >
        
< property  name ="name"  value ="XxxxPwdServiceWSS"   />
    
</ bean >
</ beans >

另外一部分
     <!--  ===============XMLBeans Data Binding===========  -->
    
< bean  id ="xmlbeansTypeRegistry"
        class
="org.codehaus.xfire.xmlbeans.XmlBeansTypeRegistry"   />
    
< bean  id ="xfire.xmlbeansServiceFactory"
        class
="org.codehaus.xfire.xmlbeans.XmlBeansServiceFactory"
        singleton
="true" >
        
< constructor-arg  index ="0"  ref ="xfire.transportManager"   />
    
</ bean >
    
<!--  ===============End=============================  -->

其中有一项,需要注意的 < property  name ="allowUndefinedEndpoints"  value ="true"   />,有人说是方便设置服务器端不用进行EndPoints设置的,其实是限制客户端在访问的时候,是否使用服务器端指定的EndPoints的。
用这个能不能防止代理访问呢,我试了试通过TcpTrace,总之value=“false”的话,服务端就会报错。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值