xfire传入传出自定义类型和集合类型-webservice分析

 

1.xfire eclipse插件安装步骤,详细内容见:http://xfire.codehaus.org/Eclipse+Plugin
Overview
The XFire Eclipse plugin provides Eclipse support for XFire's WSDL->Code generator. It requires Eclipse 3.2 and Java 5.
Installing the Plugin

To install the Eclipse XFire plugin:
go to the Help menu, select "Software Updates" and then select "Find and Install."
Select "Search for new features to install" and click Next.
Select "Create New Remote Site" and enter "XFire" as the name and http://dist.codehaus.org/xfire/update/ as the eclipse update site.
Select OK.
Select Finish
Using the Plugin

The first step is to start the code generation wizard. Go to File->New->Other. Then select Code generation from WSDL document.

The plugin will then prompt you for the location of your WSDL, where to output the code, and also what package you would like the service in.

Once you're done you'll see the generated classes in your IDE!

2.基本思路为:
 1.使用eclipse ->new project ->MyEclipse ->J2EE Projects ->Web Service Project创建一个ws服务端工程,默认在web.xml中加入:

Xml代码 复制代码  收藏代码
  1. <servlet>  
  2.   <servlet-name>XFireServlet</servlet-name>  
  3.   <servlet-class>org.codehaus.xfire.transport.http.XFireConfigurableServlet</servlet-class>  
  4.   <load-on-startup>0</load-on-startup>  
  5. </servlet>  
  6. <servlet-mapping>  
  7.   <servlet-name>XFireServlet</servlet-name>  
  8.   <url-pattern>/services/*</url-pattern>  
  9. </servlet-mapping>  

 
  同时在类路径下默认加入:XFire 1.1 Core Libraries
 2.ws服务端工程运行,请求services Url,如:
 http://127.0.0.1:8083/xfirelist5/services/HelloWorldService?wsdl,如果看到wsdl内容,表示ws服务工程成功,继续下一步.
 3.ws客户端工程根据xfire eclipse插件,Code generation from WSDL document,然后编写测试类开始测试,调用ws服务工程远程方法。

3.下面以一个具体的例子来说明:
 需求定义:
 服务端提供两个远程服务方法:
 第一个方法:考虑用户对象及该用户的friends List集合对象自定义类型传入传出情况,
 根据传入对象打印出该对象的信息:如编号id,用户名username,密码password,消息msg,friends List集合等,
 假设该用户提交的信息给服务端验证审核,审核完毕后,修改该用户的消息msg,同时新建friends List集合封装该对象返回。
 第二个方法:仅仅考虑该用户对象集合传入传出情况,不考虑该用户的friends List集合对象,
 假设有一批考生user List提交到服务器,服务器端循环输出,然后循环遍历修改该用户的消息msg,提示"考试通过"。

4.服务端主要代码:
 User.java (Model类)

Java代码 复制代码  收藏代码
  1. private int id;   
  2. private String username;   
  3. private String password;   
  4. private String msg; //从服务端获取消息   
  5. private List<User> friends=new ArrayList<User>();  
 private int id;
 private String username;
 private String password;
 private String msg; //从服务端获取消息
 private List<User> friends=new ArrayList<User>();

 
 分别提供get~(),set~()方法.
 HelloWorldService.java (服务接口)

Java代码 复制代码  收藏代码
  1. /**  
  2.   * xfire传入传出自定义类型示例  
  3.   * @param user  
  4.   * @return User Object  
  5.   */  
  6.  User helloWorldDetail(User user);   
  7.  /**  
  8.   * xfire传入传出集合类型示例  
  9.   * @param list  
  10.   * @return List<User>集合  
  11.   */  
  12.  List<User> listHelloWorld(List<User> list);  
/**
  * xfire传入传出自定义类型示例
  * @param user
  * @return User Object
  */
 User helloWorldDetail(User user);
 /**
  * xfire传入传出集合类型示例
  * @param list
  * @return List<User>集合
  */
 List<User> listHelloWorld(List<User> list);

  

注意:必须写成List<User> 如果为List,在生成wsdl文件时会报错
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'HelloService' defined in class path resource [META-INF/xfire/services.xml]: Invocation of init method failed; nested exception is org.codehaus.xfire.XFireRuntimeException: Cannot create mapping for java.util.List, unspecified component type for return type of method HelloWorldList in interface org.simpledev.xfire.list.service.IHelloWorldService

  HelloWorldServiceImpl(服务接口实现类)

