开发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>

 

 

从半导体物理到实战:手把手教你测量MOS管体二极管的Vf和Trr 本文深入探讨了MOSFET体二极管的关键参数测量方法,重点讲解了正向压降(Vf)和反向恢复时间(Trr)的测量原理与实战步骤。通过搭建测试平台,使用万用表和示波器等工具,手把手指导如何量化这些影响开关损耗和效率的核心参数,并对比分析了硅基与碳化硅(SiC)器件在体二极管性能上的显著差异。 阅读详情

相关推荐

FPGA篮球计分器:从需求分析到模块化实现的实战指南

本文详细介绍了FPGA篮球计分器的设计与实现,涵盖需求分析、模块化设计及实战调试。重点解析了24秒精确倒计时、12分钟比赛计时、比分统计和数码管显示等核心模块的Verilog实现,提供了按键消抖、状态机设计和BCD码处理等关键技术细节,帮助开发者掌握FPGA数字系统设计方法。

sql99的博客 190

开发EJB容器模型WEB服务(EJB WebService)

最近在学习EJBWebServce 如何结合到一起的,发现一篇好的文章,本想转载,但是毕竟是作者辛苦的结果,所以给出了一个连接. http://8366.iteye.com/blog/440338

yongding10的专栏 879

2、深入了解 EJB 3.2 架构与 CDI 服务

本文深入介绍了 EJB 3.2 架构和 CDI 服务,探讨了其在企业级应用开发中的核心特性和实际应用场景。文章涵盖了 EJB 的发展历程、组件模型容器功能以及与 JPA、Web 服务和 CDI 的协同工作方式,并通过具体代码示例展示了如何利用这些技术构建高效、可扩展和安全的企业级解决方案。

prometheus5watch的博客 131

EJB开发web service

