spring-xfire初学




XFire 是完全基于流数据处理进行工作的系统,这意味着XFire不是将整个SOAP文档缓存在内存中,而是以管道的方式接收SOAP流数据。这种工作方式的转变带来了可观的性能回报,同时节省了内存的占用。

  XFire从管道中接收一个SOAP请求到返回一个SOAP响应,会经历一系列的阶段。在管道调用的任何一个阶段,XFire都可以添加一些额外的Handler,在对消息进行加工处理后再传入到下一个阶段中。在SOAP请求消息对Web Service发起真正调用之前,分别会经过传输、预转发、转发、策略实施、用户信息处理、预调用、服务调用等阶段。

服务器端开发:

配置web.xml文件:


  
  

  
  
  

   
   
    
    XFireService
   
   
    
   
   
    
   
   
       
    
    
     
     contextConfigLocation
    
    
       
    
    
     
     /WEB-INF/xfire-servlet.xml
    
    
    
   
   
    
   
    
    
   
   
       
    
    
     
      org.springframework.web.context.ContextLoaderListener
       
    
    
    
   
   
    
   
    
    
   
    
       
    
    
     
     org.springframework.web.util.IntrospectorCleanupListener
    
    
    
    
   
   
    
   
   

    
   
   
    
   
     
    
   
      
       
    
    
     
     xfire
    
       
       
    
    
     
     org.springframework.web.servlet.DispatcherServlet
    
    
    
   
      
    
   
    
       
    
    
     
     xfire
    
    
       
    
    
     
     *.ws
    
    
    
   
   
    
   
   
       
    
    
       
    
    
     
     xfireServlet
    
    
       
    
    
     
     org.codehaus.xfire.spring.XFireSpringServlet
    
    
    
   
   
    
   
   
       
    
    
     
     xfireServlet
    
    
       
    
    
       
    
    
     
     /service/*
    
    
    
   
   
    
   
   

  
  
   
   
    
    
    
     
     index.jsp
    
    
  
   
   
  

  
  


xfire-servlet.xml文件:

XFire为Spring提供了方便易用的导出器XFireExporter,借助该导出器的支持,我们可以在Spring容器中将一个POJO导出为Web Service。IWeixin01.java是业务服务类,在此拥有一个getUserInfo的方法,我们希望将此方法开放为Web Service。在实际应用中,如果某个类具有众多的方法,而其中的某些方法不需要开放为Web Service的情况下,我们可以定义一个窄接口,该接口中只需定义那些开放为Web Service的业务方法。

将一个业务类所有需要开放为Web Service的方法通过一个窄接口来描述是值得推荐的作法,这让Web Service的接口显得很“干净”。其次,XFire的导出器也需要服务接口的支持,因为它采用基于接口的动态代理技术。

窄接口中的方法在真实的系统中可能需要引用其它的业务类或DAO获取数据库中的真实数据,为了简化实例,我们在此简化了实例。在该配置文件中引入了xfire.xml这个Spring配置文件。它是在XFire核心JAR包中拥有一个预定义的Spring配置文件,它定义了XFire在Spring中必须用到的一些Bean和资源,需要引入这个预定义的配置文件。从该配置文件中可以看出,我们通过XFireExporter将业务类导出为Web Service,对于任何导出器,我们都需要引入XFire环境,即serviceFactoryxfire,这是标准的配置。ServiceFactory是XFire的核心类,它可以将一个POJO生成为一个Web Service。



  
  


  
  
	
   
   
	
   
   
	
   
   
	
   
   
		
    
    
			
     
     
				
      
       
        
      
			
		
    
    
	
   
   
	
	
   
   
	
   
     
		
    
    
		
    
    
		
    
    
	
   
   	
	
	
   
   
	
   
   
		 
    
    
		
    
    
		 
    
    		
		
    
    
	
   
   
	
   
   
	
   
   

  
  

接口:

package test;

public interface IWeixin01 {
	public String getUserInfo(String accessToken,String opendId);
}

实现类:


package test;




public class Weixin01Impl implements IWeixin01{
	
	public String getUserInfo(String accessToken,String opendId){

		StringBuilder sb =new StringBuilder();
		sb.append("{");
		sb.append("'subscribe': 1,");
		sb.append("'openid': 'o7Lp5t6n59DeX3U0C7Kric9qEx-Q',");
		sb.append("'nickname': '方�?',");
		sb.append("'sex': 1,");
		sb.append("'language': 'zh_CN',");
		sb.append("'city': '深圳',");
		sb.append(" 'province': '广东',");
		sb.append(" 'country': '中国',");
		sb.append(" 'subscribe_time': 1389684286");
		sb.append("}");		
		
		return sb.toString();
	}

	

}

访问:http://localhost:8888/ECPIC/service/YangService01.ws?wsdl

可以看到wsdl内容










评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值