Web Service(上)
1.XML
CDATA指不应由XML解析器进行解析的文本数据。
在XML元素中,<和&是非法的。解析器会把字符<解释为新元素的开始,把字符&解释为字符实体的开始。
某些文本,比如JavaScript代码,包含大量<或&字符。为了避免错误,可以将脚本代码定义为CDATA。
CDATA部分由<![CDATA[开始,由]]>结束。
DTD(文档类型定义)是一种XML的约束方式,它的目的就是约束XML标记的写法。
XML Schema(XML Schema Definition,XSD)比DTD的约束能力强,所以DTD正在被逐渐淘汰。
在开发中通过Eclipse导入DTD文件,便于开发提示。
在XML中导入DTD,可以通过两种方式:
- 在XML中直接编写,
<!DOCTYPE 根节点 [ ...... ]>。 - 在专门的DTD文件中编写,然后在XML中通过特定的语句导入DTD文件。在导入时,要知道DTD文件是本地文件还是共享文件。
本地文件的导入格式:<!DOCTYPE 根节点 SYSTEM "dtd的URL">。
共享文件的导入格式:<!DOCTYPE 根节点 PUBLIC "dtd的名称""dtd的URL">。
book.xsd
<?xml version="1.0" encoding="UTF-8" ?>
<schema xmlns="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.atguigu.com/bookSchema"
elementFormDefault="qualified">
<element name="书架">
<complexType>
<sequence maxOccurs="unbounded">
<element name="书">
<complexType>
<sequence>
<element name="书名" type="string" />
<element name="作者" type="string" />
<element name="售价" type="string" />
</sequence>
</complexType>
</element>
</sequence>
</complexType>
</element>
</schema>
book.xsd文件通过xmlns="http://www.w3.org/2001/XMLSchema"引入Schema约束。
targetNamespace="http://www.atguigu.com/bookSchema"是book.xsd文件的ID。
book.xml
<?xml version="1.0" encoding="UTF-8"?>
<书架 xmlns="http://www.atguigu.com/bookSchema"
xmlns:dd="http://www.w3.org/2001/XMLSchema-instance"
dd:schemaLocation="http://www.atguigu.com/bookSchema book.xsd">
<书>
<书名>JavaScript开发</书名>
<作者>老佟</作者>
<售价>28.00元</售价>
</书>
</书架>
book.xml引入了约束xmlns="http://www.atguigu.com/bookSchema"。
通过schemaLocation="http://www.atguigu.com/bookSchema book.xsd"指定约束文件的位置。属性schemaLocation通过约束xmlns="http://www.w3.org/2001/XMLSchema-instance"引入,所以这里引入了两个约束,需要给其中一个约束起别名(因为DTD无法解决“在引入多个约束时,有同名标签,导致命名冲突”的问题,所以出现了Schema,它是DTD的替代者)。下面代码中的dd就是别名。
xmlns:dd="http://www.w3.org/2001/XMLSchema-instance"
dd:schemaLocation="http://www.atguigu.com/bookSchema book.xsd"
2.WebService简介

Web Service
Web Service是应用程序组件,它使用开放协议进行通信,可通过使用UDDI来发现。
Web Service基于HTTP和XML。HTTP 协议是最常用的因特网协议。XML 提供了一种可用于不同的平台和编程语言之间的语言。
Web services 平台的元素:
- SOAP (简易对象访问协议)
- UDDI (通用描述、发现及整合)
- WSDL (Web services 描述语言)
SOAP
SOAP是指简易对象访问协议,它是一种用于应用程序之间的通信协议。
SOAP基于XML,独立于平台、独立于语言。
SOAP很简单并可扩展。
SOAP允许你绕过防火墙。
SOAP将被作为 W3C 标准来发展。
WSDL
WSDL 指网络服务描述语言 (Web Services Description Language)。
WSDL 是一种使用 XML 编写的文档。这种文档可描述某个 Web service。它可规定服务的位置,以及此服务提供的操作(或方法)。
3.使用JDK开发Web Service
发布Web Service
import javax.jws.WebMethod;
import javax.jws.WebService;
/*
* SEI:
*/
@WebService
public interface HelloWS {
@WebMethod
public String sayHello(String name);
}
import javax.jws.WebService;
/*
* SEI的实现
*/
@WebService
public class HelloWSImpl implements HelloWS {
@Override
public String sayHello(String name) {
System.out.println("server sayHello() "+name);
return "Hello " + name;
}
}
import javax.xml.ws.Endpoint;
import com.atguigu.day01_ws.ws.HelloWSImpl;
/*
* 发布Web Service
*/
public class ServerTest {
public static void main(String[] args) {
String address = "http://192.168.1.108:8989/day01_ws/hellows";
Endpoint.publish(address , new HelloWSImpl());
System.out.println("发布webservice成功!");
}
}



请求Web Service
根据WSDL文档生成客户端代码。


import com.atguigu.day01_ws.ws.HelloWSImpl;
import com.atguigu.day01_ws.ws.HelloWSImplService;
/*
* 调用webservice
*/
public class ClientTest {
public static void main(String[] args) {
HelloWSImplService factory = new HelloWSImplService();
HelloWSImpl helloWS = factory.getHelloWSImplPort();
System.out.println(helloWS.getClass());
String result = helloWS.sayHello("Jack");
System.out.println("client "+result);
}
}