服务端的开发EJB就行服务开发是非常简单的,EJB可以把无状态会话bean通过@WebService注解瞬间暴露为web服务。例子@Stateless@Remote(JsunSer.class)@WebServicepublic class JsunSerImpl implements JsunSer{@WebMethod public String run

孙健的专栏 697

EJB_开发EJB容器模型WEB服务

开发EJB容器模型WEB服务 WEB服务          Web服务也是一种分布式技术,它与EJB最大的不同是,Web服务属于行业规范,可以跨平台及语言。而EJB属于Java平台的规范,尽管理论上可以跨平台,但实现起来比较复杂,所以其应用范围局限在了Java平台。它们两者的偏重点不一样,Web服务偏重的是这个系统对外提供什么功能,而EJB偏重的是如何使用一个个组件组装这些功能。就好比一个硬

jerome 1858

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

  JAX-WS   JAX-WS规范是一组XML web services的JAVA API。JAX-WS允许开发者可以选择RPC-oriented或者message-oriented 来实现自己的web services。  在 JAX-WS中,一个远程调用可以转换为一个基于XML的协议例如SOAP。在使用JAX-WS过程中,开发者不需要编写任何生成和处理SOAP消息的代码。JAX-WS的...

a8366的专栏 232

Web Service简介及开发实例

文章分类:JavaEye 关键字: web service jax-ws saaj jaxb java Web Service简介及开发实例 作者:岳乡成 本文档实例Dome基于的技术是:JSF  +  Jboss-seam-2.1.1.GA.  +  Jboss 4.2.3 GA  +  EJB 3.0  +  Jboss ESB  +  My-SQL-5.0.8  +  JDK 1.6。

Bing 的专栏 621

什么是J2EE

那么到底什么是J2EE呢?从整体上讲,J2EE是使用Java技术开发企业级应用的一种事实上的工业标准(Sun公司出于其自身利益的考虑,至今没有将Java及其相关技术纳入标准化组织的体系),它是Java技术不断适应和促进企业级应用过程中的产物。目前,Java平台有三个版本:适用于小型设备和智能卡的J2ME(Java 2 Platform Micro Edition)、适用于桌面系统的J2SE和适用于

jlusdy的学习园地 1249

30、Java Web开发EJB应用与数据验证策略

本文深入探讨了在Java Web开发中应用EJB技术进行业务规则处理和数据验证的策略。详细分析了无状态会话Bean在验证逻辑中的作用、模型变更与EJB的整合、控制器和视图的调整、JNDI上下文管理优化,以及客户端和服务器端验证的实现方式。通过对比不同验证方式的优劣,提出了从业务规则集中管理到远程与本地对象使用的最佳实践,并展望了未来发展趋势。文章旨在帮助开发人员构建高性能、可维护性强、用户体验良好的Web应用。

tech5的博客 81

EJB spring hibernate struct

EJB  EJB是sun的服务器端组件模型,最大的用处是部署分布式应用程序,类似微软的.com技术。凭借java跨平台的优势,用EJB技术部署的分布式系统可以不限于特定的平台。  EJB (Enterprise JavaBean)是J2EE的一部分,定义了一个用于开发基于组件的企业多重应用程序的标准。其特点包括网络服务支持和核心开发工具(SDK)。  在J2EE 里,Enterpri

myaccountlfz的专栏 700

J2EE的体系结构 - 简单介绍

 J2EE 即Java2平台企业版,它提供了基于组件的方式来设计、开发、组装和部署企业应用。J2EE使用多层分布式的应用模型,这个多层通常通过三层或四层来实现:          1、客户层,运行在客户计算机上的组件。         2、Web 层,运行在J2EE服务器上的组件。         3、业务层,同样是运行在J2EE服务器上的组件。         4、企业信

itm的专栏 1022

对J2EE的理解

J2EE是一个标准,包含一系列基于Java的技术规范以及相关的接口定义,能够更统一、有效的进行企业应用开发。 遵循J2EE标准的框架,是指实现了J2EE包含的技术规范和接口,能够按照J2EE规定的方式工作。 jboss、weblogic、websphere是基于J2EE规范的产品实现 Tomcat是实现了规范中Servlet容器部分,而不象其他产品一样实现了EJB容器

可一的专栏 1622

EJB3.0的目标

很多Java开发人员不了解EJB,而实际应用中,普通的网站开发没有必要而且不应该应用EJB,企业级的项目才有应用EJB的需求。EJB成为Java学习中一个高端领域,而其应用领域的限制,又有太多的人对它望而却步。除去EJB的应用范围问题外,EJB1.0、EJB2.X自身的缺陷也非常明显:1、性能不佳 越使用 EJB,越让人气馁,虽然不断地优化和调校性能,但总是无法让人感受到性能上的优势。而为提升性能,硬件支出的成本也相对增加了许多,让开发使用单位面临到更多成本支出的压力与无奈。2、开发不易虽然Java

.NET博文收藏 239

J2EE体系结构

J2EE 即Java2平台企业版,它提供了基于组件的方式来设计、开发、组装和部署企业应用。J2EE使用多层分布式的应用模型,这个多层通常通过三层或四层来实现:          1、客户层,运行在客户计算机上的组件。          2、Web 层,运行在J2EE服务器上的组件。          3、业务层,同样是运行在J2EE服务器上的组件。          4、企业信息系统层

llh1003917674的博客 528

EJBJavaBean的区别

什么是EJBEJB是sun的服务器端组件模型,最大的用处是部署分布式应用程序当然,还有许多方式可以实现分布式应用,类似微软的.net技术。凭借java跨平台的优势,用EJB技术部署的分布式系统可以不限于特定的平台。EJB (Enterprise JavaBean)是J2EE的一部分,定义了一个用于开发基于组件的企业多重应用程序的标准。其特点包括网络服务支持和核心开发工具(SDK)。 在J2E

1万+

(转)java笔试题1

JAVA相关基础知识 1、面向对象的特征有哪些方面   1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。 2.继承: 继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现...

weixin_34281477的博客 126

【更新至2024年】2009-2024年上市公司华证esg评级、评分年度数据(含细分项).xlsx

2009-2024年上市公司华证esg评级、评分年度数据(含细分项)1、时间:2009-2024年2、来源:整理自wind3、指标:证券代码、时间、证券简称、综合评级、综合赋值、综合得分、E评级、E得分、S评级、S得分、G评级、G得分、证监会行业新、同花顺行业新、申万行业4、范围:上市公司5、样本量:5.2W+

上一篇: 开发消息驱动bean(Queue/Topic)
下一篇: js获取对象的绝对坐标
_frank
博客等级 码龄17年 8粉丝 403原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值