[原创于: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/*"/>
分享到:
相关推荐
4. **WS和JMS集成**: Seam还提供了与Web Services和Java Message Service的集成,便于实现分布式和异步通信。 **四、Seam 2.0新特性** 1. **Faces Context增强**: 在Seam 2.0中,对JSF的Faces Context进行了扩展,...
Seam Security是针对Java Web应用程序的安全框架,它是JBoss Seam项目的一部分,提供了全面的安全解决方案,包括...在日益增长的网络威胁环境中,采用像Seam Security这样的安全框架是确保Web应用程序安全的关键步骤。
通过阅读这份资料,你应该能掌握Seam框架如何利用语境相关的组件来优化Java EE应用的开发,以及如何在实际项目中应用这些概念。此外,你还可以了解到Seam的其他特性,如国际化、测试支持和性能优化等。总之,深入...
### Seam参考手册中文版知识点概览 #### 一、Seam简介及基本概念 ##### JBoss Seam概述 ...对于想要深入学习Seam及其在企业级应用开发中应用的读者来说,《Seam参考手册中文版》无疑是一本非常宝贵的资料。
这是中文手册,Seam为持久化集成了JPA和Hibernate 3,为轻量化的异步性集成了EJB ... Seam组件可以同时作为一个Web Service进行调用,异步地从客户端JavaScript或者Google Web Toolkit,或者当然也可以直接从JSF调用。
这部分介绍了如何在 JBoss 中使用 JSF1.2 参考实现 (RI) 来运行 Seam 应用程序。 #### 第二章:用 Seam-gen 起步 本章介绍了如何使用 Seam-gen 快速构建 Seam 应用程序。 - **准备活动**:准备开发环境,包括安装...
7. **最佳实践**:在实现基于数据库的权限验证时,应遵循一些最佳实践,如分离用户数据和权限数据,使用预定义的角色而不是为每个用户分配单独的权限,以及定期审查和更新权限设置以适应业务变化。 综上所述,Seam...
通过以上介绍,我们可以了解到JBoss Seam定时器是如何工作的,以及如何在实际项目中使用和配置它们。利用Seam的定时器功能,开发者可以轻松地实现复杂的应用程序自动化,提高效率并减少手动干预的需求。
在实现省市区联动选择时,Seam框架可以有效地管理组件之间的交互和状态,使得代码更加简洁和高效。 1. **XML数据结构解析** 提到的三个XML文件分别代表省份、城市和区县的数据。例如,`Provinces.xml`可能包含了...
在这个初学者练习项目中,"添加"功能可能涉及创建一个新的实体对象,填充其属性,然后通过DAO或Service层将其保存到数据库。"查询"功能可能有多种实现方式,比如根据特定条件筛选数据并显示在JSF页面上,或者是提供...
3. CDI(Contexts and Dependency Injection):虽然Seam 2.0在Java EE 6之前发布,但它已经实现了CDI的前身,即Seam上下文和依赖注入。这使得开发者可以方便地管理对象的生命周期和依赖关系。 二、Seam 2.0的主要...
5. **开发实践**:提供实际案例,演示如何在项目中实施Seam和JSF,以提升开发效率和应用性能。 6. **部署与优化**:分享关于Seam应用在JBoss AS/WildFly等应用服务器上的部署技巧,以及性能调优的方法。 通过学习...
总之,Seam项目是一个强大的框架,旨在提供一个统一的开发平台,简化Java EE应用的复杂性,而"seam-open18-phase2"则是这个框架在特定版本和开发阶段的体现,具有高度的灵活性和扩展性,为开发者带来了高效的开发...
在阅读《Seam in Action》这本书时,读者会逐步学习到如何配置和搭建Seam环境,创建Seam项目,设计组件,处理事件,以及进行数据访问和安全控制等方面的知识。通过实际案例,书中还展示了如何利用Seam解决复杂的企业...
**JBoss Seam:简化Web开发的强大框架** JBoss Seam是一个全面的Java EE开发框架,它旨在简化企业级Web应用程序的构建过程。与AppFuse相比,Seam提供了更简单、更高效的开发体验,尤其是在配合JBoss应用服务器进行...
JBoss Seam是一个全面的企业级Java框架,主要用于简化JavaServer Faces(JSF)和Java Persistence API(JPA)的开发。...这个特定版本的Seam已经在多个实际项目中经过验证,确保了稳定性和可靠性。
Seam 是一个开源的Java框架,专为Java EE(企业版)平台设计,旨在简化企业级Web应用的开发。这个框架结合了模型-视图-控制器(MVC)架构、组件化开发、事件驱动和依赖注入等概念,使得开发者能够更高效地构建复杂的...
本文档实例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拥有活跃的开发者社区,提供丰富的文档、示例代码和教程,有助于初学者快速上手。社区成员的贡献不断推动着encore的改进和更新,保证了其技术的先进性和实用性。 综上所述,JBoss ...