`
liaokang.java
  • 浏览: 155126 次
  • 性别: 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

    - **服务端点接口(SEI)**:定义Web服务接口,可以是EJB的业务接口,这样客户端可以通过Web服务调用EJB的业务逻辑。 4. **源码分析** - **实体bean的源码**:通常包含实体类和映射元数据(如ORM文件或注解),...

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

    在EJB 3.0中,Web服务被集成到了EJB组件中,使得EJB可以直接暴露为Web服务。通过使用JAX-WS(Java API for XML Web Services),开发者可以方便地创建符合SOAP(Simple Object Access Protocol)标准的Web服务。 ##...

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

    在本主题"ejb3 第12讲 --开发EJB容器模型的WEB服务"中,我们将探讨如何利用EJB 3.0版本来创建和整合Web服务。EJB 3.0是一个重要的里程碑,因为它显著简化了EJB的使用,引入了更多的POJO(Plain Old Java Object)...

    基于MVC设计模式构筑JSPServlet+EJB的Web应用

    ### 基于MVC设计模式构筑JSP/Servlet+EJB的Web应用 #### 概述 随着互联网的快速发展,Web应用已经从简单的静态内容发布转变为支持动态交互内容的处理,例如在线娱乐、电子商务等。为了满足这些变化,Web应用程序...

    SOA\精通SOA_基于服务总线的Struts+EJB+Web Service整合应用开发

    **精通SOA:基于服务总线的Struts+EJB+Web Service整合应用开发** 在现代企业级软件开发中,Service-Oriented Architecture(SOA,面向服务架构)是一种广泛采用的设计理念,它强调通过独立、可重用的服务来构建...

    Java EJB模型模拟完整代码.rar

    这个"Java EJB模型模拟完整代码.rar"压缩包提供了一个学习EJB模型的实例,它包含了一系列实现特定操作的远程接口、本地Home接口以及各个模块的功能代码。 EJB的核心概念主要包括三个主要组件:Entity Beans(实体...

    ejb web service sap

    ### 使用EJB功能在Web Dynpro Java中的WebService模型 #### 概览 本文档主要介绍了如何在SAP NetWeaver CE 7.11的Web Dynpro for Java应用程序中使用EJB (Enterprise JavaBeans) 功能并通过WebService模型进行数据...

    精通SOA_基于服务总线的Struts+EJB+Web Service整合应用开发08

    它们通常使用WSDL(Web服务描述语言)来定义服务接口,SOAP(简单对象访问协议)作为传输协议,以及UDDI(统一描述、发现和集成)来查找服务。Web Services允许异构系统间的互操作性,使不同技术栈的应用程序能够...

    EJB的真实世界模型(源代码)

    源代码可能包含了配置文件,比如ejb-jar.xml、web.xml等,用于定义bean的行为和部署细节。理解这些配置文件对于部署和调试EJB应用至关重要。 **学习重点**: 1. EJB组件的角色和生命周期。 2. EJB与JSP之间的协作...

    Ejb开发webservice

    在提供的压缩包文件中,`Webservice开发完整实例lrq.docx`可能是详细的开发步骤文档,`TestWebServiceEjb`可能包含的是EJB Web服务的测试代码,而`TestWebServiceMain`可能是一个主类,用于启动和测试Web服务。...

    基于Web服务的网络软件模型的建立与分析.pdf

    Web服务是一种通过Web共享数据和功能的交流方式,它可以是通过Web调用的标准接口,如CORBA或EJB。Web服务的应用模式主要包括简单调用和合作处理,前者是Web服务作为Web化构件,由客户端通过SOAP消息调用多个服务进行...

    用于实现Web服务的SOA编程模型.

    总结来说,Java提供了全面的工具和技术来实现SOA编程模型,包括创建和消费Web服务、管理服务生命周期以及构建分布式系统的整体架构。通过理解和掌握这些知识,开发者能够构建可扩展、灵活且高度集成的企业级应用。

    Java Web JSF +Richfaces+EJB+JPA航空订票系统

    Java Web JSF + Richfaces + EJB + JPA 航空订票系统是一个综合性的应用,涵盖了多种Java技术,用于构建高效的、可扩展的、易于维护的Web应用程序。在这个系统中,每项技术都有其特定的角色和功能,共同协作以实现...

    基于EJB的真实世界模型_ejb_

    部署EJB应用通常涉及到创建EJB模块、Web模块(包含JSP和JavaBean),然后将它们打包成WAR或EAR文件,最后在应用服务器(如JBoss、WebLogic或GlassFish)上部署。运行时,服务器负责管理和调度EJB实例,确保其正确...

    EJB教程,EJB参考书

    EJB架构基于组件模型,其中每个角色都有明确职责,确保组件间解耦合,易于维护和升级。EJB容器作为核心组件,负责管理EJB的生命周期,提供透明的事务管理、持久化、并发控制和安全服务,使得开发者可以专注于业务...

    EJB概念

    EJB的体系结构是基于对象组件模型的,其上层是分布式应用程序,下层则依赖API技术来处理事务服务。EJB技术简化了Java企业应用的开发、配置和执行过程。开发者编写好代码后,组件会被组合到特定文件中,每个文件包含...

Global site tag (gtag.js) - Google Analytics