一.web service基本概念

Web Service也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量级的独立的通讯技术。是:通过SOAP在Web上提供的软件服务,使用WSDL文件进行说明,并通过UDDI进行注册。

XML:(Extensible Markup Language)扩展型可标记语言。面向短期的临时数据处理、面向万维网络,是Soap的基础。

Soap:(Simple Object Access Protocol)简单对象存取协议。是XML Web Service 的通信协议。当用户通过UDDI找到你的WSDL描述文档后,他通过可以SOAP调用你建立的Web服务中的一个或多个操作。SOAP是XML文档形式的调用方法的规范,它可以支持不同的底层接口,像HTTP(S)或者SMTP。

WSDL:(Web Services Description Language) WSDL 文件是一个 XML 文档,用于说明一组 SOAP 消息以及如何交换这些消息。大多数情况下由软件自动生成和使用。

UDDI (Universal Description, Discovery, and Integration) 是一个主要针对Web服务供应商和使用者的新项目。在用户能够调用Web服务之前,必须确定这个服务内包含哪些商务方法,找到被调用的接口定义,还要在服务端来编制软件,UDDI是一种根据描述文档来引导系统查找相应服务的机制。UDDI利用SOAP消息机制(标准的XML/HTTP)来发布,编辑,浏览以及查找注册信息。它采用XML格式来封装各种不同类型的数据,并且发送到注册中心或者由注册中心来返回需要的数据。

二.C#开发XML web service

简单举一个例子:在VS(任何版本)中新建一个网站,选择"ASP.NET Web服务"。将项目建好后,命名为Service。建好后你会发现VS已经将框架搭建好了

这时你运行这个程序,会在你的默认浏览器出现以下效果:

一个默认的HelloWorld链接。

然后就可以编写自己需要发布的函数了,在工程App_code文件下编写这些需要发布的函数,需要在函数前面添加声明[WebMethod]。写完以后就可以发布了。

打开asmx文件如下<%@ WebService Language="C#" CodeBehind="~/App_Code/Service.cs" class="Service" %>,是一些配置信息,就是通过这个配置信息调用Service.cs中的函数发布。
如果用IIS发布得需要安装IIS,不同版本的操作系统安装方法不同,百度一下有很多教程。IIS安装完成后,在默认网站点右键,打开属性,把主目录改为你写的这个工程的目录,并修改权限之类的,启动IIS就可以了。在浏览器的输入框中输入 http://服务器地址:端口/Service.asmx,就可以查看服务了。我写的服务效果如下:

点击期中一个函数:

点击调用,可以看到调用后的返回值:

三.用JAVA开发web service

用JAVA开发webservice的方式有很多种,我采用了最简单的一种,比较适合发布简单的服务。就是以servlet的方式将服务发布出去,为了方便起见,我将下载了一个Eclipse的Tomcat插件,将这个插件拷到eclipse的plugins文件夹下,打开Eclipse就可以看见tomcat的图标了,然后再windows->Preferences里配置一下tomcat 的版本与位置即可,这样eclipse就有些类似于Myeclipse了。

我建立了一个Tomcat project(装了上述插件才会有),在WEB-INF/src文件下添加类,我添加了两个类,一个MyService.java,一个WebServiceStarter.java。其中,MyService类用来写各种需要发布的服务,需要引进的包有:

import javax.jws.WebService;  
    import javax.jws.soap.SOAPBinding;
    import javax.xml.ws.Endpoint;
    import javax.jws.WebMethod;

还需要在这个类前声明:

@WebService(targetNamespace = "http://jdk.study.hermit.org/client")
@SOAPBinding(style = SOAPBinding.Style.RPC)

在类中,每个要发布的函数前面都要加上声明:

@WebMethod

写好这个类后,写一个servlet类:

import javax.servlet.ServletException;
 import javax.servlet.http.HttpServlet;
 import javax.xml.ws.Endpoint;
public class WebServiceStarter extends HttpServlet {
     private static final long serialVersionUID = 5870534239093709659L;
    
     public WebServiceStarter() {
                  super();
            }
          
             public void destroy() {
                 super.destroy();
              }
          
             public void init() throws ServletException {
                  System.out.println("准备启动服务");
                  Endpoint.publish("http://localhost:8080/MyService", new MyService());
                  System.out.println("服务启动完毕");
             }
}
然后点击Tomcat小图标就可以在Tomcat下运行了,在浏览器中输入:http://127.0.0.1:8080/MyService?wsdl,看到以下结果:

发布成功!

