博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
webservice
阅读量:5293 次
发布时间:2019-06-14

本文共 2562 字,大约阅读时间需要 8 分钟。

MonsterCoder

我们先看下webservice有关知识点:

webservice就是远程调用技术,也叫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格式来封装各种不同类型的数据,并且发送到注册中心或者由注册中心来返回需要的数据。

然后我们做一个快速demo,来感受下webservice

package com.cyy.service;import javax.jws.WebService;@WebServicepublic interface IHelloWorld {    public String syaHello();}
package com.cyy.service;import javax.jws.WebService;@WebService(endpointInterface="com.cyy.service.IHelloWorld")public class HelloWorldImpl implements IHelloWorld {    @Override    public String syaHello() {        return "helloWorld"; } }
package com.cyy.service;import javax.xml.ws.Endpoint;public class HelloWorld {    public static void main(String[] args) {        //确定一个在网上发布的地址address        String address = "http://localhost:6666/hello";        //发布        Endpoint.publish(address, new HelloWorldImpl()); } }
 

package com.cyy.service;

 

import java.net.MalformedURLException;

import java.net.URL;
import javax.xml.namespace.QName;
import javax.xml.ws.Service;

 

public class TestClient {

 

public static void main(String[] args) {

try {
// 创建访问wsdl服务地址的url
URL url = new URL("http://localhost:6666/hello?wsdl");
// 通过Qname指明服务的具体信息
QName name = new QName("http://service.cyy.com/", "HelloWorldImplService");
Service service = Service.create(url, name);
IHelloWorld ih = service.getPort(IHelloWorld.class);
System.out.println(ih.syaHello());
} catch (MalformedURLException e) {
e.printStackTrace();
}
}

}

这里其实会有一个问题,我们用这种方式去使用接口的时候,我们依然需要依赖IHelloWorld接口,这个就很不合理了,不应该依靠对方的服务平台而是需要依赖自己的服务平台

闲话不多说,其实我们可以通过wsimport轻松的导入我们的webservice,首先我们先来看一下里面的命令

生成客户端代码只需要一条命令(ps:java6版本之后都有这个命令)

-d:指定文件输出位置 f:/webservice/demo01:我在f盘建的目录 -keep:保留生成文件
wsimport -d f:/webservice/demo01/ -keep -verbose http://localhost:6666/hello?wsdl

我们去文件夹中看一下是否生成了java文件

 

我们新建一个项目webservice_demo02将生成的文件导入到我们的项目中,再把测试类放进去运行下

 

OK,我们在这个测试过中和生成客户端文件的过程中一定要注意:发布服务的类一定要运行!!!

好了,今天就到这。接下来我会陆续往服务中添加更多有趣的东西

 

转载于:https://www.cnblogs.com/MonsterCui-Code/p/8834996.html

你可能感兴趣的文章
身份证号码验证 类
查看>>
oracle listagg函数、lag函数、lead函数 实例
查看>>
mongodb测试类
查看>>
jvm 内存溢出 在myeclipse中加大tomcat的jvm内存 java.lang.OutOfMemoryError: PermGen space
查看>>
ExtAspNet v3.1.8 发布了
查看>>
(分享)C# 绘制统计图(柱状图, 折线图, 扇形图)
查看>>
html学习笔记二
查看>>
CentOS 6.6安装配置CVS
查看>>
测试工具文件4. 数据分析——定义analyseXML
查看>>
【转载】递归算法详解
查看>>
poj1852 Ants
查看>>
数据处理之文件读写
查看>>
Openssl生成证书
查看>>
工具使用及环境搭建
查看>>
单例模式 分析 代码优化
查看>>
[心情琐记]-为什么我选择做一个程序员?【谨以此文献给初入技术之路的纯白少年】...
查看>>
DBCC CHECKDB 数据库或表修复
查看>>
PHP的分页
查看>>
ZOJ 3791 An Easy Game [组合计数]
查看>>
DOM
查看>>