zoukankan      html  css  js  c++  java
  • 带你走进EJB--将EJB发布为Webservice(4)

       接下来的我们将会自定义一个对象,然后看看EJB是如何对复杂的参数发布成WebService.


         代码如下:在第一个版本的基础之上加上增加用户的方法,参数为User.


     

    	package com.tgb.ejb;
    	
    	import javax.ejb.Remote;
    	import javax.ejb.Stateless;
    	import javax.jws.WebMethod;
    	import javax.jws.WebService;
    	
    	
    	@Remote
    	@Stateless
    	@WebService(name = "UserManagerWebService"
    	)
    	public class UserManagerBean implements UserManager{
    		@WebMethod
    		public User addUser(String name) {
    			System.out.println("客户" + name + "端调用了服务器端的代码");
    			  User user = new User();
    			 User.setName(name);
    			   User.setAge(24");
    			   User.setAddress("BeiJing");
    			 return user;
    		}
    		@WebMethod
    		public String sayHello(String name) {
    			return "你好" + name;
    		}
    	
    	}
    

     

     

              从代码中我们可以看到这个服务类调用了一个User实体类,这个类是一个自定义的POJO类.代码如下:

     

    		package com.tgb.ejb;
    		
    		
    		public class User {
    			private String name;
    			private int age ;
    			private String address;
    			public String getName() {
    				return name;
    			}
    			public void setName(String name) {
    				this.name = name;
    			}
    			public int getAge() {
    				return age;
    			}
    			public void setAge(int age) {
    				this.age = age;
    			}
    			public String getAddress() {
    				return address;
    			}
    			public void setAddress(String address) {
    				this.address = address;
    			}
    			@Override
    		    public String toString() {
    		       // TODO Auto-generated method stub
    		       return "name:" + name ;
    		    }
    			
    		}
    

     

            客户端在生成代码的时候也会将这个User实体类代码生成一下。客户端生成的程序如下:

          

    计算机生成了可选文字:斑ejb一ebservice--client卜囚AddUserjaVa卜国AddUserRe,pon,e.java。囚objectFacto甲.java卜国p。。k。ge一info.java卜国sayHellojava卜国sayHelloRe,ponsejava卜…因userjava…卜国userManagerBeanservice.java卜国U、erManagerwebservicejava卜涵webserviceClient.java

          客户端调用代码如下:


     

    			package ejb_webservice_client;
    			
    			import ejb_webservice_client.*;
    			
    			public class WebServiceClient {
    			
    				public static void main(String[] args) {
    				        System.out.println("***********************");
    				        System.out.println("Create Web Service Client...");
    				        UserManagerBeanService userManagerService = new UserManagerBeanService();
    				        System.out.println("Create Web Service...");
    				        UserManagerWebService userManager = userManagerService.getUserManagerWebServicePort();
    				
    				User user =userManager.addUser("jnqqls");
    				        System.out.println("Call Web Service Operation...");
    				                System.out.println("Server said: " + user.getName());
    				        System.out.println("***********************");
    				        System.out.println("Call Over!");
    				}
    			}
    


               总结:EJB为我们提供了方面的发布WebService服务,使用起来也非常简单,假设我们没有EJB服务器的实现支持,那么就需要用CXF、Axis2、等这种Web服务框架。用得比较多的就是Axis2和CXF。他们各自有着各自的优略势,不同的场景使用不同的框架.关于这两种框架的具体应用在以后的工作和学习中再继续丰富和学习.

  • 相关阅读:
    高并发学习之使用RateLimiter实现令牌桶限流
    Tomcat学习之连接数设置
    SpringCloud学习之Zuul
    SpringCloud学习之Ribbon负载均衡
    SpringCloud学习之注册中心Eureka
    Spring源码学习之Spring IOC 容器源码分析(上)
    测试爬虫
    HTTP协议之chunk编码(分块传输编码
    转载: Qt 学习之路 2归档
    Python与机器人技术
  • 原文地址:https://www.cnblogs.com/suncoolcat/p/3402559.html
Copyright © 2011-2022 走看看