`
javaEEdevelop
  • 浏览: 876160 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

开发EJB容器模型的WEB服务

 
阅读更多

1.开发服务端

  1.1.Order.java  //是实体类

  1.2.OrderService.java  //服务接口

  1.3.OrderServiceBean.java  //服务接口的实现类

  1.4.build.xml //ant的部署文件

2.开发客户端

  2.1.OrderTest.java //juit测试类

  2.2.build.xml //Ant任务类生成webservice辅助类

  2.3需要jax2.1的jar文件支持,http://dldx.csdn.net/fd.php?i=987830727246899&s=55184deee4b4aa959bb33700d85ddc98

3.发布WebService.jar到jboss下

4.查看jboss中的webservice http://localhost:8080/jbossws/中View a list of deployed services 选项就可以看到自己的web service了

 

Order.java 

package cn.cmcc.bean;

 

import java.io.Serializable;

 

 

public class Order  implements Serializable{

 

/**

*/

private static final long serialVersionUID = -1037122931899348746L;

private String orderId;

private String name;

public Order(){}

 

public Order(String orderId, String name) {

super();

this.orderId = orderId;

this.name = name;

}

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.java

package cn.cmcc.service;

 

import java.util.List;

 

import cn.cmcc.bean.Order;

 

 

public interface OrderService {

 

public Order getOrder(String orderId);

public List<Order> getOrders();

public String getName(String name);

}

 

 

 

OrderServiceBean.java

package cn.cmcc.service.impl;

 

import java.util.ArrayList;

import java.util.List;

 

import javax.ejb.Remote;

import javax.ejb.Stateless;

import javax.jws.WebService;

 

import cn.cmcc.bean.Order;

import cn.cmcc.service.OrderService;

 

@WebService(

name = "OrderService",  //接口名

serviceName = "OrderServiceBean", //接口实现名

targetNamespace = "http://www.cmcc.cn") //命名空间

@Stateless

@Remote

public class OrderServiceBean  implements OrderService{

 

@Override

public String getName(String name) {

 

return name;

}

 

@Override

public Order getOrder(String orderId) {

Order order =new Order();

order.setName("zhangsan");

order.setOrderId(orderId);

return order;

}

 

@Override

public List<Order> getOrders() {

List<Order> list=new ArrayList<Order>();

 

Order order =new Order();

order.setName("zhangsan");

order.setOrderId("1");

 

list.add(order);

order =new Order();

order.setName("lisi");

order.setOrderId("2");

 

list.add(order);

return list;

}

 

 

 

}

 

 

 

build.xml  //服务端的ant 的build文件

<?xml version="1.0" encoding="UTF-8"?>

<!-- 描述一个工程,工程名为"HelloWorld",该工程位于与build.xml文件同一目录之中 -->

<project name="WebService" basedir=".">

<!-- 创建一个属性,该属性的值是工程下的src目录 -->

<property name="src.dir" value="${basedir}\src" />

<!-- 创建一个属性,该属性指向系统环境变量 -->

<property environment="env" />

<!-- 创建一个属性,该属性用于执行系统环境变量下的JBOSS_HOME,

   实际上是指向JBoss的安装路径 -->

<property name="jboss.home" value="${env.JBOSS_HOME}" />

<!-- 创建一个属性,该属性定位到JBoss安装目录下的server/default目录 -->

<property name="jboss.server.config" value="default" />

<!-- 创建一个属性,该属性是在工程的根目下的build文件夹,用于存放编译好的EJB应用 -->

<property name="build.dir" value="${basedir}\build" />

<!-- 将JBoss安装目录client目录下的所有jar文件引用到build文件夹中 -->

<path id="build.classpath">

<fileset dir="${jboss.home}\client">

<include name="*.jar" />

</fileset>

<pathelement location="${build.dir}" />

</path>

<!-- 功能:创建、删除build文件夹 -->

<target name="prepare">

<delete dir="${build.dir}" />

<mkdir dir="${build.dir}" />

</target>

<!-- 功能:编译EJB应用,该模块依赖于prepare模块 -->

<target name="compile" depends="prepare" description="编译">

<!-- 将EJB工程的src中的java类,编译到build文件夹中 -->

<javac srcdir="${src.dir}" destdir="${build.dir}">

<classpath refid="build.classpath" />

</javac>

</target>

<!-- 功能:打包EJB应用,该模块依赖于compile模块  -->

<target name="ejbjar" depends="compile" description="打包EJB应用">

<!-- 打包后的文件名称 -->

<jar jarfile="${basedir}\${ant.project.name}.jar">

<fileset dir="${build.dir}">

<include name="**/*.class" />

</fileset>

</jar>

</target>

<!-- 功能:发布EJB应用,该模块依赖于ejbjar,发布应用实际上就是拷贝文件到服务器 -->

<target name="deploy" depends="ejbjar" description="发布EJB应用">

<copy file="${basedir}\${ant.project.name}.jar" todir="${jboss.home}\server\${jboss.server.config}\deploy" />

</target>

<!-- 功能:卸载EJB应用 -->

<target name="undeploy" description="卸载EJB应用">

<delete file="${jboss.home}\server\${jboss.server.config}\deploy\${ant.project.name}.jar" />

</target>

</project>

 

 

 

 

OrderTest.xml

package juit.test;

 

import org.junit.BeforeClass;

import org.junit.Test;

 

import cn.cmcc.ws.client.Order;

import cn.cmcc.ws.client.OrderService;

import cn.cmcc.ws.client.OrderServiceBean;

 

public class OrderTest {

 

private static OrderServiceBean serviceBean=new OrderServiceBean();

private static OrderService orderService;

@BeforeClass

public static void setUpBeforeClass() throws Exception {

orderService=serviceBean.getOrderServicePort();

 

}

@Test

public void getOrder(){

Order order= orderService.getOrder("1");

System.out.println(order.getName());

}

@Test

public void getOrders(){

for(Order order:orderService.getOrders()){

System.out.println(order.getOrderId()+"\t"+order.getName());

}

}

@Test

public void getName(){

System.out.println(orderService.getName("zhangsan"));

 

}

 

}

 

 

 

build.xml

<?xml version="1.0" encoding="UTF-8"?>

<project name="WebClient" default="wsclientgen" basedir=".">

   <property name="src.dir" value="${basedir}/src" />

   <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="cn.cmcc.ws.client" keep="true" 

    verbose="true" destdir="${basedir}/bin"/>

    </target>

</project>

 

 

分享到:
评论

相关推荐

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

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

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

    **EJB 3.0 学习总结(二)——EJB 3.0 容器模型的 WEB 服务** EJB(Enterprise JavaBeans)3.0 是 Java 平台企业版(Java EE)中的一项核心技术,它为构建可扩展、安全且易于管理的企业级应用程序提供了强大的支持...

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

    **EJB 3.0 容器模型与 Web 服务** EJB(Enterprise JavaBeans)是Java EE(Enterprise Edition)平台中的核心组件,用于构建可扩展、安全且可靠的分布式企业级应用。EJB 3.0是其一个重要的版本,引入了许多改进,...

    EJB应用开发详解

    EJB容器提供的服务包括: - **安全性**:基于角色的访问控制(Role-Based Access Control,RBAC)。 - **事务管理**:支持不同级别的事务隔离度和恢复机制。 - **并发控制**:管理多个客户端对同一个EJB实例的访问。...

    myeclilpse开发EJB+Webapp

    2. JNDI查找:在EJB容器中,EJB组件被注册到JNDI目录下,Web应用程序可以通过查找EJB的全局唯一名称来获取其引用。 3. EJB远程接口:EJB提供了远程接口,允许Web应用程序在不同的Java虚拟机(JVM)上进行跨进程调用...

    第18章 J2EE规范和EJB组件模型.ppt

    J2EE架构采用多层分布式应用程序模型,包括Web层、商业逻辑层(EJB容器)和企业信息系统层。Web层通常由Web服务器托管,处理HTTP请求,与JSP(Java Server Pages)和Servlet协同工作,生成动态网页。EJB容器负责执行...

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

    它们可以是容器管理的持久性(CMP),由EJB容器处理数据的存储和检索,或者是bean管理的持久性(BMP),其中bean自己负责数据管理。在本示例中,实体bean可能展示了如何处理数据库操作和事务控制。 **3. 消息驱动...

    EJB教程,EJB参考书

    - **1.1.5 EJB容器提供者(EJB Container Provider)**:提供容器服务,这是EJB组件运行的环境,负责管理EJB组件的生命周期、提供服务如事务管理和持久化,并确保组件间的通信。 - **1.1.6 系统管理员(System ...

    Myeclipse开发ejb详解教程.zip

    5. **EJB容器服务** - 容器负责管理Bean的生命周期,如实例化、初始化、销毁等。 - 提供事务管理,保证多操作的原子性。 - 容器还提供安全性管理,确保只有授权的用户才能访问特定的Bean。 6. **分布式计算与...

    EJB系统开发实战

    2. **EJB容器服务** - **事务管理**:EJB容器自动管理事务,确保数据一致性。 - **安全性**:提供用户认证和授权,保护应用程序资源。 - **并发控制**:对于有状态会话Bean,容器管理多个客户端的并发访问。 - *...

    EJB3开发部署全过程

    ### EJB3开发部署全过程详解 #### 一、EJB3简介及背景 EJB (Enterprise JavaBeans) 是Java平台为企业级...此外,本文还介绍了如何在JBoss 4.0中集成Tomcat 5.0,这对于同时需要Web容器和EJB容器的项目来说非常实用。

    EJB3.0开发文档+工具

    - EJB容器负责Bean的创建、初始化、销毁等生命周期管理,开发者无需手动管理对象的生命周期,可以更专注于业务逻辑。 3. **事务管理:** - EJB 3.0提供自动的事务管理,根据不同的方法注解(如`@...

    开发 EJB 应用电子版

    可嵌入式EJB引擎是指可以直接嵌入到应用程序中的EJB容器,这样可以在没有完整应用服务器的情况下运行EJB应用。 #### 16.8 小结 - **16.8.1 小结** 本章总结了EJB应用开发的核心概念和技术细节,为读者提供了...

    EJB概念

    EJB服务器作为容器和底层平台的桥梁,它管理EJB容器并提供对系统服务的访问,如数据库管理、事务处理等。EJB容器本身负责管理所有EJB实例的生命周期,处理大部分系统级别的问题,使开发者能够专注于应用逻辑,而无需...

    EJB开发总结

    EJB容器提供了多种服务,如: - **事务管理**:EJB容器自动管理事务边界,确保数据的一致性。 - **安全性**:通过容器级的安全机制,如角色基访问控制(RBAC),确保只有授权用户能访问特定的EJB。 - **生命周期...

Global site tag (gtag.js) - Google Analytics