`

Web Service修炼之一XFire入门3

 
阅读更多

5、运行测试应用

    启动Tomcat
    再打开浏览器,输入:http://localhost:8080/ws/services

    服务器返回的结果如下:
 
WebService已经布署成功了,打开WSDL信息:

    http://localhost:8080/ws/services/SayHelloService?wsdl

    其中 sayHelloService是配置文件中 service\name 元素所定义的内容,”wsdl”参数表示查看该 Web 服务的 WSDLWeb服务描述语言)文件。

 

    注意:XML的空格或者有些字符在不同的编码下,会出现乱码,到时XML解析会出错。我这边运行这个servers.xml实例,由于编码不符合UTF-8,配置内容是其他编码形式,导致 XML解析报错:

org.springframework.beans.factory.BeanCreationException

Error creating bean with name 

'org.codehaus.xfire.spring.ServiceBean' defined in class path 

resource [META-INF/xfire/services.xml]: Error setting property 

values; nested exception is 

org.springframework.beans.NotWritablePropertyException: I

nvalid property '????' of bean class 

[org.codehaus.xfire.spring.ServiceBean]: 

Bean property '????' is not writable or has an invalid setter 

method: Does the parameter type of the setter match the return 

type of the getter?

org.springframework.beans.NotWritablePropertyException

Invalid property '????' of bean class 

[org.codehaus.xfire.spring.ServiceBean]: 

Bean property '????' is not writable or has an invalid 

setter method: Does the parameter type of the setter 

match the return type of the getter?

6模拟远程调用

    客户端Java代码 

  package com.test.ws;

import java.net.MalformedURLException;

import org.codehaus.xfire.client.Client;

import org.codehaus.xfire.client.XFireProxyFactory;

import org.codehaus.xfire.service.Service;

import org.codehaus.xfire.service.binding.ObjectServiceFactory;

import org.codehaus.xfire.transport.http.CommonsHttpMessageSender;

public class SayHelloClient {

public static void main(String args[]) { 

String serviceURL = "http://localhost:8080/ws/services/SayHelloService"

//创建service对象

Service serviceModel = new ObjectServiceFactory().create(SayHelloService.class); 

XFireProxyFactory serviceFactory = new XFireProxyFactory(); 

try

//获取服务对象

SayHelloService service = (SayHelloService) serviceFactory.create(serviceModel, serviceURL); 

Client client = Client.getInstance(service); 

//忽略http连接的超时时间,0为不设置超时时间,》=1为超时毫秒数

client.setProperty(CommonsHttpMessageSender.HTTP_TIMEOUT"0"); 

String msg = service.sayHello("大兵"); 

System.out.println("服务器对[大兵]的回复:" +  msg); 

 msg = service.sayHello(null); 

System.out.println("服务器对的回复:" +  msg); 

}catch (MalformedURLException e) { 

    e.printStackTrace();

}

   } 

 客户端运行结果:

    服务器对[大兵]的回复:大兵,早上好,还没有去工作吗 ?

    服务器对你的回复:你叫什么名字呢?

注意:当客户端设置http连接超时为1毫秒时

Client client = Client.getInstance(service);

client.setProperty(CommonsHttpMessageSender.HTTP_TIMEOUT, "1");

会出现如下错误提示:

2013-9-12 11:21:02 org.codehaus.xfire.transport.http.HttpChannel

 sendViaClient

严重: java.net.SocketTimeoutException: Read timed out

Exception in thread "main" 

org.codehaus.xfire.XFireRuntimeException

Could not invoke service.. 

Nested exception is org.codehaus.xfire.fault.XFireFault: 

Couldn't send message.

org.codehaus.xfire.fault.XFireFault: Couldn't send message.

at org.codehaus.xfire.fault.XFireFault.createFault

(XFireFault.java:89)

at org.codehaus.xfire.handler.OutMessageSender.invoke

(OutMessageSender.java:30)

at org.codehaus.xfire.handler.HandlerPipeline.invoke

(HandlerPipeline.java:13

 

  

    从例子实现的过程中,我们可以发现 XFire 框架最大化的发挥了 POJO 的作用,减少了 SOA 实施时对框架本身的依赖,降低了 SOA 实施的难度,企业实施 SOA 时并不需要增加太多的投入就可以实现目标。

    最后附上工程源码

  • 大小: 4.5 KB
  • 大小: 76.5 KB
  • ws.zip (10.9 KB)
  • 下载次数: 12
分享到:
评论

相关推荐

    Web Service 之 XFire入门

    在“Web Service 之 XFire入门”这篇文章中,博主可能还会分享如何通过实例代码来演示这些步骤,例如创建一个名为“helloworld”的简单服务,这个服务可能只有一个返回“Hello, World!”的函数。这样的例子有助于...

    XFire 入门 web service.wps

    XFire 入门 web service.wpsXFire 入门 web service.wpsXFire 入门 web service.wps

    8 XFire Web Service 入门.doc

    【XFire Web Service 入门】 XFire 是一个开源的、高性能的Java Web Service框架,它简化了创建和消费Web服务的过程。XFire在早期是Apache CXF的一部分,后来并入了CXF项目,提供了丰富的功能,包括SOAP、WS-*协议...

    xfire开发Web Service接口详解

    在"xfire开发Web Service接口第一个程序"这个文件中,你可能会找到一个简单的示例,展示如何创建一个计算两个数相加的Web Service。这个例子可能包括定义服务接口、实现接口、配置服务以及启动服务的步骤。通过分析...

    Web_Service学习手册(Xfire) 以及书中的源码

    总之,Xfire是学习Web服务的一个良好起点,尤其是对于初学者来说,结合“Web_Service学习手册(Xfire)”和源码,你可以快速建立起Web服务开发的基础。随着对Xfire的深入理解,你还可以进一步探索更高级的特性,如WS-...

    使用XFire+Spring构建Web Service

    【使用XFire+Spring构建Web Service】是一种高效且灵活的方法,尤其适合于那些希望利用Spring框架的优秀特性来开发Web Service应用的开发者。XFire是一个先进的Web Service框架,与Axis2并列为新一代的选择,因其...

    Web Service之XFire

    在XFire中创建一个Web Service实例,首先需要定义一个Java接口或类,该接口或类代表要暴露的服务。接着,使用XFire的API或注解来标记这个接口或类,声明它是一个Web服务。然后,通过XFire的ServerFactoryBean创建并...

    xfire实现web service入门实例

    3. **实现Web服务**:接下来,你需要创建一个类来实现这个接口。在这个实现类中,你会编写实际的业务逻辑。 ```java public class HelloWorldServiceImpl implements HelloWorldService { @Override public ...

    XFire 实现web service入门实例源码

    本教程将深入探讨如何使用XFire来实现一个基础的Web服务入门实例,并通过源码分析来增进理解。 首先,我们要明白Web服务的基本概念。Web服务基于开放标准,如SOAP(Simple Object Access Protocol)、WSDL(Web ...

    Web-Service学习手册(Xfire).docx

    1.3.3 CXF:CXF是另一个流行的开源Web Service框架,它结合了Xfire和Apache SOAP项目的优点,支持多种Web Service规范,并且可以与Spring框架无缝集成。 1.3.4 主流 Web Service 的比较 Axis适合初学者,因为它的...

    webService+Xfire入门

    【Web Service + Xfire 入门】 Web Service是一种基于开放标准的、允许应用程序之间进行交互的方式,它使得不同系统能够共享数据和服务。Xfire是一款基于Java的SOAP(Simple Object Access Protocol)框架,它为...

    web service xfire 开发包及api

    3. **XML(eXtensible Markup Language)**:XML用于构造Web服务的数据交换格式,Xfire Web Service中的数据通常会被编码为XML文档,以便跨平台和语言传递。 4. **API密钥管理**:为了使用Xfire Web Service,...

    Web Service框架xfire与spring集成开发流程

    Web Service框架XFire是新一代的解决方案,旨在简化Web Service应用的开发,与Axis 2一同成为业界关注的焦点。XFire以其简洁的API设计,全面支持Web Service的各种标准协议,如SOAP、WSDL和WS-Security等,极大地...

    MyEclipse+xFire开发Web Service

    【MyEclipse+xFire开发Web Service】是一个关于如何使用MyEclipse集成开发环境和xFire框架来构建和测试Web服务的教程。xFire是一个基于Java的SOAP框架,它提供了轻量级的信息处理机制,利用STAX进行SOAP消息处理。这...

    xfire_1.147_zol.zip 加 Web_Service学习手册(Xfire)-christian.pdf

    《Web Service学习手册(Xfire)》是一本深入探讨Web Service技术的专业资料,配合"xfire_1.147_zol.zip"压缩包中的资源,为读者提供了丰富的学习材料。Web Service是Java领域中的一项重要技术,它允许不同系统间的...

    Web Service实践之——开始XFire

    这篇博客“Web Service实践之——开始XFire”可能详细介绍了如何使用XFire来实现Web服务。 在Web服务的世界里,SOAP(Simple Object Access Protocol)是用于交换结构化信息的标准协议,而WSDL(Web Services ...

    xfire实现Web Service

    在Java开发中,XFire是一个流行的框架,用于实现Web服务。本文将详细介绍如何使用XFire在Java中创建和消费Web服务。 首先,理解Web Service的基本概念至关重要。Web Service是一种采用统一的XML(可扩展标记语言)...

    webService-xfire入门doc

    【标题】"webService-xfire入门doc" 涉及的是Web服务技术中的XFire框架,这是一款用于构建和消费Web服务的开源Java库。XFire是早期流行的Web服务实现,它允许开发者轻松地将Java对象转换为Web服务,反之亦然。 ...

Global site tag (gtag.js) - Google Analytics