接下来的我们将会自定义一个对象,然后看看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实体类代码生成一下。客户端生成的程序如下:

客户端调用代码如下:

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

带你走进EJB--将EJB发布为Webservice(4)的更多相关文章

  1. 带你走进EJB--将EJB发布为Webservice(1)

    Web service是一个平台独立,松耦合基于可编程的web的应用程序,可使用开放的XML标准来描述.发布.发现.协调和配置这些应用程序,用于开发分布式的互操作的应用程序. 简单说Web servi ...

  2. 带你走进EJB--将EJB发布为Webservice(2)

    在企业级的应用程序中经常都要把用不同语言写成的.在不同平台上运行的各种程序集成起来,而这种集成将花费很大的开发力量. 简单的一个例子:应用程序经常需要从运行在A主机上的程序中获取数据:或者把数据发送到 ...

  3. 带你走进EJB--MDB

    在之前的文章中我们介绍了带你走进EJB--JMS 和 带你走进EJB--JMS编程模型 对JMS有了初步的了解, 作为EJB系列的文章我们会继续对EJB相关的内容做进一步深的学习和了解.而此次需要进行 ...

  4. 小丁带你走进git世界一-git简单配置

    小丁带你走进git世界一-git简单配置 1.github的简单配置 配置提交代码的信息,例如是谁提交的代码之类的. git config  –global user.name BattleHeaer ...

  5. 《ASP.NET Core项目开发实战入门》带你走进ASP.NET Core开发

    <ASP.NET Core项目开发实战入门>从基础到实际项目开发部署带你走进ASP.NET Core开发. ASP.NET Core项目开发实战入门是基于ASP.NET Core 3.1 ...

  6. 小丁带你走进git的世界三-撤销修改

    一.撤销指令 git checkout还原工作区的功能 git reset  还原暂存区的功能 git clean  还没有被添加进暂存区的文件也就是git还没有跟踪的文件可以使用这个命令清除他们 g ...

  7. 小丁带你走进git的世界二-工作区暂存区分支

    小丁带你走进git的世界二-工作区暂存区分支 一.Git基本工作流程 1.初始化一个仓库 git  init git  clone git仓库分为两种情况: 第一种是在现有项目或目录下导入所有文件到 ...

  8. 老司机带你走进Core Animation

    为什么时隔这么久我又回来了呢? 回来圈粉. 开玩笑的,前段时间ipv6被拒啊,超级悲剧的,前后弄了好久,然后需求啊什么的又超多,所以写好的东西也没有时间整理.不过既然我现在回来了,那么这将是一个井喷的 ...

  9. 带你走进rsync的世界

    导读 Rsync(remote synchronize)是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件,也可以使用 Rsync 同步本地硬盘中的不同目录.rsync共有3种使用方 ...

随机推荐

  1. 再谈vc发送键盘、组合键消息

    关于向Windows窗口发送Alt组合键的问题,这个真是经典问题啊,在网上找了一下,问的人N多,方法差不多, 但就是没有很好解决问题. 之前找到一个能正确发送的code:(Alt+A) PostMes ...

  2. file is universal (4 slices) but does not contain a(n) armv7s slice

    关于ld: file is universal (2 slices) but does not contain a(n) armv7s slice 升级了xcode之后,支持iOS6和iPhone5, ...

  3. iPhone/iPad各种文件路径详解 帮助了解自己的iphone和ipad

    以下内容皆为转载分享iPhone里重要的目录路径有哪几个? 1. /private/var/mobile 新刷完的机器,要在这个文件夹下建一个Documents的目录,很多程序都要用到. 2. /pr ...

  4. android studio一直卡在Gradle:Executing tasks

    http://www.eoeandroid.com/forum.php?mod=viewthread&tid=554227 新建了个hello world项目,运行就卡在Gradle:Exec ...

  5. Ioc:Autofac Registration Concepts

    Reflection Components When using reflection-based components, Autofac automatically uses the constru ...

  6. Java实现在线预览Word,Excel,Ppt文档

    效果图:

  7. Eclipse启动时提示fail to create the Java Virtual Machine问题的解决办法

    是eclipse.ini文件的问题,打开eclipse安装目录下的eclipse.ini文件: 将其中的256m改为128m,512m改为256m,1024m改为512m即可 修改后如下: -star ...

  8. html input type=file 选择图片,图片预览 纯html js实现图片预览

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  9. C/C++ 指针函数 与 函数指针

    指针函数是个函数,是返回指针类型到函数. 函数指针是个指针,是指向函数地址到指针. 区分两者的关键点是,函数名是否用*和括号“包围”起来. #include <stdio.h> int * ...

  10. DevExpress ChartControl 柱状图的使用【转】

    //中心业务平台的“热门岗位信息监测”柱状图 public partial class HotJobInfo : UserControl     {         private object _o ...