您当前的位置: 首页 >  宝哥大数据

webservice24--基于契约优先开发用户管理小功能--实现wsdl

宝哥大数据 发布时间:2017-10-16 02:15:47 ,浏览量:4

基于契约优先开发用户管理小功能–实现wsdl

1、编写schema




    
    

    
    
    
    
    
    
    
    
    


    
        
            
        
    
    
        
            
        
    


    
        
            
        
    
    
        
            
        
    

    
        
            
            
        
    
    
        
            
        
    

    
        
        
    
    
        
            
            
        
    


    
    
        
            
            
            
        
    
    
        
            
        
    

    
    
        
            
            
        
    

2、编写wsdl

2.1、schema的引用

2.1.1、使用include 的引用

  
    
      
    
  

2.1.1、使用import的引用,可以在import中设置命名空间。

  
    
        
    
  

2.2、设置message

  
    
  
  
    
  

  
    
  
  
    
  

  
    
  
  
    
  

  
    
  
  
    
  

2.3、设置port’Type, 也就是方法

2.3.1、修改service的名称

name="user"

改为

name="UserService" 

2.3.2、设置portType


  
  
    
    
      
      
    
    
      
      
     
    
      
      
    
    
      
      
      
  

2.4、binding

2.5 service

  
  
    
      
    
  

至此, wsdl已经完成,

契约已经定好, 通过定制好的wsdl生成, java文件

G:\JavaWeb\qyyx_01\WebContent\WEB-INF\wsdl>wsimport -d  G:\JavaWeb\qyyx_01\src -keep -verbose user.wsdl

服务端

客户端,使用http://localhost:9999/us?wsdl导文件(注意: 使用的是wsdlurl, 而不是wsdl文件。

G:\JavaWeb\qyyx_01\WebContent\WEB-INF\wsdl>wsimport -d  G:\JavaWeb\qyyx_01_client\src -verbose -keep http://localhost:9999/us?wsdl

2.6、问题, 测试客户端时候发现, list方法报错, 无法将User 对象转化为List的错误,

查看IUserService中的list方法返回值,是User, 而不是List
这是wsdl文件的listResponse类型有问题。

 public User list();

listResponse类型有问题。

    
        
            
            
        
    

解决:minOccurs=”0” maxOccurs=”unbounded”限定。

    
        
        
            
        
    

客户端测试

package com.chb.service.client;

import java.net.MalformedURLException;
import java.net.URL;

import javax.xml.namespace.QName;

import com.chb.service.IUserService;
import com.chb.service.User;
import com.chb.service.UserService;

/**
 * wsimport -d  G:\JavaWeb\qyyx_01_client\src -verbose -keep http://localhost:9999/us?wsdl
 */
public class MyClient {
    public static void main(String[] args) throws MalformedURLException {
        //创建访问的URL 
        URL url = new URL("http://localhost:9999/us?wsdl");

        QName qName = new QName("http://service.chb.com/", "UserService");

        UserService msis = new UserService(url, qName);
        //获取IMyService, 简单多了
        IUserService iMyService = msis.getUserservicePort();
        User user = new User();
        user.setUsername("wx");
        user.setNickname("wuxin");
        user.setPassword("111");
        iMyService.add(user);

        for (User u : iMyService.list()) {
            System.out.println(u);
        }
        System.out.println(iMyService.login("chb", "123456"));

    }
}
关注
打赏
查看更多评论

宝哥大数据

暂无认证

  • 4浏览

    0关注

    985博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文
立即登录/注册

微信扫码登录