`
happylo
  • 浏览: 47195 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

在Seam项目中快速实现Web Service

阅读更多

[原创于:http://happydev.iteye.com]

 

以前写Web Service一直是用Axis来做,用了Seam来开发Web后,这次为了项目的简洁,决定采用“在Seam项目中写JbossWS”的方案来实现WebService。

 

第一步:实现基于POJO的JBossWS Web Service

写基于POJO的Web Service实现:

 

@WebService
public class TestService {

	@WebMethod
	public String test(){
                        //....
	}
}

 

如果在Web Service中要使用到Seam的会话,则需在POJO代码所在位置的META-INF目录中加上standard-jaxws-endpoint-config.xml

 

<jaxws-config xmlns="urn:jboss:jaxws-config:2.0" 
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
              xmlns:javaee="http://java.sun.com/xml/ns/javaee"
              xsi:schemaLocation="urn:jboss:jaxws-config:2.0 jaxws-config_2_0.xsd">
   <endpoint-config>
      <config-name>Seam WebService Endpoint</config-name>
      <pre-handler-chains>
         <javaee:handler-chain>
            <javaee:protocol-bindings>##SOAP11_HTTP</javaee:protocol-bindings>
            <javaee:handler>
               <javaee:handler-name>SOAP Request Handler</javaee:handler-name>
               <javaee:handler-class>org.jboss.seam.webservice.SOAPRequestHandler</javaee:handler-class>
            </javaee:handler>
         </javaee:handler-chain>
      </pre-handler-chains>
   </endpoint-config>
</jaxws-config>

 

 

在web.xml中注册EndPoint

   <!-- Web Service -->
   <servlet>
      <servlet-name>TestService Servlet</servlet-name>
      <servlet-class>test.TestService</servlet-class>
      <load-on-startup>1</load-on-startup>
   </servlet>
    
   <servlet-mapping>
      <servlet-name>TestService Servlet</servlet-name>
      <url-pattern>/TestService</url-pattern>
   </servlet-mapping>

 

第二步:使得Web Service能够访问Seam组件

 

如果就上面的代码,在Web Service中是无法访问Seam组件的,会提示没有Seam环境。

在WebService中访问Seam组件:

@WebService
public class TestService {

	@WebMethod
	public String test(){
		TestSeamComp comp = (TestSeamComp) Component.getInstance("testSeamComp");
		return comp.test();
	}
}

 

@Name("testSeamComp")
@AutoCreate
public class TestSeamComp {

	
	public String test(){
		return "from testSeamComp";
	}
}

 

如果就使用以上的代码,会抛出Seam环境找不到的异常。

需要在components.xml中做如下配置:

中声明中增加:

xmlns:web="http://jboss.com/products/seam/web"

http://jboss.com/products/seam/web http://jboss.com/products/seam/web-2.0.xsd

完整的components.xml头大概如下:

<components xmlns="http://jboss.com/products/seam/components"
            xmlns:core="http://jboss.com/products/seam/core"
            xmlns:persistence="http://jboss.com/products/seam/persistence"
            xmlns:drools="http://jboss.com/products/seam/drools"
            xmlns:bpm="http://jboss.com/products/seam/bpm"
            xmlns:security="http://jboss.com/products/seam/security"
            xmlns:mail="http://jboss.com/products/seam/mail"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xmlns:web="http://jboss.com/products/seam/web"
            xsi:schemaLocation=
                "http://jboss.com/products/seam/core http://jboss.com/products/seam/core-2.0.xsd 
                 http://jboss.com/products/seam/web http://jboss.com/products/seam/web-2.0.xsd
                 http://jboss.com/products/seam/persistence http://jboss.com/products/seam/persistence-2.0.xsd 
                 http://jboss.com/products/seam/drools http://jboss.com/products/seam/drools-2.0.xsd
                 http://jboss.com/products/seam/bpm http://jboss.com/products/seam/bpm-2.0.xsd
                 http://jboss.com/products/seam/security http://jboss.com/products/seam/security-2.0.xsd
                 http://jboss.com/products/seam/mail http://jboss.com/products/seam/mail-2.0.xsd
                 http://jboss.com/products/seam/components http://jboss.com/products/seam/components-2.0.xsd">

 

 

再加上:

<web:context-filter url-pattern="/TestService/*"/>

 

 

 

 

分享到:
评论
3 楼 genghaixu 2009-02-25  
请问 要是需要配置多个webservice 应当如何配置呢?
2 楼 dlbaba 2008-12-01  
想学学,楼主都做过哪些webservice成型的成品啊??
1 楼 dlbaba 2008-12-01  
  不错吗 比seam文档详细多了 哈哈

相关推荐

    JBOSS SEAM组件中文手册

    4. **WS和JMS集成**: Seam还提供了与Web Services和Java Message Service的集成,便于实现分布式和异步通信。 **四、Seam 2.0新特性** 1. **Faces Context增强**: 在Seam 2.0中,对JSF的Faces Context进行了扩展,...

    Seam - 语境相关的组件

    通过阅读这份资料,你应该能掌握Seam框架如何利用语境相关的组件来优化Java EE应用的开发,以及如何在实际项目中应用这些概念。此外,你还可以了解到Seam的其他特性,如国际化、测试支持和性能优化等。总之,深入...

    seam参考手册中文版

    ### Seam参考手册中文版知识点概览 #### 一、Seam简介及基本概念 ##### JBoss Seam概述 ...对于想要深入学习Seam及其在企业级应用开发中应用的读者来说,《Seam参考手册中文版》无疑是一本非常宝贵的资料。

    jboss seam

    这是中文手册,Seam为持久化集成了JPA和Hibernate 3,为轻量化的异步性集成了EJB ... Seam组件可以同时作为一个Web Service进行调用,异步地从客户端JavaScript或者Google Web Toolkit,或者当然也可以直接从JSF调用。

    Seam Framework 2.0 Reference中文版

    这部分介绍了如何在 JBoss 中使用 JSF1.2 参考实现 (RI) 来运行 Seam 应用程序。 #### 第二章:用 Seam-gen 起步 本章介绍了如何使用 Seam-gen 快速构建 Seam 应用程序。 - **准备活动**:准备开发环境,包括安装...

    接上篇(seam登录时的权限验证)之“seam基于数据库的权限验证”

    7. **最佳实践**:在实现基于数据库的权限验证时,应遵循一些最佳实践,如分离用户数据和权限数据,使用预定义的角色而不是为每个用户分配单独的权限,以及定期审查和更新权限设置以适应业务变化。 综上所述,Seam...

    jboss-seam定时器

    通过以上介绍,我们可以了解到JBoss Seam定时器是如何工作的,以及如何在实际项目中使用和配置它们。利用Seam的定时器功能,开发者可以轻松地实现复杂的应用程序自动化,提高效率并减少手动干预的需求。

    基于Seam框架实现省、市、区县的联动选择

    在实现省市区联动选择时,Seam框架可以有效地管理组件之间的交互和状态,使得代码更加简洁和高效。 1. **XML数据结构解析** 提到的三个XML文件分别代表省份、城市和区县的数据。例如,`Provinces.xml`可能包含了...

    jsf seam hibernate 初学者练习

    在这个初学者练习项目中,"添加"功能可能涉及创建一个新的实体对象,填充其属性,然后通过DAO或Service层将其保存到数据库。"查询"功能可能有多种实现方式,比如根据特定条件筛选数据并显示在JSF页面上,或者是提供...

    jboss-seam2.0文档.rar

    3. CDI(Contexts and Dependency Injection):虽然Seam 2.0在Java EE 6之前发布,但它已经实现了CDI的前身,即Seam上下文和依赖注入。这使得开发者可以方便地管理对象的生命周期和依赖关系。 二、Seam 2.0的主要...

    jboss seam introduce

    5. **开发实践**:提供实际案例,演示如何在项目中实施Seam和JSF,以提升开发效率和应用性能。 6. **部署与优化**:分享关于Seam应用在JBoss AS/WildFly等应用服务器上的部署技巧,以及性能调优的方法。 通过学习...

    seamproject

    总之,Seam项目是一个强大的框架,旨在提供一个统一的开发平台,简化Java EE应用的复杂性,而"seam-open18-phase2"则是这个框架在特定版本和开发阶段的体现,具有高度的灵活性和扩展性,为开发者带来了高效的开发...

    seam in action

    在阅读《Seam in Action》这本书时,读者会逐步学习到如何配置和搭建Seam环境,创建Seam项目,设计组件,处理事件,以及进行数据访问和安全控制等方面的知识。通过实际案例,书中还展示了如何利用Seam解决复杂的企业...

    jboss seam help

    **JBoss Seam:简化Web开发的强大框架** JBoss Seam是一个全面的Java EE开发框架,它旨在简化企业级Web应用程序的构建过程。与AppFuse相比,Seam提供了更简单、更高效的开发体验,尤其是在配合JBoss应用服务器进行...

    jboss-seam-2.1.1.GA.jar.zip

    JBoss Seam是一个全面的企业级Java框架,主要用于简化JavaServer Faces(JSF)和Java Persistence API(JPA)的开发。...这个特定版本的Seam已经在多个实际项目中经过验证,确保了稳定性和可靠性。

    seam 资料 资料

    Seam 是一个开源的Java框架,专为Java EE(企业版)平台设计,旨在简化企业级Web应用的开发。这个框架结合了模型-视图-控制器(MVC)架构、组件化开发、事件驱动和依赖注入等概念,使得开发者能够更高效地构建复杂的...

    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

    JBoss encore 工程 最新版

    作为开源项目,JBoss encore拥有活跃的开发者社区,提供丰富的文档、示例代码和教程,有助于初学者快速上手。社区成员的贡献不断推动着encore的改进和更新,保证了其技术的先进性和实用性。 综上所述,JBoss ...

Global site tag (gtag.js) - Google Analytics