随笔 - 170  文章 - 536  trackbacks - 0
<2006年10月>
24252627282930
1234567
891011121314
15161718192021
22232425262728
2930311234

常用链接

我参与的团队

随笔分类(103)

搜索

  •  

积分与排名

  • 积分 - 410615
  • 排名 - 134

最新评论

阅读排行榜

1. 基于 JWS 的 Web Services 的发布 (直接利用 axis 包里面的 webapp)
 a. 写一个 Java 文件(Hello.java),含有需要暴露为 WS 的方法,改名为 .jws (Hello.jws)
  b. 把该文件放到发布目录 webapps/axis
  c. WSDL 
http://localhost:8080/axis/Hello.jws?wsdl
  d. 使用 WSDL2Java 把 WSDL 对应的 WS 转换成直接可用的 Java 文件

2. 定制发布(Service 方式)
配置文件 <webapp>/WEB-INF/server-config.wsdd, 将所需要暴露的 WS 方法写在里面。
该方法就像发布 Servlet,JWS 就像发布 JSP

JWS 方法使我们必须将已有类的源代码发布出来,并且会将里面所有的 public 方法暴露出来

3. 处理复杂类型参数和返回值
Axis 要求复杂类型的对象编写必须符合 JavaBean 的规范。
使用 JWS 处理复杂类型和过去没有区别,系统会自动完成。
使用 Service 方式需要添加类型的映射配置 (typeMapping)
WSDL2Java生成的文件多了 getTypeDesc, getSerializer, getDeserializer 等

4. MessageContext
通过 Message Context 可以获取 AxisEngine 实例的引用(getAxisEngine()),请求和回应的消息(getRequestMessage(), getResponseMessage()),验证信息,以及 Servlet 规范中的实例引用等(我们可以获取类  HTTPConstants 中所有以 MC_ 开头的常量对应的信息,用 getProperty())

5. Web 服务会话管理
在 Web 服务中我们可以借助 HTTP 以及 HTTPCookie 来处理会话信息。
对于服务端来说,只需要通过 MessageContext 实例获取 Session 对象即可进行会话级的数据保存或者读取。
在代码中需要设定 setMaintainSession(true)

6. 保护 Web 服务
 a. 使用HTTPS传输方式 该方式需要在Web服务器上进行配置同时需要客户端的支持。该措施有效的防止数据在网络传输过程中被窥视。
 b. 重命名Axis已有的一些名字,例如AdminService、AxisServlet,删除Axis目录下一些无用的程序,例如happyaxis.jsp以及一些无用的jar包等。
 c. 通过设置axis.enableListQuery的值为false来停止AxisServlet列出所有服务的功能。
 d. 禁止自动生成WSDL的功能
 e. 使用过滤器来增加一些验证功能,例如客户端的地址等。

参考:
http://www-128.ibm.com/developerworks/cn/webservices/ws-deepaxis/
http://www-128.ibm.com/developerworks/cn/webservices/ws-startaxis/index.html

posted on 2006-10-26 14:01 steady 阅读(2029) 评论(0)  编辑  收藏 所属分类: 技术随笔

只有注册用户登录后才能发表评论。


网站导航: