`
javaEEdevelop
  • 浏览: 863455 次
  • 性别: 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服务

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

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

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

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

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

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

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

    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 版本: 第一版 出版社: 电子...

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

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

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

    &lt;br&gt; 1)本项目开发环境 操作系统: Windows xp sp2 JDK环境: JDK1.6.0 IDE工具: MyEclipse6.0GA 数据库: Mysql 5.0.41 字符集设置:utf-8 EJB容器: JBoss4.2.1GA Web容器:...

    SpringBoot 全家桶 - 本项目对目前Web开发中常用的各个技术,通过和SpringBoot的集成.zip

    比如利用控制反转的核心特性,并通过依赖注入实现控制反转来实现管理对象生命周期容器化,利用面向切面编程进行声明式的事务管理,整合多种持久化技术管理数据访问,提供大量优秀的Web框架方便开发等等。Spring框架...

    J2EE应用开发详解

    第1章 Java Web应用开发简介 1 1.1 Java EE应用概述 1 1.2 Java EE概念 1 1.2.1 Java EE多层模型 1 1.2.2 Java EE体系结构 2 1.3 Java EE的核心API与组件 4 1.4 Web服务器和应用服务器 13 1.5 小结 16 第2章 建立...

    【SpringBootWeb】-SpringBootWeb框架详解

    尽管Spring框架自身对编程模型没有限制,但其在Java应用中的频繁使用让它备受青睐,以至于后来让它作为EJB(EnterpriseJavaBeans)模型的补充,甚至是替补。Spring框架为开发提供了一系列的解决方案,比如利用控制...

    Java开发热门项目

    这个框架足够强大,使得应用程序能够抛开EJB的复杂性,同时享受着和传统EJB相关的关键服务。Spring还提供了可以和IoC容器集成的强大而灵活的MVC Web框架。【SpringIDE:Eclipse平台下一个辅助开发插件】.

    Spring Framework 开发参考手册

    使用TransactionProxyFactoryBeans, Web应用是完全事务性的,就像使用EJB提供的那种 容器管理的事务一样. 所有的你的自定义业务逻辑可以通过简单的POJO来实现,并通过Spring的Dependency Injection容器进行管理...

    健身房管理信息系统设计.doc

    组件在分布式服务器的组件容器中运行,如Servl et组件在Servlet容器上运行,EJB组件在EJB容器上运行,容器间通过相关的协议进行通讯 ,实现组件的相互调用。遵从这个规范的开发者将得到行业的广泛支持,使企业级应用的 ...

    Springboot、SpringCloud开发脚手架,集合各种常用框架使用案例.zip

    比如利用控制反转的核心特性,并通过依赖注入实现控制反转来实现管理对象生命周期容器化,利用面向切面编程进行声明式的事务管理,整合多种持久化技术管理数据访问,提供大量优秀的Web框架方便开发等等。Spring框架...

    springboot-flowable-modeler快速开发工作流, 在线流程设计器.zip

    比如利用控制反转的核心特性,并通过依赖注入实现控制反转来实现管理对象生命周期容器化,利用面向切面编程进行声明式的事务管理,整合多种持久化技术管理数据访问,提供大量优秀的Web框架方便开发等等。Spring框架...

Global site tag (gtag.js) - Google Analytics