• 带你走进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。他们各自有着各自的优略势,不同的场景使用不同的框架.关于这两种框架的具体应用在以后的工作和学习中再继续丰富和学习.

  • 相关阅读:
    FRAM在智能电子式电表中的应用
    element UI实现动态生成多级表头
    小微信小程序开发相关网站
    响应式开发bootstrap
    媒体查询
    前端导出功能实现的两种方式
    watch监听对象遇坑
    vue中使用v-for时为什么要用到key?为什么不能用index作为key?
    vue中我改变了data中的一个值,但现在视图上没有实时更新,请问我怎么拿到更新后的值?
    python 链接数据库的模块
  • 原文地址:https://www.cnblogs.com/suncoolcat/p/3402559.html
Copyright © 2020-2023  润新知