1。以aar包的形式发布服务
将aar发布到services目录下
aar包的内部结构为:
- META-INF
- services.xml
- samples
- quickstart
- service
- pojo
- StockQuoteService.class
2。以axiom来发布服务
3。通过adb生成服务
4。通过xmlbeans生成服务
4。通过JIBX生成服务
消息交换模式--MEP
IN-ONLY:只进不出,无response
IN-OUT:有进有出
在考虑消息交换模式的时候,还需要考虑使用同步还是异步方式,另外还需要考虑方法的参数个数
生成客户端的各种方式
方式有三种
这几种方式都使用数据帮定技术创建服务所需要的java类。
ADB:最简单的生成AXIS客户端的方法。大部分情况下,这些主要的类都会以内部类的形式创建在stub类中。ADB用起来很简单,但是有一些限制。It is not meant to be a full schema binding application, and has difficulty with structures such as XML Schema element extensions and restrictions
XMLBeans:于ADB不同,他是一个全功能的schema编译器。他没有ADB的限制。然而,他也比ADB用起来更复杂。他会产成大量的文件,编程模型,比起ADB来说不直观
JiBX:他是一个数据绑定框架。他不仅提供了WSDL-JAVA的转换,而且提供了JAVA-XML的转换。JiBX相当灵活,允许你选择类来代表你的实体,但是这个却不好作,但还句话说,如果这些都能建好,那么使用JiBX就更使用ADB一样容易。
对于简单应用来说ADB已经够用了,如果想用更加强大更加灵活的功能,那么你可能需要使用其他两种方式。
生成客户端
生成和使用客户端,取决于你使用什么方式进行生成。
服务的生成
- 白手起家,自己写自己的服务类,并访问AXIOM,创建services.xml,然后打包发布
- 将POJO发布为服务
- 从WSDL中生成服务
白手起家
这种方式虽然麻烦,而且不常用,但是却能给你最大的控制。
步骤:
创建服务类,服务类里的每个方法对应了对外暴露的一个操作,该操作的参数是一个OMElement对象。
创建服务描述文件services.xml,定义了服务类和消息的receviers
创建.aar文件
发布.aar文件到服务器