[原创于: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/*"/>
分享到:
相关推荐
seam_carving代码实现 图像缩放
SeamCarving的C++实现代码,使用opencv库。包含完整项目工程及测试图像,可直接使用
文章里主要是把seam在jsf中的使用经验提一下,能让更多的人了解seam的实际应用和优势
seam下一代web开发框架
SEAM 中文开发指南(官方)
seam in action 中文 english seam提供了快速开发 好长。netjava 新手学习的利器 中英文各一本,英文的好像不是很好
seam 中文文档 pdf 格式 JSF+EJB3.0快速开发框架Seam的中文版向导。。。
用Python实现的Seam Carving算法,参考资料https://karthikkaranth.me/blog/implementing-seam-carving-with-python
JBOSS SEAM组件中文手册 Seam_2.0_Reference_zh_CN
这是中文手册,Seam为持久化集成了JPA和Hibernate 3,为轻量化的异步性集成了EJB ... Seam组件可以同时作为一个Web Service进行调用,异步地从客户端JavaScript或者Google Web Toolkit,或者当然也可以直接从JSF调用。
Seam 中文开发指南 seam中文文档
个人收集整理的最全面seam文档 包括seam_reference(中、英) richfaces jsf a4j 以及seam一些其他主要功能
seam setup 输入项目原型和数据库信息 seam create-project 创建基础项目结构 seam generate 反向工程数据库,创建管理数据库的CRUD程
JBOSS.SEAM.WEB应用开发 中文版 (美)MichaelYuan.
NULL 博文链接:https://ssailyang.iteye.com/blog/289761
09年新书,seam 2.x web development,不错的一本关于seam的书,不过是英文的
Seam为 应 业务业业 义 种统 组 你的 用程序中所有的 定 了一 一的 件模型。 Seam组件可能是 态义 关关 态 有状 的,包含与几个定 良好的上下文中任何一个相 的状 , 包括长开间运行上 下文、持久化上下文、业务流程...
整理自jboss seam 中文站,压缩为chm格式,便于广大jboss seam爱好者阅读,所有版权归jboss seam中文站所有。
JBoss+JSF+Seam+EJB3的项目源码,是初学者很好的学习材料.欢迎下载
seam carving的相关代码实现