Java代码 复制代码  收藏代码
  1. /**  
  2.   * 考虑用户对象及该用户对象friends集合对象  
  3.   */  
  4.  public User helloWorldDetail(User user) {   
  5.   System.out.println("HelloWorldServiceImpl.helloWorldDetail()");   
  6.   //================自定义类型传入 begin================   
  7.   System.out.println("客户端传递过来的User对象信息:");   
  8.   int id = user.getId();   
  9.   String username = user.getUsername();   
  10.   String password = user.getPassword();   
  11.   String msg = user.getMsg();   
  12.   System.out.println("id:"+id);   
  13.   System.out.println("username:"+username);   
  14.   System.out.println("password:"+password);   
  15.   System.out.println("msg:"+msg);   
  16.   List<User> friends = user.getFriends();   
  17.   User friend;   
  18.   for (int i = 0; i < friends.size(); i++) {   
  19.    friend=friends.get(i);   
  20.    System.out.println("朋友的编号:"+friend.getId()+"用户名:"+friend.getUsername()+"密码:"+friend.getPassword()+"消息:"+friend.getMsg()+"");   
  21.   }   
  22.   //================自定义类型传入 end================   
  23.   //服务器端确认用户业务逻辑代码   
  24.   //...    
  25.   //服务器端处理完毕后,返回一个User Object   
  26.   //================自定义类型传出 begin================   
  27.   User temp = user;   
  28.   temp.setMsg("恭喜你,你的编号是:"+id+"用户名是:"+username+"密码是:"+password+"已经被服务器端确认!");   
  29.   User friend1 = new User(101,"樱木花道","ymhd","我是新朋友樱木花道");   
  30.   User friend2 = new User(102,"流川 枫","lcf","我是新朋友流川 枫");   
  31.   User friend3 = new User(103,"三井 寿","sjs","我是新朋友三井 寿");   
  32.   User friend4 = new User(104,"宫城良田","gclt","我是新朋友宫城良田");   
  33.   User friend5 = new User(105,"赤木刚宪","ymhd","我是新朋友赤木刚宪");   
  34.   List<User> newfriends = new ArrayList<User>();   
  35.   newfriends.add(friend1);   
  36.   newfriends.add(friend2);   
  37.   newfriends.add(friend3);   
  38.   newfriends.add(friend4);   
  39.   newfriends.add(friend5);   
  40.   temp.setFriends(newfriends);   
  41.   //================自定义类型传出 end================   
  42.   return temp;   
  43.  }   
  44.   
  45.  /**  
  46.   * 不考虑friends集合情况  
  47.   */  
  48.  public List<User> listHelloWorld(List<User> list) {   
  49.   System.out.println("HelloWorldServiceImpl.listHelloWorld()");   
  50.   //用户信息批量确认   
  51.   User user;   
  52.   int id;   
  53.   String username;   
  54.   String password;   
  55.   String msg;   
  56.   //================集合类型传入 begin================   
  57.   for (int i = 0; i < list.size(); i++) {   
  58.    user = list.get(i);   
  59.    id = user.getId();   
  60.    username = user.getUsername();   
  61.    password = user.getPassword();   
  62.    msg = user.getMsg();   
  63.    System.out.println("===id为"+id+"信息读取显示开始===");   
  64.    System.out.println("username:"+username);   
  65.    System.out.println("password:"+password);   
  66.    System.out.println("msg:"+msg);   
  67.   }   
  68.   //================集合类型传入 end================   
  69.      
  70.   //================集合类型传出 begin================   
  71.   List<User> temp = new ArrayList<User>();   
  72.   for (int i = 0; i < list.size(); i++) {   
  73.    user = list.get(i);   
  74.    id = user.getId();   
  75.    user.setMsg("恭喜你,编号"+id+"为已经通过考试了");   
  76.    temp.add(user);   
  77.   }   
  78.   //================集合类型传出 end================   
  79.   return temp;   
  80.  }  