Web Service(上)的更多相关文章
- web service上传参数代码实例
web service上传参数代码实例 这次做的项目用到webservice比较多,最开始在网上看的参考dome,发现都不行,后来发现安卓4.0以后有很大的不同,在做传参时,有些东西需要注意: 第一, ...
- 从WEB SERVICE 上返回大数据量的DATASET
前段时间在做一个项目的时候,遇到了要通过WEB SERVICE从服务器上返回数据量比较大的DATASET,当然,除了显示在页面上以外,有可能还要用这些数据在客户端进行其它操作.查遍了网站的文章,问了一 ...
- web service 上传file说明
之前做过一个接口,PI发布WEB SERVICE给对方调,传附件到SAP... 接口中包含文件名称,文件类型,文件流... 1.SOAPUI新建项目: 文件内容的地方会自动带上一个ID,这个ID对应文 ...
- java web service 上传下载文件
1.新建动态web工程youmeFileServer,新建包com,里面新建类FileProgress package com; import java.io.FileInputStream; imp ...
- [转载] 学会使用Web Service上(服务器端访问)~~~
http://www.360doc.com/content/10/0712/12/541242_38461863.shtml# 关于什么是Web Service,相信在很多地方都会有介绍.简单的讲,W ...
- 构建安全的Xml Web Service系列之SSL篇
原文:构建安全的Xml Web Service系列之SSL篇 首先介绍一下SSL, SSL 的英文全称是 "Secure Sockets Layer" ,中文名为 "安全 ...
- 用MyEclipse开发REST Web Service
MyEclipse 在线订购年终抄底促销!火爆开抢>> MyEclipse最新版下载 使用MyEclipse开发RESTWeb服务来放大您的Web应用程序.在本教程示例中,您将创建一个简单 ...
- 怎样创建.NET Web Service http://blog.csdn.net/xiaoxiaohai123/article/details/1546941
为什么需要Web Service 在通过internet网购买商品后,你可能对配送方式感到迷惑不解.经常的情况是因配送问题找配送公司而消耗你的大量时间,对于配送公司而言这也不是一项增值服务. 为了解决 ...
- 使用.NET框架、Web service实现Android的文件上传(二)
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAYUAAAKpCAIAAADcx6fPAAAgAElEQVR4nOydd1hT5+LHg1attbfr1t ...
- 使用.NET框架、Web service实现Android的文件上传(一)
上面是上传结果的展示,下面具体讲一下实现过程. 一.Web Service (.NET) namespace VedioPlayerWebService.service.vedios { [WebSe ...
随机推荐
- Netty源码分析第2章(NioEventLoop)---->第1节: NioEventLoopGroup之创建线程执行器
Netty源码分析第二章: NioEventLoop 概述: 通过上一章的学习, 我们了解了Server启动的大致流程, 有很多组件与模块并没有细讲, 从这个章开始, 我们开始详细剖析netty的各个 ...
- openstack horizon开发第一天
horizon插件构造 创建一个dashboardmkdir opesntack_dashboard/dashboards/mydashboardpython manage.py startdash ...
- 02_python内置模块_timeit
timeit模块可以用来测试一小段python代码的执行速度. (1)timeit.Timer(stmt='pass', setup='pass', timer=<timer function& ...
- 为centos虚拟机配置固定ip
在virtual上安装centos虚拟机以后,发现虚拟机没有ip,无法联网 将虚拟机的网络适配器改为桥接模式,桥接到物理机的无线网卡 为虚拟机配置固定IP(vi /etc/sysconfig/netw ...
- python其他知识目录
博客目录总纲首页 基础的重要性(程序员之路) 做一个“合格”的程序员(一)——基础能力 作为一个程序员,数学对你到底有多重要 同样是程序员,为什么别人比你更优秀? ------------------ ...
- iOS开发日常遇到问题记录
1. [self.navigationController.navigationBar setTranslucent:NO]; iOS 7 之后,setTranslucent=yes 默认的 则状 ...
- iOS 开发学习-import和include的区别
//当我们在代码中使用两次#include的时候会报错:因为#include相当于拷贝头文件中的声明内容,所以会报重复定义的错误 //但是使用两次#import的话,不会报错,所以他可以解决重复导入的 ...
- 进阶系列(4)—— C#文件与流
一. 驱动器 在Windows操作系统中,存储介质统称为驱动器,硬盘由于可以划分为多个区域,每一个区域称为一个驱动器..NET Framew ork提供DriveInfo类和 DriveType枚 ...
- DFS--障碍在指定时间会消失
哈利被困在了一个魔法花园里.魔法花园是一个 N*M 的矩形,在其中有着许多植物, 这些植物会在时刻 K 的倍数消失. 哈利每单位时间都会选择上.下.左.右四 个方向的其中一个进行移动. #includ ...
- 对于Redis的了解
Redis :高性能的key-value数据库,支持存储的value类型包括字符串.链表.集合.有序集合.哈希类型. redis使用两种文件格式:全量数据和增量请求. 全量数据格式是将内存中的数据写入 ...