`
1028826685
  • 浏览: 939040 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类

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

    博客分类:
  • Web
 
阅读更多
  使用JBoss、EJB3.0、开发WebService和客户端:
1、 首先我们先建立Webservice:

第一步:首先建立一个普通的Java项目并且导入G:\javaEEServers\jboss-4.2.3.GA-jdk6\jboss-4.2.3.GA\client下的所有*.jar文件
第二步:建立EJB Bean接口如下:
public interface OrderService {
public String getUserName(String name);
public Order getOrder(String orderid);
public List<Order> getOrders();
}
第三步:建立实现这个EJB Bean接口实现类
@Stateless //这里指定Bean的会话状态
@Remote(OrderService.class)//远程接口
//修改WebService中的一些属性方法如下
@WebService(targetNamespace="htttp://www.liyong.com"//名字空间
,name="OrderService"//portType 的name
,serviceName="OrderServiceBean")//修改服务的名称
public class OrderServiceBean implements OrderService {


//需要把某个方法发布为Webservice在其前面加上@WebMethod其他没有加的默认不发布问Webservice方法

@Override
public Order getOrder(String orderid) {
//这里只是模拟数据,可从数据库中得到数据
Order order=new Order();
order.setOrderid(orderid);
order.setName("小李");
return order;
}

@Override
public List<Order> getOrders() {
List<Order> orders=new ArrayList<Order>();

Order order1=new Order();
order1.setOrderid("111");
order1.setName("小张");
Order order2=new Order();
order2.setOrderid("222");
order2.setName("小王");

orders.add(order1);
orders.add(order2);
return orders;

}
@Override
public String getUserName(String name) {

return name;
}

}
第四步:使用ANT来编译、发布我们的EJB Bean  build.xml
<?xml version="1.0"?>

<!-- ======================================================================= -->
<!-- EJB3 HelloWorld build file                                                       -->
<!-- ======================================================================= -->

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

<property environment="env" />
<property name="app.dir" value="${basedir}" />
<property name="src.dir" value="${app.dir}" />
<property name="jboss.home" value="${env.JBOSS_HOME}" />
<property name="jboss.server.config" value="default" />
<property name="build.dir" value="${app.dir}\build" />
<property name="build.classes.dir" value="${build.dir}\classes" />

<!-- Build classpath -->
<path id="build.classpath">
<fileset dir="${jboss.home}\client">
<include name="*.jar" />
</fileset>
<pathelement location="${build.classes.dir}" />
</path>

<!-- =================================================================== -->
<!-- Prepares the build directory                                        -->
<!-- =================================================================== -->
<target name="prepare" depends="clean">
<mkdir dir="${build.dir}" />
<mkdir dir="${build.classes.dir}" />
</target>

<!-- =================================================================== -->
<!-- Compiles the source code                                            -->
<!-- =================================================================== -->
<target name="compile" depends="prepare" description="编绎">
<javac srcdir="${src.dir}" destdir="${build.classes.dir}" debug="on" deprecation="on" optimize="off" includes="com/**">
<classpath refid="build.classpath" />
</javac>
</target>

<target name="ejbjar" depends="compile" description="创建EJB发布包">
<jar jarfile="${app.dir}\HelloWorld.jar">
<fileset dir="${build.classes.dir}">
<include name="com/**/*.class" />
</fileset>
</jar>
</target>

<target name="deploy" depends="ejbjar">
<copy file="${app.dir}\HelloWorld.jar" todir="${jboss.home}\server\${jboss.server.config}\deploy" />
</target>

<!-- =================================================================== -->
<!-- Cleans up generated stuff                                           -->
<!-- =================================================================== -->
<target name="clean">
<delete dir="${build.dir}" />
<delete file="${jboss.home}\server\${jboss.server.config}\deploy\HelloWorld.jar" />
</target>

</project>

第五步:发布我们的EJB Bean --->之前开启JBoss服务

第六步:编写我们的WebServiceClient
我们使用wsimport工具的Ant任务类生成辅助类 build.xml
<?xml version="1.0" encoding="UTF-8"?>
<project name="WebServiceClient" 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
//这里的"http://...."可以再JBoss客户端得到
//http://localhost:8080/jbossws/services
wsdl="http://127.0.0.1:8080/HelloWorld/OrderServiceBean?wsdl"
    sourcedestdir="${src.dir}" package="com.foshanshop.ws.client" keep="true"
    verbose="true" destdir="${basedir}/bin"/>
    </target>
</project>
第七步:编译生成辅助类 这是可以看到我们的Src目录中生成了许多文件
第八步:
我们编写单元测试来调用Webservice的代码
public class Test {

@BeforeClass
public static void setUpBeforeClass() throws Exception {
}

@org.junit.Test
public void getOrder()
{
OrderServiceBean orderServiceBean =new OrderServiceBean();
OrderService order=orderServiceBean.getOrderServicePort();
Order order2=order.getOrder("333");
System.out.println(order2.getOrderid()+order2.getName());
}

}
分享到:
评论

相关推荐

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

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

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

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

    EJB3.0入门图文教程

    比如,`@WebService`用于标记Web服务,`@TransactionAttribute`用于定义事务管理策略,`@Inject`用于依赖注入等。这些注解让代码更具可读性和可维护性。 ### JPA(Java Persistence API) EJB3.0还引入了JPA,它是...

    EJB3.0 的两本书

    - EJB 3.0允许Bean直接暴露为Web服务,使用`@WebService`注解,简化了服务端开发。 10. **测试与调试** - EJB 3.0支持单元测试和集成测试,可以单独测试Bean,提高了代码质量。 这两本书的内容可能涵盖了以上...

    简易EJB3.0教程

    本教程将深入讲解EJB3.0的核心概念和关键组件,包括Entity Beans、Message-Driven Beans(MDB)以及容器的使用方法,同时也涉及事务管理和Web服务的集成。 **1. Entity Beans** Entity Beans是EJB中的持久化对象,...

    ejb3.0入门图文教程

    1. EJB 3.0可以轻松地与Web服务结合,通过JAX-WS(Java API for XML Web Services)提供SOAP服务。 2. `@WebService`注解将Bean转换为Web服务,`@WebMethod`标记服务方法。 八、EJB 3.0的优势 1. 简化的编程模型:...

    ejb3.0实例教程及源码

    `@WebService`注解还可以将会话bean直接暴露为Web服务。 4. **消息驱动bean**:EJB3.0通过`@MessageDriven`注解实现了对JMS(Java Message Service)的支持,使得bean可以作为消息消费者,处理异步通信。 5. **...

    ejb3.0实例教程

    在“ejb3.0实例教程”中,你将通过一系列实践示例掌握这些概念,了解如何创建、配置、部署和测试EJB 3.0应用。这个教程将帮助你成为一名熟练的Java EE开发者,能够利用EJB 3.0的强大功能构建高效、可靠的企业级解决...

    EJB3.0

    EJB 3.0也支持Web服务,通过`@WebService`注解,可以直接将Bean暴露为SOAP或RESTful服务。 9. **集成性** EJB 3.0与Java EE其他组件(如JMS、JPA、JSF等)的集成更加紧密,使得构建复杂的企业级应用更为方便。 ...

    EJB3规范---文档

    7. **ejb-3_0-pfd-spec-simplified.pdf**:这份文档重点讲解EJB 3.0的简化模型,如何通过注解实现更简洁的编码风格,以及如何利用依赖注入和容器服务来提高开发效率。 理解并熟练掌握EJB 3.0规范,对于开发高效、...

    ejb-3_0最新规范

    EJB 3.0允许直接将Bean暴露为Web服务,通过@WebService注解,开发者可以轻松地创建SOAP服务。 9. **持续集成和测试** EJB 3.0的测试框架允许在没有EJB容器的情况下对Bean进行单元测试,通过使用@EJB(lookup="")...

    EJB3学习入门.zip

    EJB3.0可以轻松地暴露为Web服务,通过`@WebService`注解,使得服务可以被SOAP或RESTful方式访问。 7. **EJB与Spring框架的对比** 虽然EJB3.0的许多特性与Spring框架相似,但两者定位不同。EJB更偏向于企业级应用...

    Enterprise+Java+beans+3.0+第五版

    4. **Web服务**:EJB 3.0版本也加强了与Web服务的集成,支持SOAP和RESTful风格的服务。通过JAX-WS和JAX-RS,EJB组件可以方便地暴露为Web服务,或消费外部服务。 5. **容器管理的事务(CMT)**:EJB容器自动管理事务...

Global site tag (gtag.js) - Google Analytics