/**
  * 考虑用户对象及该用户对象friends集合对象
  */
 public User helloWorldDetail(User user) {
  System.out.println("HelloWorldServiceImpl.helloWorldDetail()");
  //================自定义类型传入 begin================
  System.out.println("客户端传递过来的User对象信息:");
  int id = user.getId();
  String username = user.getUsername();
  String password = user.getPassword();
  String msg = user.getMsg();
  System.out.println("id:"+id);
  System.out.println("username:"+username);
  System.out.println("password:"+password);
  System.out.println("msg:"+msg);
  List<User> friends = user.getFriends();
  User friend;
  for (int i = 0; i < friends.size(); i++) {
   friend=friends.get(i);
   System.out.println("朋友的编号:"+friend.getId()+"用户名:"+friend.getUsername()+"密码:"+friend.getPassword()+"消息:"+friend.getMsg()+"");
  }
  //================自定义类型传入 end================
  //服务器端确认用户业务逻辑代码
  //... 
  //服务器端处理完毕后,返回一个User Object
  //================自定义类型传出 begin================
  User temp = user;
  temp.setMsg("恭喜你,你的编号是:"+id+"用户名是:"+username+"密码是:"+password+"已经被服务器端确认!");
  User friend1 = new User(101,"樱木花道","ymhd","我是新朋友樱木花道");
  User friend2 = new User(102,"流川 枫","lcf","我是新朋友流川 枫");
  User friend3 = new User(103,"三井 寿","sjs","我是新朋友三井 寿");
  User friend4 = new User(104,"宫城良田","gclt","我是新朋友宫城良田");
  User friend5 = new User(105,"赤木刚宪","ymhd","我是新朋友赤木刚宪");
  List<User> newfriends = new ArrayList<User>();
  newfriends.add(friend1);
  newfriends.add(friend2);
  newfriends.add(friend3);
  newfriends.add(friend4);
  newfriends.add(friend5);
  temp.setFriends(newfriends);
  //================自定义类型传出 end================
  return temp;
 }

 /**
  * 不考虑friends集合情况
  */
 public List<User> listHelloWorld(List<User> list) {
  System.out.println("HelloWorldServiceImpl.listHelloWorld()");
  //用户信息批量确认
  User user;
  int id;
  String username;
  String password;
  String msg;
  //================集合类型传入 begin================
  for (int i = 0; i < list.size(); i++) {
   user = list.get(i);
   id = user.getId();
   username = user.getUsername();
   password = user.getPassword();
   msg = user.getMsg();
   System.out.println("===id为"+id+"信息读取显示开始===");
   System.out.println("username:"+username);
   System.out.println("password:"+password);
   System.out.println("msg:"+msg);
  }
  //================集合类型传入 end================
  
  //================集合类型传出 begin================
  List<User> temp = new ArrayList<User>();
  for (int i = 0; i < list.size(); i++) {
   user = list.get(i);
   id = user.getId();
   user.setMsg("恭喜你,编号"+id+"为已经通过考试了");
   temp.add(user);
  }
  //================集合类型传出 end================
  return temp;
 }

  

Web Service Project创建后,services.xml代码默认如下:
<beans xmlns="http://xfire.codehaus.org/config/1.0">
  ...配置
</beans>

org.springframework.beans.factory.BeanDefinitionStoreException: Error registering bean with name '' defined in class path resource [META-INF/xfire/services.xml]: Bean class [list] not found; nested exception is java.lang.ClassNotFoundException: list
java.lang.ClassNotFoundException: list
去掉:xmlns="http://xfire.codehaus.org/config/1.0" <beans>...配置</beans>

services.xml文件完整:
 

Xml代码 复制代码  收藏代码
  1. <beans>  
  2.  <!-- 使用Spring方式配置 -->  
  3.  <bean name="HelloService" class="org.codehaus.xfire.spring.ServiceBean">  
  4.   <property name="serviceBean" ref="echo" />  
  5.   <property name="serviceClass" value="org.simpledev.xfire.list.HelloWorldService" />  
  6.   <property name="inHandlers">  
  7.    <list>  
  8.     <ref bean="addressingHandler" />  
  9.    </list>  
  10.   </property>  
  11.  </bean>  
  12.  <bean id="echo" class="org.simpledev.xfire.list.HelloWorldServiceImpl" />  
  13.  <bean id="addressingHandler" class="org.codehaus.xfire.addressing.AddressingInHandler" />  
  14. </beans>  

 

5.客户端主要代码:(注意:根据wsdl生成代码后,还需要httpclient.jar支持)

