客户端使用何种方式调用webservice服务?

知道了wsdl地址,因为参数都是基本类型,所以使用javax.xml.soap 包下的api自己发送SOAP消息,解析响应数据 。
但速度是相当的慢!!
如果使用xfire或axis2等webservice框架效率会不会有所提升?
有没有不是基于XML实现的、效率比较高的webservice调用方式?
各位前辈提提意见,小子先行谢过 :)

[quote]谢谢你的回答,有种恍然大悟的感觉!
不过因为对Hessian 不熟,找了点资料说:
服务器端必须具备以下几点:
·包含Hessian的jar包
  ·设计一个接口,用来给客户端调用
  ·实现该接口的功能
  ·配置web.xml,配好相应的servlet
  ·对象必须实现Serializable 接口
  ·对于复杂对象可以使用Map的方法传递

是不是没这几个条件就无法使用Hessian 调用了? [/quote]
通常我们不建议使用hessian call 基于 SOAP/HTTP 标准的 Web 服务,因为hessian 是基于Binary-RPC协议实现,效率比SOAP的XML方式要高.
但是通过使用 WebSphere DataPower 是可以实现 Hessian 客户端访问基于 SOAP/HTTP 标准的 Web 服务的([url]http://www.ibm.com/developerworks/cn/education/webservices/ws-datapower-hessian/index.html[/url]).

首先你现在的service client 是基于JAX-RPC 还是 JAX-WS的,建议你使用基于JAX-WS的client ,会方便很多,效率也会高点。 当然使用一些比较成熟的框架对使用性,性能方便也会有所帮助,比如CXF(和spring整合会方便一点),axis2.

关于不是基于XML的webservice , 有建议你看下最新的基于JAX-RS的webservice,Restful webservice ([url]http://cxf.apache.org/docs/jax-rs.html[/url]) . 基于Jax-ws的webservice 可以让你指定数据传输格式,支持的传输格式有 xml, jason, String.......

上面笔误,最后一句应该是居于JAX-RS的webservice 可以让你指定xml, json, String 的传输格式。

[quote]弱弱的问一句:无论如何发布的服务 ,只要知道了wsdl地址,在客户端可以使用socket,Hessian,REST,SAAJ...方式调用服务吗? [/quote]

虽说他们都是SOA架构的一种实现方式,socket, Hessian 可以call的, REST不行,对rest 来说没有WSDL的概念,它只有资源的概念。

现在主流的web service是SOAP的,aixs,aixs2,cxf等,rest是趋势,但是一般我们做应用都是基于主流的,先进的思想一般不会用于大型的项目,企业应用领域,越是大公司,技术越陈旧,要求的是稳定。
jason比xml也快不了多少,还是采用传统的方法中的一种吧

[quote]现在主流的web service是SOAP的,aixs,aixs2,cxf等,rest是趋势,但是一般我们做应用都是基于主流的,先进的思想一般不会用于大型的项目,企业应用领域,越是大公司,技术越陈旧,要求的是稳定。
jason比xml也快不了多少,还是采用传统的方法中的一种吧[/quote]这也不一定,我在一家外资银行工作,我们就在准备apply , Restful 的webservice, 新开发一律基于restful webservice, 旧的基于axis2的慢慢移植.