`

WebSerice入门

阅读更多

离职了,趁着在家的这几天,了解和学习了下JBMP和webservice。

本次日志主要是说webservice的入门操作。

首先,需要对webservice有个整体的了解。

     webService就是一个应用程序,它提供一种通过web访问的api。

那么webService有什么作用呢?

 解决两个或者两个应用程序之间的远程调用(跨平台,跨语言,即java可以调用.net,C或者C也可以调用java,页游中一般会用到);

一般来说,webService的基本组成就是客户端,服务端。

webService应用举例:

服务器端:

xml(client与server进行交互的数据格式);

webservice description languange(WEB服务描述语言,api),简称wsdl;

soap(简单对象访问协议),server与client进行交互时走的协议(协议就是规则),soap协议=在http的基础之上传送xml格式的数据...

 

注意:你的JDK或者JRE版本最低为1.6.0_21,只能比这个版本高,否则你使用Java代码进行发布的时候会出现缺少ATP的异常。

 

说完了这些,下面来说一个最简单的例子:

按步骤来说,第一步,创建服务器端,创建一个Server(Java Project)(需要在类上添加@WebService注解,同时类中要有实例方法):

import javax.jws.WebService;
@WebService
public class HelloService {
    public void doubleKill(){
        System.out.println("doubleKill");
    }
}

发布服务:

import javax.xml.ws.Endpoint;

public class PublishService {
    public static void main(String[] args) {
        Endpoint.publish("http://127.0.0.1:9999/helloService", new HelloService());
    }
}

此时,可以通过浏览器访问以下这个地址:http://127.0.0.1:9999/helloService,会跳转到一个webService的提示页面。如果访问:http://127.0.0.1:9999/helloService?wsdl,那么出现远程访问的说明文档(xml格式),

你需要读懂它,我下次博客中会进行说明,这里先跳过。

第二步,使用wsimport命令生成相关java和class文件。

进入cmd提示符,首先跳转到D盘目录下(这里的目录你可以随意指定),

wsimport -s . http://127.0.0.1:9999/helloService?wsdl,执行效果如下:

 

第三步:创建客户端程序,

创建一个Java Project(Client),将wsimport命令生成的java文件拷贝到src下,

开始编写测试程序:HelloClient.java文件,总体结构如右图(红色方框标明的是自己写的测试类,其他的均为命令生成的)

这里需要说下访问http://http://127.0.0.1:9999/helloService?wsdl生成的xml文件(即webService的API说明)

 

<?xml version="1.0" encoding="UTF-8"?><!-- Published by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is JAX-WS RI 2.1.6 in JDK 6. --><!-- Generated by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is JAX-WS RI 2.1.6 in JDK 6. --><definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://service.itheima.com/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://service.itheima.com/" name="HelloServiceService">
<types>
<xsd:schema>
<xsd:import namespace="http://service.itheima.com/" schemaLocation="http://127.0.0.1:9999/helloService?xsd=1"></xsd:import>
</xsd:schema>
</types>
<message name="doubleKill">
<part name="parameters" element="tns:doubleKill"></part>
</message>
<message name="doubleKillResponse">
<part name="parameters" element="tns:doubleKillResponse"></part>
</message>
<portType name="HelloService">
<operation name="doubleKill">
<input message="tns:doubleKill"></input>
<output message="tns:doubleKillResponse"></output>
</operation>
</portType>
<!-- 绑定名(下面根据此信息来获取相关实现类) -->
<binding name="HelloServicePortBinding" type="tns:HelloService">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"></soap:binding>
<operation name="doubleKill">
<soap:operation soapAction=""></soap:operation>
<input>
<soap:body use="literal"></soap:body>
</input>
<output>
<soap:body use="literal"></soap:body>
</output>
</operation>
</binding>
<!-- 这是接口实现类 -->
<service name="HelloServiceService">
<!-- 接口名以及绑定在谁上面 -->
<port name="HelloServicePort" binding="tns:HelloServicePortBinding">
<soap:address location="http://127.0.0.1:9999/helloService"></soap:address>
</port>
</service>
</definitions>

 

,测试类的java代码(其实此时就是客户端不知道服务器端的程序是怎么写的,也不需要去管服务器端的程序时用什么语言来编写的,只要知道文档说明就可以了),测试类如下:

 

public class HelloClient {
	public static void main(String[] args) {
		helloService();
	}
	
	public static void helloService() {
		HelloService helloService = new HelloServiceService().getHelloServicePort();
		helloService.doubleKill();
	}
}

 ,执行就可以调用服务器端的代码了,成功后控制台就会打印出doubleKill关键字。

 

其实除了这一种方法调用之外,还有两个方法,一种是通过myeclipse自带的WebService Explorer(不知道为什么,我这边一直没有成功),一种是直接使用Java代码进行访问,使用java.net.URLConnect相关API进行访问,下次博客将会进行说明。

下面进行下整体流程的一个分析:

 

小结:其实webService的主要作用是在web上发布服务供别人调用,或者在自己的应用程序上调用别人发布的web服务,可以用于多个系统之间的通信,而且这是跨平台、跨语言的一种技术实现(在网页游戏中用的普遍比较多)。

 

 

 

分享到:
评论

相关推荐

    WebService入门简单实例(采用AXIS的方式)

    WebService入门简单实例(采用AXIS的方式) WebService是一种基于XML的开放标准,用于在不同系统间交换数据和服务。它允许不同的应用程序、操作系统甚至编程语言之间进行互操作,通过HTTP协议进行通信,实现分布式...

    webService入门教程

    ### WebService入门教程知识点详解 #### 一、WebService概述 1. **定义**: - WebService是一种跨编程语言和操作系统平台的远程调用技术,它允许程序通过HTTP协议访问远程服务器上的应用服务资源。 - WebService...

    webService入门教程_java_webservice_

    【标题】:WebService入门教程 - Java WebService 【描述】:本教程旨在引导初学者了解如何使用Eclipse集成开发环境来发布基于Java语言的WebServices服务。WebServices是一种允许不同系统之间进行交互和数据交换的...

    webservice入门demo

    在本示例“webservice入门demo”中,我们主要关注的是如何使用C#语言来开发一个简单的Web服务以及相应的客户端测试。 1. **Web服务的概念**: Web服务是一种基于XML(Extensible Markup Language)的协议,它使用...

    webService入门教程 pdf 高清

    在WebService入门教程中,通常会介绍以下几个关键知识点: 1. XML:WebService使用XML作为数据交换的格式,因此首先要了解XML的基本概念,包括标签、元素、属性等。 2. SOAP:这是一种基于XML的协议,用于在网络上...

    WebService入门.zip

    【WebService入门】是一个针对初学者精心制作的压缩包资源,旨在帮助学习者快速掌握Web服务的基础知识。WebService是一种基于开放标准(如SOAP、WSDL和UDDI)的互联网通信协议,它允许不同系统和应用程序之间进行...

    C# WebService入门实例

    【C# WebService入门实例详解】 在.Net平台上,利用C#语言开发WebService是构建分布式应用程序的一种常见方式。本文将引导初学者逐步了解如何创建和调用WebService,涵盖基本概念、特性以及具体步骤。 1. ...

    C# WebService入门.docx

    ### C# WebService 入门知识点详解 #### 一、基本概念 WebService 是一种通过网络进行数据交换和服务交互的技术标准,其核心特点是基于 XML 的数据格式。WebService 可以被视为 HTTP 协议的一种补充,利用 SOAP...

    Java WebService入门实例

    通过这个简单的Java WebService入门实例,我们可以了解到如何使用Java来创建、发布和调用一个基本的WebService。实际开发中,WebService还涉及到更多复杂的应用,如安全性、事务处理、错误处理等,这些都是进阶学习...

    Java的webservice入门(视频+代码)

    本资源的"Java的webservice入门"视频教程很可能涵盖了以下内容: - Web Service的基本概念和工作原理 - 如何创建和发布一个简单的SOAP或RESTful Web Service - 使用JAX-WS或JAX-RS编写服务端代码 - 客户端如何调用...

    WebService入门介绍及实例

    **WebService入门介绍及实例** WebService是一种基于Web的、开放式的标准接口,它允许不同的应用程序之间进行交互和数据交换,跨越了操作系统、编程语言的界限。WebService的核心技术包括XML(可扩展标记语言)、...

    Webservice入门到精通

    ### Web服务基础知识与Axis2应用 #### 课程目标 本教程旨在帮助读者全面掌握Web服务的基础知识及其在实际开发中的应用。通过系统的学习,学员能够理解Web服务的基本概念、技术栈以及相关的标准,并能利用Apache ...

    WebService入门精选视频教程day3(极详细)

    WebService入门精选视频教程day3详细解析 在信息技术领域,WebService是一种基于开放标准的,使得不同系统之间能够进行数据交换和功能调用的技术。它通过XML(Extensible Markup Language)、SOAP(Simple Object ...

    WebService入门小例子

    WebService入门小例子主要介绍了如何利用AXIS框架来实现一个简单的IP查询服务。在IT行业中,WebService是一种基于标准的,能够跨平台、跨语言的分布式计算技术,它允许不同系统之间通过网络交换数据和服务。AXIS是...

    WebService入门案例java工程代码

    **WebService入门案例java工程代码详解** 在IT行业中,WebService是一种基于开放标准的、平台无关的交互方式,允许不同系统之间交换数据。它通过SOAP(Simple Object Access Protocol)协议传输数据,使用WSDL(Web...

    WebService入门教程.pdf

    WebService入门教程简单入门教程 .

    webservice入门教程(含例子源码)

    Web服务(WebService)是一种基于互联网的,用于应用程序之间交互的技术标准。它允许不同的系统通过网络进行数据交换,实现跨平台的互操作性。本入门教程将带你了解如何使用XFire库来创建和消费Web服务。 首先,让...

    Jbuilder开发WebService入门

    **Jbuilder开发WebService入门** Java Web Service(简称WebService)是一种基于标准协议的,可以在不同操作系统、不同编程语言之间进行通信的网络服务。Jbuilder作为早期的Java集成开发环境,提供了强大的支持来...

    java-webservice入门实战.doc

    Java WebService 入门实战主要涉及使用 Axis2 框架开发和部署 WebService 的基本步骤。Axis2 是Apache组织开发的一个Web服务引擎,它提供了更高效、更灵活的架构,支持SOAP 1.1和1.2协议,同时集成RESTful ...

Global site tag (gtag.js) - Google Analytics