C# 开发XML Web Service与Java开发WebService的更多相关文章

  1. 用Jersey为Android客户端开发Restful Web Service

    平时在做Android客户端的时候经常要与服务器之间通信,客户端通过服务端提供的接口获取数据,然后再展示在客户端的界面上,作为Android开发者,我们平时更多的是关注客户端的开发,而对服务端开发的关 ...

  2. Web Service学习-CXF开发Web Service实例demo(一)

    Web Service是什么? Web Service不是框架.更甚至不是一种技术. 而是一种跨平台,跨语言的规范 Web Service解决什么问题: 为了解决不同平台,不同语言所编写的应用之间怎样 ...

  3. Web Service简介与开发实例

    简介 1.1.Web Service基本概念 Web Service也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的 ...

  4. 构建安全的Xml Web Service系列之wse之证书存储位置

    原文:构建安全的Xml Web Service系列之wse之证书存储位置 我们在前几天对xml web service的安全性提出了一些建议,大家可以通过以下地址访问: 构建安全的Xml Web Se ...

  5. 构建安全的Xml Web Service系列之初探使用Soap头

    原文:构建安全的Xml Web Service系列之初探使用Soap头 Xml Web Service 从诞生那天就说自己都么都么好,还津津乐道的说internet也会因此而进入一个新纪元,可5年多来 ...

  6. 构建安全的Xml Web Service系列之如何察看SoapMessage

    原文:构建安全的Xml Web Service系列之如何察看SoapMessage 上一篇文章地址:构建安全的Xml Web Service系列一之初探使用Soap头 (5-22 12:53)     ...

  7. 构建安全的Xml Web Service系列之wse之错误代码详解

    原文:构建安全的Xml Web Service系列之wse之错误代码详解 WSE3.0现在还没有中文版的可以下载,使用英文版的过程中,难免会遇到各种各样的错误,而面对一堆毫无头绪的错误异常,常常会感到 ...

  8. 构建安全的Xml Web Service系列之SSL篇

    原文:构建安全的Xml Web Service系列之SSL篇 首先介绍一下SSL, SSL 的英文全称是 "Secure Sockets Layer" ,中文名为 "安全 ...

  9. 2018-2019-20175205 实验三敏捷开发与XP实践《Java开发环境的熟悉》实验报告

    2018-2019-20175205 实验三敏捷开发与XP实践<Java开发环境的熟悉>实验报告 实验要求 没有Linux基础的同学建议先学习<Linux基础入门(新版)>&l ...

随机推荐

  1. struct和class

    先概述一下: 1.C# 是纯面向对象语言,struct 与 class 都是继承Object,都是对象.struct 是值类型.class 是引用类型. 2.struct是值类型,在Stack上分配地 ...

  2. SDL2.0的VS开发环境搭建

    SDL2.0的VS开发环境搭建 [前言] 我是用的是VS2012,VS的版本应该大致一样. [开发环境搭建] >>>SDL2.0开发环境配置:1.从www.libsdl.org 下载 ...

  3. python剑指网络篇一

    #coding:utf-8 __author__ = 'similarface' #!/usr/bin/env python import socket #二进制和ASCII互转及其它进制转换 fro ...

  4. drush cc all 报错

    请看好 指明了Module文件的行数 报错一定要多看看哦.

  5. PhoneGap插件开发流程

    前几天写了一个PhoneGap插件,这个插件的功能很简单,就是开启viewport设置.不过与其它插件相比,有好几个有意思的地方,仔细读了PhoneGap的源码才搞定.这里记录一下PhoneGap插件 ...

  6. 资源 之 4.2 内置Resource实现(拾)

    4.2  内置Resource实现 4.2.1  ByteArrayResource ByteArrayResource代表byte[]数组资源,对于"getInputStream" ...

  7. 20145218 《Java程序设计》第03次实验报告

    北京电子科技学院(BESTI)实验报告 课程:Java程序设计 班级:1452 指导教师:娄嘉鹏 实验日期:2016.04.22 实验名称:敏捷开发与XP实践 一.实验内容 XP基础 XP核心实践 相 ...

  8. 《javascript高级程序设计》第七章 递归recursion

    7.1 递归7.2 闭包 7.2.1 闭包与变量 7.2.2 关于this 对象 7.2.3 内存泄漏 7.3 模仿块级作用域7.4 私有变量 7.4.1 静态私有变量 7.4.2 模块模式 7.4. ...

  9. Qt Charts

    简述 Qt Charts模块提供了一套易于使用的图表组件.它采用了Qt Graphics View框架,因此图表可以很容易地集成到现代的用户界面. Qt Charts可以被用作QWidgets.QGr ...

  10. JavaScript设计模式的简单理解

    设计模式可以理解为一系列的代码框架,我觉得主要涉及封装的概念.把实现某一功能的代码段封装在函数中,可以方便调用,同时利于代码的复用,提高了代码的可维护性.下面简单介绍一下几种设计模式的个人感受. 1. ...