开始编写第一个webservice程序。
1、在web.xml文件中添加如下代码:
<servlet>
<servlet-name>XFireServlet</servlet-name>
<servlet-class>org.codehaus.xfire.transport.http.XFireConfigurableServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>XFireServlet</servlet-name>
<url-pattern>/servlet/XFireServlet/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>XFireServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
在web中定义了一个XFireServlet 的servlet,它负责提供webservice,并且提供每个web service的WSDL。如果你发布一个了web service 例如:HelloService,就可以通过网址 http://localhost:8080/hfa/services/ 来访问,结果如下:
Available Services:
•HelloService [wsdl]
Generated by XFire ( http://xfire.codehaus.org )
--------------------------------------------------------------------------------
访问HelloService的WSDL就用地址:http://localhost:8080/hfa/services/HelloService?wsdl 运行结果如下:
<?xml version="1.0" encoding="UTF-8" ?>
- <wsdl:definitions targetNamespace="http://localhost:8080/hfa/services/HelloService" xmlns:soapenc12="http://www.w3.org/2003/05/soap-encoding" xmlns:tns="http://localhost:8080/hfa/services/HelloService" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap11="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soapenc11="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
- <wsdl:types>
+ <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://localhost:8080/hfa/services/HelloService">
- <xsd:element name="getClients">
<xsd:complexType />
</xsd:element>
- <xsd:complexType name="anyType2anyTypeMap">
- <xsd:sequence>
- <xsd:element maxOccurs="unbounded" minOccurs="0" name="entry">
- <xsd:complexType>
- <xsd:sequence>
<xsd:element maxOccurs="1" minOccurs="0" name="key" type="xsd:anyType" />
<xsd:element maxOccurs="1" minOccurs="0" name="value" type="xsd:anyType" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
- <xsd:element name="getClientsResponse">
- <xsd:complexType>
- <xsd:sequence>
<xsd:element maxOccurs="1" minOccurs="1" name="out" nillable="true" type="tns:anyType2anyTypeMap" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
- <xsd:element name="sayHello">
- <xsd:complexType>
- <xsd:sequence>
<xsd:element maxOccurs="1" minOccurs="1" name="in0" nillable="true" type="xsd:string" />
</xsd:sequence>
</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="getClientsRequest">
<wsdl:part name="parameters" element="tns:getClients" />
</wsdl:message>
- <wsdl:message name="sayHelloResponse">
<wsdl:part name="parameters" element="tns:sayHelloResponse" />
</wsdl:message>
- <wsdl:message name="getClientsResponse">
<wsdl:part name="parameters" element="tns:getClientsResponse" />
</wsdl:message>
- <wsdl:message name="sayHelloRequest">
<wsdl:part name="parameters" element="tns:sayHello" />
</wsdl:message>
- <wsdl:portType name="HelloServicePortType">
- <wsdl:operation name="getClients">
<wsdl:input name="getClientsRequest" message="tns:getClientsRequest" />
<wsdl:output name="getClientsResponse" message="tns:getClientsResponse" />
</wsdl:operation>
- <wsdl:operation name="sayHello">
<wsdl:input name="sayHelloRequest" message="tns:sayHelloRequest" />
<wsdl:output name="sayHelloResponse" message="tns:sayHelloResponse" />
</wsdl:operation>
</wsdl:portType>
- <wsdl:binding name="HelloServiceHttpBinding" type="tns:HelloServicePortType">
<wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
- <wsdl:operation name="getClients">
<wsdlsoap:operation soapAction="" />
- <wsdl:input name="getClientsRequest">
<wsdlsoap:body use="literal" />
</wsdl:input>
- <wsdl:output name="getClientsResponse">
<wsdlsoap:body use="literal" />
</wsdl:output>
</wsdl:operation>
- <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="HelloService">
- <wsdl:port name="HelloServiceHttpPort" binding="tns:HelloServiceHttpBinding">
<wsdlsoap:address location="http://localhost:8080/hfa/services/HelloService" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
2、在项目src的包中新建接口HelloService 代码如下:
package com.zhongrui.pms.business.service.webservice;
import java.util.List;
import java.util.Map;
/**
*fileName: HelloService.java
*author:forrest li
*time: 2012-7-31 上午10:12:44
**/
public interface HelloService {
public String sayHello(String name);
public Map getClients();
}
实现类如下HelloServiceImp.java 代码如下:
package com.zhongrui.pms.business.service.webservice;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import com.zhongrun.frame.dao.JdbcTemplateDaoUtil;
/**
*fileName: HelloServiceImp.java
*author:forrest li
*time: 2012-7-31 上午10:14:35
**/
public class HelloServiceImp implements HelloService {
private static final Log logger = LogFactory.getLog(HelloServiceImp.class);
private static final JdbcTemplateDaoUtil dao = new JdbcTemplateDaoUtil();
public String sayHello(String name) {
// TODO Auto-generated method stub
logger.info("---name------"+name);
return "from service say hello!"+name;
}
public Map<String, Object> getClients() {
// TODO Auto-generated method stub
Map map = new HashMap();
map.put("ID", "351");
String sql = "SELECT * FROM CLIENT_INFO t where t.CLIENT_ID=:ID";
List<Map<String, Object>> list = dao.getAllEntity(sql, map);
logger.info(" list =================:"+list);
for(int i= 0;i<list.size();i++){
logger.info("map-----------------"+list.get(i));
}
return list.get(0);
}
}
3、在资源目录src/java/sources/src下新建文件夹如下图:
4、编辑services.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<beans>
<service xmlns="http://xfire.codehaus.org/config/1.0">
<name>HelloService</name>
<namespace>http://localhost:8080/hfa/services/HelloService</namespace>
<serviceClass>com.zhongrui.pms.business.service.webservice.HelloService</serviceClass>
<implementationClass>com.zhongrui.pms.business.service.webservice.HelloServiceImp</implementationClass>
</service>
</beans>
5、启动tomcat服务,加载hfa工程。
6、输入地址:http://localhost:8080/hfa/services/ 或者 http://localhost:8080/hfa/services/HelloService?wsdl 。运行结果见 1、。
- 大小: 10 KB
分享到:
相关推荐
XFire Webservice 服务器端是一个专门用于游戏社区的网络服务接口,它允许开发者与XFire游戏客户端进行交互,实现各种功能,如用户登录、好友系统、游戏统计等。在这个压缩包文件中,"WSA"可能代表Web Service ...
要创建一个使用XFire的Web服务服务器端,你需要遵循以下步骤: 1. **设置环境**:首先确保你的开发环境中已经安装了Java SDK和XFire库。你可以通过Maven或Gradle将XFire作为依赖项添加到项目中。 2. **定义服务...
在这个“在Eclipse下用xfire创建webserver服务器demo”中,我们学习了如何在Eclipse环境中配置Xfire,创建一个简单的Web服务,以及如何启动和测试这个服务。这只是一个基础的起点,Xfire还支持许多高级特性,如WS-...
在XFire服务器端,这些JAR文件包含着实现各种服务和功能的类,如网络处理、游戏逻辑、数据库交互等。 3. **部署与使用**: 描述中提到,只需将这些JAR文件解压并放置到对应的应用服务器目录下,即可开始使用XFire...
在本例中,我们将探讨如何使用XFire来创建一个简单的WebService服务器端。 首先,让我们了解什么是Web服务。Web服务是一种通过网络(通常使用HTTP协议)进行通信的应用程序接口。它们允许不同系统之间的数据交换,...
Java 使用 XFire 创建和调用 WebServices 是一个常见的任务,特别是在构建分布式系统和服务导向架构(SOA)中。XFire 是一个 Java 框架,它简化了 WebService 的开发和消费过程。在这个主题中,我们将深入探讨如何...
2. **创建服务接口**:定义一个Java接口,这个接口将作为Web服务的契约。例如,你可以创建一个名为`HelloService`的接口,包含一个返回字符串的方法`sayHello()`。 3. **实现服务接口**:编写一个实现了`...
XML-RPC是一种简单、轻量级的远程调用协议,通过XML格式传输数据,使得服务器端和客户端能够进行跨平台的交互。在Xfire中,XML-RPC为服务端提供了发布和调用远程方法的能力,而客户端则可以订阅并执行这些远程方法。...
【xfire服务器端】是一个基于xfire和Spring框架构建的服务器端示例,它展示了如何在实际开发中整合这两者来实现高效、灵活的Web服务。Xfire是一款强大的SOAP和RESTful Web服务框架,它允许开发者快速创建和部署Web...
Xfire是一个早期的开源Java Web服务框架,它提供了在Java应用程序中快速创建和部署Web服务的能力。在本实例中,我们将探讨如何在Eclipse集成开发环境中利用Xfire框架创建和运行Web服务,以及与SQL Server 2005数据库...
xfire+webService 客户端和服务器端的例子 xfire-distribution-1.2.6.zip 是xfire的包,网上可以下载的,本人已经下载完毕。 另附两个xfire的配制文档,供大家参考。 XFire-WebService.pdf Xfire WebService...
### xfire+webservice...通过配置`web.xml`和Spring上下文文件,以及创建服务接口与实现类,最终实现了WebService服务的部署与发布。这对于想要快速搭建基于Java的WebService服务的开发者来说,是一份非常实用的指南。
在这个主题中,我们将深入探讨如何使用Xfire创建Web服务以及客户端的实现,同时结合MyEclipse 6.5集成开发环境(IDE)和Tomcat 6.0应用服务器。 1. **Xfire简介** Xfire是Apache CXF项目的一部分,它提供了一个...
4. **发布服务**:使用XFire的API或工具将服务部署到服务器,使其可以通过网络访问。 在XFire中,消息头可以用于传递额外的信息,比如安全凭证、交易上下文或自定义元数据。要使用消息头,你需要: 1. **创建消息头...
在这个极简的XFire Web服务Demo中,我们将探讨如何利用XFire来创建服务端以及客户端调用这些服务。 **一、XFire简介** XFire是Java平台上的一个Web服务实现,它支持SOAP、WSDL和UDDI等标准。XFire通过简化编程模型...
3. **XFire服务创建**:使用XFire的注解或者XML配置文件定义Web服务接口和服务实现,以及如何暴露这些服务。 4. **Spring整合**:利用Spring的IOC(Inversion of Control)容器来管理服务实例,控制服务的生命周期...
这个"xfire的webservice项目demo"是一个实践性的示例,展示了如何使用Xfire来实现Web服务的服务器端和客户端。 首先,我们要理解Web服务的工作原理。Web服务的基本概念是将业务逻辑封装成一系列可以远程调用的方法...
2. **创建服务接口和服务实现**:定义一个Java接口,该接口描述了Web服务的操作。然后,实现这个接口,提供具体的服务逻辑。 3. **配置XFire**:创建一个配置文件(通常是XML),用于配置XFire服务器,包括端口号、...
3. 创建服务实现:实现`HelloService`接口,提供具体的服务逻辑。 4. 配置Xfire:在Spring配置文件中,使用`<xfire:server>`元素配置Xfire服务器,并通过`<xfire:service>`元素注册服务。 5. 启动服务:通过Spring...