`
liaokang.java
  • 浏览: 152916 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
社区版块
存档分类
最新评论

EJB模型的WEB服务

    博客分类:
  • EJB
阅读更多
Web服务也是一种分布式技术,他与EJB最大的不同是Web服务属于行业规范,可以跨平台及语言,而EJB属于java平台的规范,尽管理论上可以跨平台,但是实现起来很复杂,javaEE为web service提供了两种不同的编程模型,EJB容器模型和Web容器模型,下面是以JAX-WS2.x规范介绍web service的开发
1.首先编写服务器端代码,新建一个java工程,并将JBoss的client目录下的所有jar包引入到工程
实体类Order如下
package com.lamp.bean;

import java.io.Serializable;

public class Order implements Serializable{

	private static final long serialVersionUID = 9138560163090982706L;
	private String orderId;
	private String name;
	public Order(){}
	public String getOrderId() {
		return orderId;
	}
	public void setOrderId(String orderId) {
		this.orderId = orderId;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	

}


接口类OrderService
package com.lamp.service;

import java.util.List;

import com.lamp.bean.Order;

public interface OrderService {
	public Order getOrder(String orderId);
	public List<Order> getOrders();
	public String getUsername(String name);
}


实现类
package com.lamp.service.impl;

import java.util.ArrayList;
import java.util.List;

import javax.ejb.Remote;
import javax.ejb.Stateless;
import javax.jws.WebService;

import com.lamp.bean.Order;
import com.lamp.service.OrderService;


@WebService(targetNamespace="http://ws.lamp.com",
		name="OrderService",
		serviceName="OrderServiceBean")
@Stateless
@Remote(OrderService.class)
public class OrderServiceBean implements OrderService {

	public Order getOrder(String orderId) {
		Order order = new Order();
		order.setOrderId(orderId);
		order.setName("张三");
		return order;
	}

	public List<Order> getOrders() {
		List<Order> orders = new ArrayList<Order>();
		Order order = new Order();
		order.setOrderId("01");
		order.setName("李四");
		
		Order order2 = new Order();
		order2.setOrderId("02");
		order2.setName("王五");
		
		orders.add(order);
		orders.add(order2);
		return orders;
	}

	public String getUsername(String name) {
		return name;
	}

}


用工程打包成jar部署到JBoss的部署目录下

接着我们开发一个客户端,新建一个java工程,并在其根目录下新建一个lib文件夹,将JAX-WS的jar文件拷贝到lib文件夹,同时也将其引入到项目的构建路径中
在项目的根目录下新建一个build.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<project name="WSClient" default="wsclientgen" basedir=".">
	<property name="src.dir" value="${basedir}/src"></property>
	<path id="build.classpath" description="设置类路径">
		<fileset dir="${basedir}/lib">
			<include name="*.jar"/>
		</fileset>
	</path>

	<target name="wsclientgen" description="生成webservice客户端辅助代码">
		<taskdef name="wsimport" classname="com.sun.tools.ws.ant.WsImport" classpathref="build.classpath"/>
		<wsimport wsdl="http://127.0.0.1:8080/WebService/OrderServiceBean?wsdl" sourcedestdir="${src.dir}" package="com.lamp.ws.client" keep="true"
		verbose="true" destdir="${basedir}/bin"/>
	</target>
	
</project>

通过运行ant,我们得到了客户端类
编写一个测试类来测试
package junit.test;


import java.util.List;

import org.junit.BeforeClass;
import org.junit.Test;

import com.lamp.ws.client.Order;
import com.lamp.ws.client.OrderService;
import com.lamp.ws.client.OrderServiceBean;

public class WSTest {

	@BeforeClass
	public static void setUpBeforeClass() throws Exception {
	}
	
	@Test
	public void getUsername(){
		OrderServiceBean service = new OrderServiceBean();
		OrderService orderService = service.getOrderServicePort();
		System.out.println(orderService.getUsername("张三"));
	}
	
	@Test
	public void getOrders(){
		OrderServiceBean service = new OrderServiceBean();
		OrderService orderService = service.getOrderServicePort();
		List<Order> orders = orderService.getOrders();
		for(Order order:orders){
			System.out.println(order.getName());
		}
	}
}

运行测试,我们能在控制台看到我们所需的结果
分享到:
评论

相关推荐

    EJB3.0容器模型的WEB服务-WebService

    NULL 博文链接:https://1028826685.iteye.com/blog/1503446

    ejb3 第12讲 --开发EJB容器模型的WEB服务

    NULL 博文链接:https://8366.iteye.com/blog/440338

    EJB3.0学习总结(二)--EJB3.0容器模型的WEB服务

    NULL 博文链接:https://lc2586.iteye.com/blog/720918

    ejb3.0培训教程与源码(绝对精品)

    2, EJB容器可以为我们提供中间件服务; 3, EJB客户端:(常见的) 1) 独立的java程序 2)web程序 3)其他的EJB, 4)其他通过Web Service 调用的客户端; 4, EJB容器可以为我们提供的服务: 1) 事务:够用 2)安全:不够...

    JSF1.2+EJB3.0实现的一个项目实例

    第二种是要部署在单独的Web容器Tomcat中,在独立的Tomcat中调用JBoss服务器中jsfejb3-ejb所提供的服务。此时还需要在web端的类路径中(也就是在jsfejb3-war项目的lib文件夹中)添加以下几个Jar包(这些包都在JBoss...

    传智播客 EJB3.0PPT 完整版 黎明活

    本资源为PPT,配套视频为: 01_下载安装与运行jboss ... 12_开发EJB容器模型的WEB服务 附录01_EJB3基本概念及发展前景 附录02_EJB3.0推荐教程 附录03_EJB3的运行环境 如果需要配套视频,请给本人私信。

    PetStore 中 EJB 的设计模式

    通过分析数据模型,和实际操作 PetStore 我们大概对它的数据模型有所了解。现在开始 分析系统 EJB 层的设计模式。首先什么是模式?看 Gof 的《设计模式》的定义,就是对被 用来在特定场景下解决一般设计问题的类和...

    EJB3.0实录教程+配套源码

    2, EJB容器可以为我们提供中间件服务; 3, EJB客户端:(常见的) 1) 独立的java程序 2)web程序 3)其他的EJB, 4)其他通过Web Service 调用的客户端; 4, EJB容器可以为我们提供的服务: 1) 事务:够用 2)安全:不够...

    经典JAVA.EE企业应用实战.基于WEBLOGIC_JBOSS的JSF_EJB3_JPA整合开发.pdf

    中文名: 经典Java EE企业应用实战--基于WebLogic/JBoss的JSF+EJB 3+JPA整合开发 原名: 经典Java EE企业应用实战--基于WebLogic/JBoss的JSF+EJB 3+JPA整合开发 作者: 李刚 资源格式: PDF 版本: 第一版 出版社: 电子...

    ejb 3.0实用教程

    EJB3 最激动人心的是POJO 编程模型,我想对开发人员的影响将是非常大的,因为他降低了开发人员编写EJB 的 要求。EJB3 的bean 类将更像常规的Java bean。不要求像过去那样实现特殊的回调界面或者扩展EJB 类。...

    精通Struts基于MVC的Java Web设计与开发 孙卫琴 光盘

    第17章和第18章介绍如何采用EJB和Web服务来实现Struts框架的模型。第19章到第21章介绍了如何采用第三方软件,如Apache Common Logging API、Log4J、ANT和StrutsTestCase,来控制Struts应用的输出日志、管理以及测试...

    ADF框架概述.pdf

    业务服务层可以通过以下选项实施:简单的 Java 系列、EJB2.1/3.0、Web 服务、TopLink 和 Oracle ADF 业务组件。 Oracle ADF 框架的主要特点包括: * 简化 J2EE 开发,减少实施设计模式和应用基础架构所需的代码 *...

    基于MVC的java Web设计与开发

    第17章和第18章介绍如何采用EJB和Web服务来实现Struts框架的模型。第19章到第21章介绍了如何采用第三方软件,如Apache Common Logging API、Log4J、ANT和StrutsTestCase,来控制Struts应用的输出日志、管理以及测试...

    精通Struts_基于MVC的Java Web设计与开发

    第17章和第18章介绍如何采用EJB和Web服务来实现Struts框架的模型。第19章到第21章介绍了如何采用第三方软件,如Apache Common Logging API、Log4J、ANT和StrutsTestCase,来控制Struts应用的输出日志、管理以及测试...

    EJB3.0 实例教程 -- 切片1

    EJB3 最激动人心的是POJO 编程模型,我想对开发人员的影响将是非常大的,因为他降低了开发人员编写EJB 的 要求。EJB3 的bean类将更像常规的Java bean。不要求像过去那样实现特殊的回调界面或者扩展EJB类。所以它 将使...

    精通struts:基于mvc的java web设计与开发part3

    第17章和第18章介绍如何采用EJB和Web服务来实现Struts框架的模型。第19章到第21章介绍了如何采用第三方软件,如Apache Common Logging API、Log4J、ANT和StrutsTestCase,来控制Struts应用的输出日志、管理以及测试...

    精通struts:基于mvc的java web设计与开发part2

    第17章和第18章介绍如何采用EJB和Web服务来实现Struts框架的模型。第19章到第21章介绍了如何采用第三方软件,如Apache Common Logging API、Log4J、ANT和StrutsTestCase,来控制Struts应用的输出日志、管理以及测试...

Global site tag (gtag.js) - Google Analytics