Java代码 复制代码  收藏代码
  1.  public static void main(String[] args) {   
  2.   HelloWorldServiceClient client = new HelloWorldServiceClient();   
  3.   HelloWorldServicePortType service = client.getHelloWorldServiceHttpPort();   
  4.      
  5.   System.out.println("########### 方法1 ###########");   
  6.   //QName参考: User.java   
  7.      User user = new User();   
  8. //     JAXBElement<Integer> id = new JAXBElement<Integer>(new   
  9. //             QName("http://list.xfire.simpledev.org", "id"),Integer.class,1);   
  10.      JAXBElement<String> username = new JAXBElement<String>(new  
  11.              QName("http://list.xfire.simpledev.org""username"),String.class,"simpledev");   
  12.      JAXBElement<String> password = new JAXBElement<String>(new  
  13.              QName("http://list.xfire.simpledev.org""password"),String.class,"123456");   
  14.      JAXBElement<String> msg = new JAXBElement<String>(new  
  15.              QName("http://list.xfire.simpledev.org""msg"),String.class,"客户端编号为1的发出请求");   
  16.      //======添加对象friends集合 begin======   
  17.      ArrayOfUser temp = new ArrayOfUser();   
  18.       User friend1 = new User();   
  19.       JAXBElement<String> f_username1 = new JAXBElement<String>(new  
  20.               QName("http://list.xfire.simpledev.org""username"),String.class,"许文强");   
  21.       JAXBElement<String> f_password1 = new JAXBElement<String>(new  
  22.               QName("http://list.xfire.simpledev.org""password"),String.class,"xwq");   
  23.       JAXBElement<String> f_msg1 = new JAXBElement<String>(new  
  24.               QName("http://list.xfire.simpledev.org""msg"),String.class,"上海滩-强哥");   
  25.       friend1.setId(11);   
  26.       friend1.setUsername(f_username1);   
  27.       friend1.setPassword(f_password1);   
  28.       friend1.setMsg(f_msg1);   
  29.       User friend2 = new User();   
  30.       JAXBElement<String> f_username2 = new JAXBElement<String>(new  
  31.               QName("http://list.xfire.simpledev.org""username"),String.class,"丁力");   
  32.       JAXBElement<String> f_password2 = new JAXBElement<String>(new  
  33.               QName("http://list.xfire.simpledev.org""password"),String.class,"dl");   
  34.       JAXBElement<String> f_msg2 = new JAXBElement<String>(new  
  35.               QName("http://list.xfire.simpledev.org""msg"),String.class,"上海滩-阿力");   
  36.       friend2.setId(12);   
  37.       friend2.setUsername(f_username2);   
  38.       friend2.setPassword(f_password2);   
  39.       friend2.setMsg(f_msg2);         
  40.      temp.getUser().add(friend1);   
  41.      temp.getUser().add(friend2);   
  42.      //======添加对象friends集合 end======   
  43.      JAXBElement<ArrayOfUser> friends = new JAXBElement<ArrayOfUser>(new  
  44.              QName("http://list.xfire.simpledev.org""friends"),ArrayOfUser.class,temp);   
  45.      //封装User Object   
  46.      user.setId(1);   
  47.      user.setUsername(username);   
  48.      user.setPassword(password);   
  49.      user.setMsg(msg);   
  50.      user.setFriends(friends);   
  51.      //请求方法,返回User Object   
  52.      User tempUser = service.helloWorldDetail(user);   
  53.      System.out.println("===下面是从服务器端获取的详细信息===");   
  54.      System.out.println(tempUser.getId());   
  55.      System.out.println(tempUser.getUsername().getValue());   
  56.      System.out.println(tempUser.getPassword().getValue());   
  57.      System.out.println(tempUser.getMsg().getValue());   
  58.      JAXBElement<ArrayOfUser> f = tempUser.getFriends(); //获取新朋友,list   
  59.      ArrayOfUser f2 = f.getValue();   
  60.      List f3 = f2.getUser();   
  61.      for (int i = 0; i < f3.size(); i++) {   
  62.    User u = (User)f3.get(i);   
  63.    System.out.println(u.getId());   
  64.    System.out.println(u.getUsername().getValue());   
  65.    System.out.println(u.getPassword().getValue());   
  66.    System.out.println(u.getMsg().getValue());   
  67.   }   
  68.      System.out.println("--------------------------------");   
  69.      
  70.      System.out.println("########### 方法2 ###########");   
  71.      ArrayOfUser a = new ArrayOfUser();   
  72.      User u1 = new User();   
  73.      JAXBElement<String> u_username1 = new JAXBElement<String>(new  
  74.              QName("http://list.xfire.simpledev.org""username"),String.class,"本田透");   
  75.      JAXBElement<String> u_password1 = new JAXBElement<String>(new  
  76.              QName("http://list.xfire.simpledev.org""password"),String.class,"111111");   
  77.      JAXBElement<String> u_msg1 = new JAXBElement<String>(new  
  78.              QName("http://list.xfire.simpledev.org""msg"),String.class,"序号1:查询考试是否通过?");   
  79.      u1.setId(1);   
  80.      u1.setUsername(u_username1);   
  81.      u1.setPassword(u_password1);   
  82.      u1.setMsg(u_msg1);   
  83.      User u2 = new User();   
  84.      JAXBElement<String> u_username2 = new JAXBElement<String>(new  
  85.              QName("http://list.xfire.simpledev.org""username"),String.class,"纪纱");   
  86.      JAXBElement<String> u_password2 = new JAXBElement<String>(new  
  87.              QName("http://list.xfire.simpledev.org""password"),String.class,"222222");   
  88.      JAXBElement<String> u_msg2 = new JAXBElement<String>(new  
  89.              QName("http://list.xfire.simpledev.org""msg"),String.class,"序号2:查询考试是否通过?");   
  90.      u2.setId(2);   
  91.      u2.setUsername(u_username2);   
  92.      u2.setPassword(u_password2);   
  93.      u2.setMsg(u_msg2);      
  94.      a.getUser().add(u1);   
  95.      a.getUser().add(u2);   
  96.   ArrayOfUser list = service.listHelloWorld(a);   
  97.   List ls = list.getUser();   
  98.   for (int i = 0; i < ls.size(); i++) {   
  99.    User u = (User)ls.get(i);   
  100.    System.out.println(u.getId());   
  101.    System.out.println(u.getUsername().getValue());   
  102.    System.out.println(u.getPassword().getValue());   
  103.    System.out.println(u.getMsg().getValue());   
  104.   }   
  105.  }  
 public static void main(String[] args) {
  HelloWorldServiceClient client = new HelloWorldServiceClient();
  HelloWorldServicePortType service = client.getHelloWorldServiceHttpPort();
  
  System.out.println("########### 方法1 ###########");
  //QName参考: User.java
     User user = new User();
//     JAXBElement<Integer> id = new JAXBElement<Integer>(new
//             QName("http://list.xfire.simpledev.org", "id"),Integer.class,1);
     JAXBElement<String> username = new JAXBElement<String>(new
             QName("http://list.xfire.simpledev.org", "username"),String.class,"simpledev");
     JAXBElement<String> password = new JAXBElement<String>(new
             QName("http://list.xfire.simpledev.org", "password"),String.class,"123456");
     JAXBElement<String> msg = new JAXBElement<String>(new
             QName("http://list.xfire.simpledev.org", "msg"),String.class,"客户端编号为1的发出请求");
     //======添加对象friends集合 begin======
     ArrayOfUser temp = new ArrayOfUser();
      User friend1 = new User();
      JAXBElement<String> f_username1 = new JAXBElement<String>(new
              QName("http://list.xfire.simpledev.org", "username"),String.class,"许文强");
      JAXBElement<String> f_password1 = new JAXBElement<String>(new
              QName("http://list.xfire.simpledev.org", "password"),String.class,"xwq");
      JAXBElement<String> f_msg1 = new JAXBElement<String>(new
              QName("http://list.xfire.simpledev.org", "msg"),String.class,"上海滩-强哥");
      friend1.setId(11);
      friend1.setUsername(f_username1);
      friend1.setPassword(f_password1);
      friend1.setMsg(f_msg1);
      User friend2 = new User();
      JAXBElement<String> f_username2 = new JAXBElement<String>(new
              QName("http://list.xfire.simpledev.org", "username"),String.class,"丁力");
      JAXBElement<String> f_password2 = new JAXBElement<String>(new
              QName("http://list.xfire.simpledev.org", "password"),String.class,"dl");
      JAXBElement<String> f_msg2 = new JAXBElement<String>(new
              QName("http://list.xfire.simpledev.org", "msg"),String.class,"上海滩-阿力");
      friend2.setId(12);
      friend2.setUsername(f_username2);
      friend2.setPassword(f_password2);
      friend2.setMsg(f_msg2);      
     temp.getUser().add(friend1);
     temp.getUser().add(friend2);
     //======添加对象friends集合 end======
     JAXBElement<ArrayOfUser> friends = new JAXBElement<ArrayOfUser>(new
             QName("http://list.xfire.simpledev.org", "friends"),ArrayOfUser.class,temp);
     //封装User Object
     user.setId(1);
     user.setUsername(username);
     user.setPassword(password);
     user.setMsg(msg);
     user.setFriends(friends);
     //请求方法,返回User Object
     User tempUser = service.helloWorldDetail(user);
     System.out.println("===下面是从服务器端获取的详细信息===");
     System.out.println(tempUser.getId());
     System.out.println(tempUser.getUsername().getValue());
     System.out.println(tempUser.getPassword().getValue());
     System.out.println(tempUser.getMsg().getValue());
     JAXBElement<ArrayOfUser> f = tempUser.getFriends(); //获取新朋友,list
     ArrayOfUser f2 = f.getValue();
     List f3 = f2.getUser();
     for (int i = 0; i < f3.size(); i++) {
   User u = (User)f3.get(i);
   System.out.println(u.getId());
   System.out.println(u.getUsername().getValue());
   System.out.println(u.getPassword().getValue());
   System.out.println(u.getMsg().getValue());
  }
     System.out.println("--------------------------------");
  
     System.out.println("########### 方法2 ###########");
     ArrayOfUser a = new ArrayOfUser();
     User u1 = new User();
     JAXBElement<String> u_username1 = new JAXBElement<String>(new
             QName("http://list.xfire.simpledev.org", "username"),String.class,"本田透");
     JAXBElement<String> u_password1 = new JAXBElement<String>(new
             QName("http://list.xfire.simpledev.org", "password"),String.class,"111111");
     JAXBElement<String> u_msg1 = new JAXBElement<String>(new
             QName("http://list.xfire.simpledev.org", "msg"),String.class,"序号1:查询考试是否通过?");
     u1.setId(1);
     u1.setUsername(u_username1);
     u1.setPassword(u_password1);
     u1.setMsg(u_msg1);
     User u2 = new User();
     JAXBElement<String> u_username2 = new JAXBElement<String>(new
             QName("http://list.xfire.simpledev.org", "username"),String.class,"纪纱");
     JAXBElement<String> u_password2 = new JAXBElement<String>(new
             QName("http://list.xfire.simpledev.org", "password"),String.class,"222222");
     JAXBElement<String> u_msg2 = new JAXBElement<String>(new
             QName("http://list.xfire.simpledev.org", "msg"),String.class,"序号2:查询考试是否通过?");
     u2.setId(2);
     u2.setUsername(u_username2);
     u2.setPassword(u_password2);
     u2.setMsg(u_msg2);   
     a.getUser().add(u1);
     a.getUser().add(u2);
  ArrayOfUser list = service.listHelloWorld(a);
  List ls = list.getUser();
  for (int i = 0; i < ls.size(); i++) {
   User u = (User)ls.get(i);
   System.out.println(u.getId());
   System.out.println(u.getUsername().getValue());
   System.out.println(u.getPassword().getValue());
   System.out.println(u.getMsg().getValue());
  }
 }

 

