`
babydeed
  • 浏览: 237968 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

webservice 学习

阅读更多
服务端创建:
(1)
web.xml中配置。
  <context-param>
       <param-name>contextConfigLocation</param-name>
       <param-value>
            classpath:org/codehaus/xfire/spring/xfire.xml
            /WEB-INF/applicationContext.xml
       </param-value>
    </context-param>
 
  <servlet>
   <servlet-name>xfireServlet</servlet-name>
   <servlet-class>org.codehaus.xfire.spring.XFireSpringServlet</servlet-class>
  </servlet>
 
  <servlet-mapping>
 <servlet-name>xfireServlet</servlet-name> 
 <url-pattern>/services/*</url-pattern>
  </servlet-mapping>
 
  <listener>
   <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener> 
(2)
编写web service的接口入实现类;
package com.zcq.services;
public interface HelloService {
 public String sayHello(String name);
}
package com.zcq.services;
public class HelloserviceImp implements HelloService {
 public String sayHello(String name) {
  String result =name+"祝你学习webservice 成功";
  return result;
 }
}

spring配置文件中配置:
<beans>
    <bean id="helloExporters" class="org.codehaus.xfire.spring.remoting.XFireExporter">
     <property name="serviceFactory" ref="xfire.serviceFactory"></property>
     <property name="xfire" ref="xfire"></property>
     <property name="serviceBean" ref="helloserviceImp"></property>
     <property name="serviceClass" value="com.zcq.services.HelloService"></property>
     <property name="name" value="firstHelloService"></property>
    </bean>
    <bean id="helloserviceImp" class="com.zcq.services.HelloserviceImp"></bean>
</beans>
(3)
验证发布是否成功:
其中的<property name="name" value="firstHelloService"></property>,将会出现在地址:
http://localhost:8088/xfireHello/services/firstHelloService?wsdl
当有地址栏上打入以前地址,可以看到soap文件时,证明web seriviece发布成功。
可以打入地址:http://localhost:8088/xfireHello/services来查看所有的web services服务。

客户端创建:
(4)
利用eclipse的xfire插件来生成web service client:
1.
创建一个web service project.
new --> web service project,在弹出页面中,填入项目名,选择framework:xfire.
2.
new-->other-->web service client-->默认下一步,在第二个向导界面中:
在wsdl url中,输入上面的地址:
http://localhost:8088/xfireHello/services/firstHelloService?wsdl
(即是利用wsdl url来生成client);
在java package中,新建一个源码的存放包,如com.client.
3.
默认下一步到完成。中间,可能会出现一小点认证出错,可以不管。
但注意:
在用插件进行生成客户端时,web service的服务端须运行,否则生成客户端时会出错。

4.
生成成功后,会在客户端的项目中,自己生成两包:
服务端对应的包,如:com.zcp.servcies,
及刚刚创建的客户端包,如:com.client.
5.
在com.client包中:
firstHelloServiceClient.java中编写调用服务端的代码即可。如下:
    public static void main(String[] args) {
//插件自动生成的代码,
        firstHelloServiceClient client = new firstHelloServiceClient();
  //create a default service endpoint
        firstHelloServicePortType service = client.getfirstHelloServiceHttpPort();
//自己添加的代码,
        System.out.println(service.sayHello("jason"));
       
  System.out.println("test client completed");

          System.exit(0);
    }
至于端口的输入/输出参数,可以参照另一类:firstHelloServicePortType.java.
其自动生成的代码如下:
@WebService(name = "firstHelloServicePortType", targetNamespace = "http://services.zcq.com")
@SOAPBinding(use = SOAPBinding.Use.LITERAL, parameterStyle = SOAPBinding.ParameterStyle.WRAPPED)
public interface firstHelloServicePortType {
        //web service的方法
 @WebMethod(operationName = "sayHello", action = "")
        //web service返回结果集
 @WebResult(name = "out", targetNamespace = "http://services.zcq.com")
        //方法名,参数,返回值
 public String sayHello(
   @WebParam(name = "in0", targetNamespace = "http://services.zcq.com")
   String in0);
}
其中的targetNamespace="http://services.zcq.com",刚好是服务端包的逆写。
 
(5)
不用自动生成的客户端代码,可以用以下两种方式来编写代码:
方式一:
若服务提供者告诉你interface,可以用此方式:
import java.net.MalformedURLException;
import org.codehaus.xfire.client.XFireProxyFactory;
import org.codehaus.xfire.service.Service;
import org.codehaus.xfire.service.binding.ObjectServiceFactory;

    Service serviceModel = new ObjectServiceFactory().create(HelloService.class);
    HelloService service = (HelloService)
            new XFireProxyFactory().create(serviceModel, "http://localhost:8088/xfireHello/services/firstHelloService");
    System.out.println(service.sayHello("herry"));
 
方式二:(比较推荐)
  Client client = new Client(new URL(
    "http://localhost:8088/xfireHello/services/firstHelloService?wsdl"));
  Object[] results = client.invoke("sayHello", new Object[] { "jason" });
  System.out.println(results[0]);
 
(6)
web service的作用:
可以让服务端与客户调用端完全分离,毫不相关。
如,天气预报,股市数据,其服务端是在气象站或证券交易所,其它网站,软件如何来获取其数据的(如天气预报):
1.goolge一下:天气预报 wsdl
    从中获取一个wsdl链接,输入地址栏,若可以看到出现soap文件,即说明此服务可用。
2.
同样,用插件及刚刚的wsdl地址来生成web service的客户端,运行即可获取服务端的数据了。
 
 
分享到:
评论

相关推荐

    webservice学习

    标题“webservice学习”表明我们将探讨WebService的基本概念、重要性以及如何在Java环境中进行开发。这里涉及的知识点主要包括: 1. **WSDL**:WSDL是一种XML格式的规范,用于定义Web服务接口。它描述了服务的位置...

    WebService 学习

    【WebService学习】 WebService是一种基于互联网的、松散耦合的分布式计算模型,它允许不同的系统之间进行数据交换和业务交互。这项技术的核心是利用XML(可扩展标记语言)作为数据交换的标准格式,SOAP(简单对象...

    Eclipse下WebService学习.doc

    【Eclipse下WebService学习】 在IT领域,WebService是一种基于开放标准的、允许不同系统之间进行交互的技术。在Eclipse这个流行的Java集成开发环境中,开发者可以方便地创建、部署和测试WebService。本文档主要介绍...

    WebService学习笔记

    【WebService学习笔记】 WebService是一种基于互联网的、标准化的、跨平台的、跨语言的通信机制,使得不同系统间的应用程序可以互相交互数据和服务。它的核心理念是服务导向架构(SOA),即通过服务的方式实现应用...

    WebService学习资料(很全)

    WebService学习资料(很全)WebService学习资料(很全)WebService学习资料(很全)WebService学习资料(很全)WebService学习资料(很全)WebService学习资料(很全)

    webService学习笔记

    在本篇WebService学习笔记中,我们将探讨几个关键的概念和技术,包括SOAP协议、JAX-WS、WSDL文档以及一些常用的Web服务框架。 首先,SOAP(Simple Object Access Protocol)是一种基于XML的协议,用于在分布式环境...

    Eclipse下WebService学习

    【Eclipse下WebService学习】 在IT行业中,Web Service是一种基于开放标准(如XML、WSDL和SOAP)的互操作技术,允许不同系统间的应用程序通过网络进行通信。它提供了一种松散耦合的方式,使得软件组件可以跨越各种...

    springboot2.0webService学习

    springboot2.0webService学习 

    webservice学习笔记doc文档

    在本学习笔记中,主要介绍了使用Apache Axis2框架来开发和测试Web Service的过程。Apache Axis2是Apache SOAP栈的一个实现,提供了简单且高效的Web Service开发工具。 首先,开发者需要在Eclipse集成开发环境中搭建...

    webservice 学习的c#版本实例

    本教程以"webservice 学习的c#版本实例"为主题,将引导你深入理解Webservice的原理以及C#中实现Webservice的方法。 首先,让我们了解ASMX Web Service。ASMX是.NET Framework早期用于构建Web服务的技术,它基于SOAP...

    webservice学习资料和样例(xfire)

    webservice学习资料和样例webservice学习资料和样例webservice学习资料和样例webservice学习资料和样例webservice学习资料和样例webservice学习资料和样例

    WebService学习总结

    WebService学习过程中,知识点的总结,和例子。

    WebService学习之路三

    【WebService学习之路三】 在IT领域,WebService是一种用于构建分布式应用程序的技术,它允许不同系统间的交互,不受平台或编程语言的限制。本篇主要聚焦于WebService的学习,通过深入理解其原理和实践,来提升我们...

    webservice学习文档及案例

    本学习文档及案例适用于Web Service的初学者,旨在帮助理解Web Service的基本概念、工作原理以及如何实现。 一、Web Service基础知识 1. 定义:Web Service是一种通过HTTP协议传输数据的服务,它能够暴露业务逻辑...

    WebService学习之路四

    【WebService学习之路四】 在IT领域,WebService是一种基于标准协议(如SOAP、WSDL和UDDI)的开放式网络服务,允许不同系统间的应用程序通过互联网进行通信。本篇将深入探讨WebService的学习路径,重点关注其核心...

    WebService学习笔记0001

    【WebService学习笔记0001】 在IT领域,WebService是一种基于开放标准(如XML、SOAP、WSDL和UDDI)的互操作性技术,它允许不同系统间的应用程序通过网络进行通信。本学习笔记将围绕WebService的核心概念、工作原理...

    WebService学习和了解

    WebService学习和了解 WebService的优点 SOAP是什么?WSDL是什么?

    WebService学习1.docx

    【WebService学习】 WebService是一种基于XML的互联网交互协议,它允许不同系统间的应用程序进行通信,消除了语言和平台的障碍。在C#中,通过使用ASP.NET技术,我们可以轻松创建和消费WebService。以下是一个初学者...

Global site tag (gtag.js) - Google Analytics