今天学习了下webservice框架XFire,动手在myeclipse 6.0写了个helloworld的入门例子。
1. 新建一个webservice工程:mywebservice, 按照myeclipse的向导点next,但最后一步记得要把 XFire 1.2 HTTP Client Libraries 选中,不然调用webservice时会抛 java.lang.ClassNotFoundException: org.apache.commons.httpclient.methods.RequestEntity 这个异常,原因是缺少 commons-httpclient-3.0.jar这个jar包。
2. 编写helloworld的接口 HelloWorldService 和实现类 HelloWorldServiceImpl
接口代码:
package com.wallace;
public interface HelloWorldService {
public String sayHello();
}
实现类代码:
package com.wallace;
public class HelloWorldServiceImpl implements HelloWorldService {
public String sayHello() {
// TODO Auto-generated method stub
return "helo world";
}
}
然后配置 service.xml 如下:
其中HelloWorldService为webservice名子
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://xfire.codehaus.org/config/1.0">
<service>
<name>HelloWorldService</name>
<serviceClass>com.wallace.HelloWorldService</serviceClass>
<implementationClass>
com.wallace.HelloWorldServiceImpl
</implementationClass>
<style>wrapped</style>
<use>literal</use>
<scope>application</scope>
</service></beans>
也可以在包下右键新建一个webservice, 输入 webservice名子,接口,,实现类来配置service.xml ,这样的话不用手工写service.xml里的代码了.
web.xml可以不用修改,接下来在服务器上布署工程,我用的是glassfish 。
布署完,启动服务器,在firefox中输入 http://localhost:8080/mywebservice/services/HelloWorldService?wsdl
其中mywebservice是工程名, HelloWorldServcie 是 service.xml中 service name 元素所定义的内容,”wsdl”参数表示查看该 Web 服务的 WSDL文件,这样就能看到产生的wsdl文档了。
<wsdl:definitions targetNamespace="http://wallace.com">
−
<wsdl:types>
−
<xsd:schema attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://wallace.com">
−
<xsd:element name="sayHello">
<xsd:complexType/>
</xsd:element>
−
<xsd:element name="sayHelloResponse">
−
<xsd:complexType>
−
<xsd:sequence>
<xsd:element maxOccurs="1" minOccurs="1" name="out" nillable="true" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
</wsdl:types>
−
<wsdl:message name="sayHelloResponse">
<wsdl:part name="parameters" element="tns:sayHelloResponse">
</wsdl:part>
</wsdl:message>
−
<wsdl:message name="sayHelloRequest">
<wsdl:part name="parameters" element="tns:sayHello">
</wsdl:part>
</wsdl:message>
−
<wsdl:portType name="HelloWorldServicePortType">
−
<wsdl:operation name="sayHello">
<wsdl:input name="sayHelloRequest" message="tns:sayHelloRequest">
</wsdl:input>
<wsdl:output name="sayHelloResponse" message="tns:sayHelloResponse">
</wsdl:output>
</wsdl:operation>
</wsdl:portType>
−
<wsdl:binding name="HelloWorldServiceHttpBinding" type="tns:HelloWorldServicePortType">
<wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
−
<wsdl:operation name="sayHello">
<wsdlsoap:operation soapAction=""/>
−
<wsdl:input name="sayHelloRequest">
<wsdlsoap:body use="literal"/>
</wsdl:input>
−
<wsdl:output name="sayHelloResponse">
<wsdlsoap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
−
<wsdl:service name="HelloWorldService">
−
<wsdl:port name="HelloWorldServiceHttpPort" binding="tns:HelloWorldServiceHttpBinding">
<wsdlsoap:address location="http://localhost:8080/mywebservice/services/HelloWorldService"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
3。行远程调用webservice
新建一个web工程:mywebservicetest, 将mywebservicetest工程lib下的jar拷到当前工程lib下。
编写与工程lmywebservicetest同样的接口
package com.test;
public interface HelloWorldService {
public String sayHello();
}
编写测试类:
package com.test;
import java.net.MalformedURLException;
import org.codehaus.xfire.XFireFactory;
import org.codehaus.xfire.client.XFireProxyFactory;
import org.codehaus.xfire.service.Service;
import org.codehaus.xfire.service.binding.ObjectServiceFactory;
public class WebServiceTest {
public static void main(String[] args) {
Service service = new ObjectServiceFactory().create(HelloWorldService.class);
XFireProxyFactory factory = new XFireProxyFactory(XFireFactory.newInstance().getXFire());
String helloUrl = "http://localhost:8080/mywebservice/services/HelloWorldService";
try {
HelloWorldService myservice = (HelloWorldService)factory.create(service, helloUrl);
System.out.println(myservice.sayHello());
} catch (MalformedURLException e) {
e.printStackTrace();
}
}
}
运行测试类,控制台得到调用webservice的结果:
helo world
分享到:
相关推荐
【标题】"webService-xfire入门doc" 涉及的是Web服务技术中的XFire框架,这是一款用于构建和消费Web服务的开源Java库。XFire是早期流行的Web服务实现,它允许开发者轻松地将Java对象转换为Web服务,反之亦然。 ...
总的来说,"webService+Xfire入门"的教程适合初学者,通过它你可以快速了解Web Service的基本概念,学会使用MyEclipse创建、部署和测试Web Service,并理解XFire在Web服务开发中的作用。实践这个小例子,你将对Web ...
这篇博客文章“Web Service 之 XFire入门”将引导我们逐步了解如何使用XFire构建Web服务。 首先,XFire基于Java语言,利用了Java API for XML Processing (JAXP) 和Java Architecture for XML Binding (JAXB) 这些...
**Xfire入门实例操作详解** Xfire是一款曾经非常流行的在线游戏社区软件,它允许玩家在游戏中与朋友聊天、查看他们的状态、记录游戏统计等。虽然现在可能不再是最主流的游戏社交工具,但对于想要了解游戏社区历史...
XFire 入门 web service.wpsXFire 入门 web service.wpsXFire 入门 web service.wps
**二、XFire入门步骤** 1. **环境准备**:确保安装了Java Development Kit (JDK) 和 Maven,因为XFire的构建和运行依赖这两个工具。 2. **创建服务**:使用Java接口和实现定义服务契约。例如,可以创建一个名为`...
XFire完整入门教程XFire完整入门教程XFire完整入门教程XFire完整入门教程
**XFire入门步骤** 1. **安装与配置**:首先,我们需要下载并安装XFire的库文件,将其添加到项目的类路径中。此外,可能还需要配置Maven或Gradle依赖以引入XFire的相关模块。 2. **创建服务接口**:定义一个短信...
描述:“Xfire入门资料,帮你步入Web服务” 知识点解析: **Xfire概述** Xfire是一个开源的轻量级Java Web服务框架,由Codehaus组织维护。它提供了一种简单有效的方式来创建和使用Web服务,特别适合于小型项目或对...
**XFire 入门教程** XFire 是一个 Java Web Service 框架,它简化了创建、部署和消费 Web 服务的过程。以下是一份详细的 XFire 入门指南,包括如何发布服务端、解决可能出现的问题以及客户端的调用。 ### 1. 开发...
XFire--Webservice入门xfire
《Xfire入门示例解析》 Xfire是一款曾经流行的在线游戏通信软件,它允许玩家在游戏中进行即时通讯、查看好友状态以及记录游戏统计等。在"xfire_demo.zip_DEMO"这个压缩包中,我们得到了一个关于如何使用Xfire进行...
Java XFire入门** 安装XFire后,首先需要在项目中添加相应的依赖库。然后,你可以使用XFire的API或注解来创建服务提供者和服务消费者。服务提供者是指暴露服务的代码,而服务消费者则是调用这些服务的客户端。 **3...
1. **XFire入门**:了解XFire的基本架构和安装步骤,以及如何配置XFire环境以准备开发工作。 2. **服务创建**:学习如何使用XFire创建和发布SOAP服务,包括定义服务接口、实现服务逻辑以及将服务绑定到URL。 3. **...
### 关于Spring XFire入门详解 #### 一、引言 在探讨Spring XFire入门时,我们首先要了解XFire的基本概念及其与Spring框架的结合方式。XFire是一个高性能且易于使用的开源SOAP容器,用于实现Java Web服务。它支持...
Xfire(现更名为CXF)是Java平台上一个流行的开源框架,用于构建和部署Web服务。作为一个初学者,理解如何使用Xfire来实现Web服务是非常基础且重要的一步。下面将详细介绍Xfire实现Web服务的基础知识。 首先,我们...
我整理了一下使用XFire1.2.6进行Web Service开发的思路,尝试完成了一个入门实例(完整的MyEclipse项目)。如果你正在学习Web Service或者对这个有兴趣,你可以下载该附件,导入MyEclipse中运行以查看示例效果。希望...
这是一份关于开发xfire 很好的PPT教程