6.打印信息如下:
 客户端打印信息如下:
 ########### 方法1 ###########
===下面是从服务器端获取的详细信息===
1
simpledev
123456
恭喜你,你的编号是:1用户名是:simpledev密码是:123456已经被服务器端确认!
101
樱木花道
ymhd
我是新朋友樱木花道
102
流川 枫
lcf
我是新朋友流川 枫
103
三井 寿
sjs
我是新朋友三井 寿
104
宫城良田
gclt
我是新朋友宫城良田
105
赤木刚宪
ymhd
我是新朋友赤木刚宪
--------------------------------
########### 方法2 ###########
1
本田透
111111
恭喜你,编号1为已经通过考试了
2
纪纱
222222
恭喜你,编号2为已经通过考试了

 

服务端打印信息如下:
 HelloWorldServiceImpl.helloWorldDetail()
客户端传递过来的User对象信息:
id:1
username:simpledev
password:123456
msg:客户端编号为1的发出请求
朋友的编号:11用户名:许文强密码:xwq消息:上海滩-强哥
朋友的编号:12用户名:丁力密码:dl消息:上海滩-阿力
HelloWorldServiceImpl.listHelloWorld()
===id为1信息读取显示开始===
username:本田透
password:111111
msg:序号1:查询考试是否通过?
===id为2信息读取显示开始===
username:纪纱
password:222222

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值