`
healthandbeauty
  • 浏览: 168065 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

xfire 创建服务器端 HelloService服务

 
阅读更多

开始编写第一个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
5
2
分享到:
评论
2 楼 healthandbeauty 2012-08-01  
smallbee 写道
web server太庞大  lz不妨用用hessian

自己公司内部 项目间数据通信用hessian、bubbo,actvemq等都可以。但是对外通信就不好说了。和其他公司之间的数据通信很多是webservice。具有不固定性。EJB也有。
1 楼 smallbee 2012-08-01  
web server太庞大  lz不妨用用hessian

相关推荐

    XFire Webservice 服务器端

    XFire Webservice 服务器端是一个专门用于游戏社区的网络服务接口,它允许开发者与XFire游戏客户端进行交互,实现各种功能,如用户登录、好友系统、游戏统计等。在这个压缩包文件中,"WSA"可能代表Web Service ...

    java xfire webService服务器端

    要创建一个使用XFire的Web服务服务器端,你需要遵循以下步骤: 1. **设置环境**:首先确保你的开发环境中已经安装了Java SDK和XFire库。你可以通过Maven或Gradle将XFire作为依赖项添加到项目中。 2. **定义服务...

    在Eclipse下用xfire创建webserver服务器demo

    在这个“在Eclipse下用xfire创建webserver服务器demo”中,我们学习了如何在Eclipse环境中配置Xfire,创建一个简单的Web服务,以及如何启动和测试这个服务。这只是一个基础的起点,Xfire还支持许多高级特性,如WS-...

    XFire服务器端所用的jar

    在XFire服务器端,这些JAR文件包含着实现各种服务和功能的类,如网络处理、游戏逻辑、数据库交互等。 3. **部署与使用**: 描述中提到,只需将这些JAR文件解压并放置到对应的应用服务器目录下,即可开始使用XFire...

    XFire创建的WebService

    在本例中,我们将探讨如何使用XFire来创建一个简单的WebService服务器端。 首先,让我们了解什么是Web服务。Web服务是一种通过网络(通常使用HTTP协议)进行通信的应用程序接口。它们允许不同系统之间的数据交换,...

    java使用xfire创建和调用webservices

    Java 使用 XFire 创建和调用 WebServices 是一个常见的任务,特别是在构建分布式系统和服务导向架构(SOA)中。XFire 是一个 Java 框架,它简化了 WebService 的开发和消费过程。在这个主题中,我们将深入探讨如何...

    XFire创建WebService服务端和客户端

    2. **创建服务接口**:定义一个Java接口,这个接口将作为Web服务的契约。例如,你可以创建一个名为`HelloService`的接口,包含一个返回字符串的方法`sayHello()`。 3. **实现服务接口**:编写一个实现了`...

    xfire创建服务端客户端源码

    XML-RPC是一种简单、轻量级的远程调用协议,通过XML格式传输数据,使得服务器端和客户端能够进行跨平台的交互。在Xfire中,XML-RPC为服务端提供了发布和调用远程方法的能力,而客户端则可以订阅并执行这些远程方法。...

    xfire服务器端

    【xfire服务器端】是一个基于xfire和Spring框架构建的服务器端示例,它展示了如何在实际开发中整合这两者来实现高效、灵活的Web服务。Xfire是一款强大的SOAP和RESTful Web服务框架,它允许开发者快速创建和部署Web...

    JAVAEE利用XFIRE创建WEBSERVICE实例

    Xfire是一个早期的开源Java Web服务框架,它提供了在Java应用程序中快速创建和部署Web服务的能力。在本实例中,我们将探讨如何在Eclipse集成开发环境中利用Xfire框架创建和运行Web服务,以及与SQL Server 2005数据库...

    xfire+webService 客户端和服务器端的例子

    xfire+webService 客户端和服务器端的例子 xfire-distribution-1.2.6.zip 是xfire的包,网上可以下载的,本人已经下载完毕。 另附两个xfire的配制文档,供大家参考。 XFire-WebService.pdf Xfire WebService...

    xfire+webservice(服务器配置篇)

    ### xfire+webservice...通过配置`web.xml`和Spring上下文文件,以及创建服务接口与实现类,最终实现了WebService服务的部署与发布。这对于想要快速搭建基于Java的WebService服务的开发者来说,是一份非常实用的指南。

    使用Xfire创建Web service和客户端使用的视频

    在这个主题中,我们将深入探讨如何使用Xfire创建Web服务以及客户端的实现,同时结合MyEclipse 6.5集成开发环境(IDE)和Tomcat 6.0应用服务器。 1. **Xfire简介** Xfire是Apache CXF项目的一部分,它提供了一个...

    关于使用xfire创建webservice,并且使用消息头的示例

    4. **发布服务**:使用XFire的API或工具将服务部署到服务器,使其可以通过网络访问。 在XFire中,消息头可以用于传递额外的信息,比如安全凭证、交易上下文或自定义元数据。要使用消息头,你需要: 1. **创建消息头...

    使用xfire创建webservice极简demo

    在这个极简的XFire Web服务Demo中,我们将探讨如何利用XFire来创建服务端以及客户端调用这些服务。 **一、XFire简介** XFire是Java平台上的一个Web服务实现,它支持SOAP、WSDL和UDDI等标准。XFire通过简化编程模型...

    xfire+spring+maven构建webservice服务器和客户端

    3. **XFire服务创建**:使用XFire的注解或者XML配置文件定义Web服务接口和服务实现,以及如何暴露这些服务。 4. **Spring整合**:利用Spring的IOC(Inversion of Control)容器来管理服务实例,控制服务的生命周期...

    xfire的webservice项目demo

    这个"xfire的webservice项目demo"是一个实践性的示例,展示了如何使用Xfire来实现Web服务的服务器端和客户端。 首先,我们要理解Web服务的工作原理。Web服务的基本概念是将业务逻辑封装成一系列可以远程调用的方法...

    xfire搭建webservice服务端以及万能客户端所需jar包

    2. **创建服务接口和服务实现**:定义一个Java接口,该接口描述了Web服务的操作。然后,实现这个接口,提供具体的服务逻辑。 3. **配置XFire**:创建一个配置文件(通常是XML),用于配置XFire服务器,包括端口号、...

    xfire服务端demo

    3. 创建服务实现:实现`HelloService`接口,提供具体的服务逻辑。 4. 配置Xfire:在Spring配置文件中,使用`&lt;xfire:server&gt;`元素配置Xfire服务器,并通过`&lt;xfire:service&gt;`元素注册服务。 5. 启动服务:通过Spring...

Global site tag (gtag.js) - Google Analytics