2006-10-31
用JSR181驱动SpringSide Web Services
和小白一起探讨,觉得如果XFire用JSR181去驱动,一定会非常简洁。
从JSR175发展过来的JSR181,早期实现于Weblogic Workshop 7.1,我们
对@WebService, @WebMethod这些标记的最初理解是将Java类通过Annotation
直接编译成Weblogic的JWS,BEA作为JSR181标准的Leader,很大胆地将
JSR181用于Weblogic 9.1,去驱动Weblogic下一代的WebService框架。
SpringSide团队开始选用XFire作为SS 1.0的时候,已经充分考虑Xfire在JSR181
支持上的优势(对比于Axis)。
作为Spring Web Services的一个最佳实践,我们已经开始考虑基于JSR181驱动的
Web Service框架,我们一致认为JSR181能够为架构解耦提供非常切实有效的
途径。
在下一个SS2.0版本中,我们考虑提供以下的DEMO:
1,基于Security的JSR181 DEMO
2,基于Conversation的JSR181 DEMO
3,基于Transaction的JSR181 DEMO
4,基于Context的JSR181 DEMO
另外,在框架考虑上,会使用JSR标记Handlers的方式(配置文件也是可以,但放在
Annotation,带来的是更好的易读性)
package
examples.webservices.handlers;
@WebService ()
@SOAPMessageHandlers ( {
@SOAPMessageHandler (
className = " examples.webservices.soap_handlers.simple.ServerHandler1 " ),
@SOAPMessageHandler (
className = " examples.webservices.soap_handlers.simple.ServerHandler2 " )
} )
public class HandlersImpl {
// Your Code
}
@WebService ()
@SOAPMessageHandlers ( {
@SOAPMessageHandler (
className = " examples.webservices.soap_handlers.simple.ServerHandler1 " ),
@SOAPMessageHandler (
className = " examples.webservices.soap_handlers.simple.ServerHandler2 " )
} )
public class HandlersImpl {
// Your Code
}
另外,在SS2.0的下一个版本中,提供SOAPBinding,可以设置其Style为Document或者RPC,Encode和Literal也是能够定制的(跟Workshop一样方便),也是一件简单的事情:
@WebService
@SOAPBinding(style=SOAPBinding.Style.DOCUMENT,
use=SOAPBinding.Use.LITERAL,
parameterStyle=SOAPBinding.ParameterStyle.BARE)
public class EchoService
{
@WebMethod(action="echo")
@WebResult(targetNamespace=“http://www.springside.org.cn”, name="echoResult")
public String echo(
@WebParam(targetNamespace=“http://www.springside.org.cn”, name="echoMsg") String msg){
return msg;
}
}同时,考虑很多人喜欢搞作SOAP Header,利用它来做一些业务标记处理,我们会支持下面的方式
@WebMethod
public String echo(
@WebParam(name="myHeader",
header=true,
mode=WebParam.Mode.INOUT) StringHolder header,
String msg){
String ret = header.value + ", " + msg;
header.value = "got it";
return ret;
}
来自:public String echo(
@WebParam(name="myHeader",
header=true,
mode=WebParam.Mode.INOUT) StringHolder header,
String msg){
String ret = header.value + ", " + msg;
header.value = "got it";
return ret;
}
[http://www.blogjava.net/security/archive/2006/10/31/Spring_JSR181_XFire_WebService.html]
发表评论
- 浏览: 101491 次
- 来自: www.pgp.org.cn

- 详细资料
搜索本博客
最近加入圈子
最新评论
-
0Day发布Confluence 2.1.4 ...
请给我发解压密码可以不 liubaoshan_898@163.com 谢谢了! ...
-- by liubaoshan -
BEA和IBM联合发布Apache ...
原创?不错 事实总是和期望有出入。
-- by careprad -
[原创]国内大部分的USBK ...
引用
-- by mytechssl -
0Day发布Confluence 2.1.4 ...
bxvs888@163.com
-- by gaoyuntao2005 -
[转载]2005年中国软件产 ...
对这些数据没兴趣,即不是这些企业的老板,也不是税务部门的
-- by czwangelo






评论排行榜