`
yangli
  • 浏览: 61876 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

xfire 客户端调用webservice注意要点

阅读更多
1.超时控制:
  1.1必要性:如果按照默认的时间去处理,不及时控制超时时间,当服务端接口或者网络出现异常时,客户端请求不能及时释放以至于到达应用服务器的最大线程后有可能会直接down掉应用服务器。 

  1.2超时类型:

  1.2.1 webservice服务端服务器挂掉或者网络异常导致无法调用服务端接口
  设置超时方法:
HttpClientParams params = new HttpClientParams();
params.setParameter(HttpClientParams.CONNECTION_MANAGER_TIMEOUT, (long)3000);     

1.2.2 当webservice服务端网络正常,但是服务接口中出现异常一直不返回结果或者很久才返回结果,这种情况不可能服务客户端不可能长时间等待,数据实时性不高,导致应用的感知度很差。
设置超时方法:
  params.setSoTimeout(1000*20);)//20秒超时抛异常
  控制socket请求通信的超时时间。捕获异常后返回相应的业务处理信息

2.客户端与接口服务端握手方式:
  如果接口传输内容数据量不大建议关闭长连接,提高接口性能。
  params.setParameter(HttpClientParams.USE_EXPECT_CONTINUE,Boolean.FALSE);//关闭长连接

3.如果接口传输数据量很大建议采用GZip压缩方式传输,提高接口性能
   在XFire中启动GZip压缩要用到一个开源的Filter:PJL Compressing Filter。这个Filter的最新版本是1.7,自1.5.0开始该工程开始构建于JDK5.0,因此在JDK1.4环境下只能使用1.4.6(这个版本会与高版本同步更新)。下载地址:http://sourceforge.net/projects/pjl-comp-filter/

配置方法:
服务端启动GZip:在服务端启动GZip只需将PJL Compressing Filter下的jar包(用到的)导入到web的/WEB-INF/lib目录下。并在web.xml文件中增加如下配置:
注意:此filter必须放在servlet前面
  <filter>
              <filter-name>CompressingFilter</filter-name>
              <filter-class>
                     com.planetj.servlet.filter.compression.CompressingFilter
              </filter-class>
              <init-param>
                     <param-name>debug</param-name>
                     <param-value>false</param-value>
              </init-param>
              <init-param>
                     <param-name>statsEnabled</param-name>
                     <param-value>true</param-value>
              </init-param>
       </filter>

       <filter-mapping>
              <filter-name>CompressingFilter</filter-name>
              <url-pattern>/*</url-pattern>
       </filter-mapping>

客户端启用GZip:客户端启动GZip只要将客户端的GZip的属性设为true却可
// 启动response压缩
client.setProperty(CommonsHttpMessageSender.GZIP_RESPONSE_ENABLED,Boolean.TRUE);
// 启动request压缩
client.setProperty(CommonsHttpMessageSender.GZIP_REQUEST_ENABLED,Boolean.TRUE);

// 同时启动response和request压缩
client.setProperty(CommonsHttpMessageSender.GZIP_ENABLED,Boolean.TRUE);
注意,当服务端没有启用GZip,客户端启用请求GZip压缩时,会产生SOAP解析错误,如果服务端启动了GZip压缩功能,客户端是否启用GZip都没有影响。


分享到:
评论

相关推荐

    Xfire客户端调用webservice jar包

    在这个场景下,"Xfire客户端调用webservice jar包"是指Xfire客户端为了实现某些功能,如获取服务器数据或更新信息,需要调用Web服务的接口。这些接口通常以Java的jar包形式提供,方便开发者集成到他们的应用中。 ...

    spring xfire 客户端实例

    要创建一个Spring XFire客户端实例,首先我们需要配置Spring的应用上下文。在XML配置文件中,我们需要定义一个`XFireClientBean`,并指定服务的WSDL(Web Service Definition Language)地址。例如: ```xml ...

    java xfire调用webservice

    Java XFire调用WebService是一种在Java应用程序中与远程服务交互的方式。XFire是Apache CXF项目的前身,它是一个用于构建和开发Web服务的框架。在本文中,我们将深入探讨如何使用Java XFire来调用本地及远程的...

    spring+xfire( 编写webservice完整配置+案例)

    Spring 和 XFire 是一个经典的组合,用于在Java应用程序中创建和消费Web服务。Spring作为一个强大的框架,提供了全面的依赖注入和面向切面编程能力,而XFire是早先的Web服务实现,它允许开发者轻松地将Java接口转换...

    java用XFire开发调用webService例子知识.pdf

    在Java开发中,使用XFire框架可以轻松地创建和调用Web服务。XFire是由codeHaus组织提供的一个开源框架,它有效地连接了POJO(Plain Old Java Object)与SOA(Service-Oriented Architecture)之间的桥梁。其主要优势...

    xfire客户端jar包

    在描述中提到的"Demo样板",通常是一个预配置的示例程序,用于演示如何使用xfire客户端来连接和调用Web服务。然而,由于每个Web服务都有其特定的WSDL(Web服务描述语言)文件,定义了服务的接口和操作,因此这个Demo...

    XFire框架实现WebService(二)

    要消费由XFire发布的Web服务,我们可以使用XFire的客户端API或者生成的客户端Stubs。通过指定服务的WSDL(Web服务描述语言)URL,我们可以动态地创建一个代理类来调用远程服务。 8. **测试与调试**: 一旦服务...

    XFire整合spring webservice

    要从客户端调用这个Web服务,你可以使用Spring的`JaxWsSoapClientProxyFactoryBean`来创建一个代理对象,然后通过代理对象调用服务方法。 ```xml ``` ```java MyService myService = (MyService)...

    Java编程中使用XFire框架调用WebService程序接口

    要开始使用XFire,首先需要下载XFire的库文件。可以从官方网站(虽然现在可能已经废弃)或者通过Maven等依赖管理工具获取。在项目中添加这些库后,就可以开始创建Web服务客户端了。 XFire的独特之处在于它需要一个...

    MyEclipse8.0GA下使用Xfire框架开发WebService实例

    ### MyEclipse 8.0 GA 下使用 Xfire 框架开发 WebService 实例 #### 一、WebService 服务端开发步骤 ##### 1. 建立 WebService Project - 在 MyEclipse 中创建一个新的 Web Service 项目,命名为 ProjectName。 -...

    使用xfire+spring构建webservice

    Spring的ApplicationContext配置文件可以用来定义和配置服务bean,XFire则负责解析这些bean并生成相应的WSDL(Web服务描述语言)文件,这是客户端调用Web服务所需的规范。 以下是构建过程的主要步骤: 1. **设置...

    xfire访问webservice客户端用到的jar包

    要使用XFire访问Web服务,首先需要添加相关的jar包到项目类路径。在提供的压缩包“Xfire_webservice”中,应该包含以下关键库: - `xfire-aegis-binding.jar`:Aegis绑定器,用于将Java对象转换为XML和反之。 - `...

    xfire的webservice项目demo

    Xfire客户端库提供了工具,可以基于WSDL生成对应的客户端代理类,使得开发者能够像调用本地方法一样调用远程Web服务。 在实际操作中,首先启动xfire_server,确保Web服务已经准备好接收请求。服务器端启动后,它会...

    xfire构建WebService例子

    本教程将详细讲解如何使用XFire来创建和消费一个简单的WebService。 首先,我们需要理解什么是XFire。XFire(现已被Apache CXF项目吸收)是一个基于Java的Web服务栈,它简化了SOAP(简单对象访问协议)和WS-*(Web...

    java利用 xfire实现 webservices 服务端与客户端

    本篇文章将深入探讨如何利用XFire在服务端和客户端之间建立Web服务通信。 一、Web服务基础 Web服务是一种基于标准的,能够跨越不同操作系统、编程语言和网络环境的通信方式。它们通常使用SOAP(Simple Object ...

    使用XFire实现SOAP的webservice数据传输源码(java)

    首先,我们来看标题中的"使用XFire实现SOAP的webservice数据传输源码"。要创建一个SOAP Web服务,你需要以下步骤: 1. **定义服务接口**:使用Java编程语言定义服务接口,这些接口将代表可供远程调用的方法。 ```...

    Xfire建立WebService.zip

    - 客户端调用:Xfire的客户端或者第三方应用可以使用SOAP请求来调用服务,获取或更新数据。 4. Xfire与游戏的结合:通过WebService,开发者可以创建游戏插件或扩展,例如,提供实时的游戏统计、玩家排名或者社交...

    基于 xfire 的 webservice 项目

    4. **部署与测试服务**:项目会展示如何将实现的服务部署到XFire服务器上,并且可能提供了测试客户端代码,以展示如何调用这些服务并验证其工作情况。 5. **集成与互操作性**:由于XFire支持SOAP和RESTful风格的Web...

    webservice数据传输方式Xfire

    5. **客户端调用**:客户端通过生成的WSDL文件(Web Service Description Language)生成服务代理,然后调用服务接口进行数据传输。 尽管Xfire在性能上具有优势,但随着Java社区的发展,Spring WS和CXF等其他Web...

Global site tag (gtag.js) - Google Analytics