离职了,趁着在家的这几天,了解和学习了下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是一种基于XML的开放标准,用于在不同系统间交换数据和服务。它允许不同的应用程序、操作系统甚至编程语言之间进行互操作,通过HTTP协议进行通信,实现分布式...
### WebService入门教程知识点详解 #### 一、WebService概述 1. **定义**: - WebService是一种跨编程语言和操作系统平台的远程调用技术,它允许程序通过HTTP协议访问远程服务器上的应用服务资源。 - WebService...
【标题】:WebService入门教程 - Java WebService 【描述】:本教程旨在引导初学者了解如何使用Eclipse集成开发环境来发布基于Java语言的WebServices服务。WebServices是一种允许不同系统之间进行交互和数据交换的...
在本示例“webservice入门demo”中,我们主要关注的是如何使用C#语言来开发一个简单的Web服务以及相应的客户端测试。 1. **Web服务的概念**: Web服务是一种基于XML(Extensible Markup Language)的协议,它使用...
在WebService入门教程中,通常会介绍以下几个关键知识点: 1. XML:WebService使用XML作为数据交换的格式,因此首先要了解XML的基本概念,包括标签、元素、属性等。 2. SOAP:这是一种基于XML的协议,用于在网络上...
【WebService入门】是一个针对初学者精心制作的压缩包资源,旨在帮助学习者快速掌握Web服务的基础知识。WebService是一种基于开放标准(如SOAP、WSDL和UDDI)的互联网通信协议,它允许不同系统和应用程序之间进行...
【C# WebService入门实例详解】 在.Net平台上,利用C#语言开发WebService是构建分布式应用程序的一种常见方式。本文将引导初学者逐步了解如何创建和调用WebService,涵盖基本概念、特性以及具体步骤。 1. ...
### C# WebService 入门知识点详解 #### 一、基本概念 WebService 是一种通过网络进行数据交换和服务交互的技术标准,其核心特点是基于 XML 的数据格式。WebService 可以被视为 HTTP 协议的一种补充,利用 SOAP...
通过这个简单的Java WebService入门实例,我们可以了解到如何使用Java来创建、发布和调用一个基本的WebService。实际开发中,WebService还涉及到更多复杂的应用,如安全性、事务处理、错误处理等,这些都是进阶学习...
本资源的"Java的webservice入门"视频教程很可能涵盖了以下内容: - Web Service的基本概念和工作原理 - 如何创建和发布一个简单的SOAP或RESTful Web Service - 使用JAX-WS或JAX-RS编写服务端代码 - 客户端如何调用...
**WebService入门介绍及实例** WebService是一种基于Web的、开放式的标准接口,它允许不同的应用程序之间进行交互和数据交换,跨越了操作系统、编程语言的界限。WebService的核心技术包括XML(可扩展标记语言)、...
### Web服务基础知识与Axis2应用 #### 课程目标 本教程旨在帮助读者全面掌握Web服务的基础知识及其在实际开发中的应用。通过系统的学习,学员能够理解Web服务的基本概念、技术栈以及相关的标准,并能利用Apache ...
WebService入门精选视频教程day3详细解析 在信息技术领域,WebService是一种基于开放标准的,使得不同系统之间能够进行数据交换和功能调用的技术。它通过XML(Extensible Markup Language)、SOAP(Simple Object ...
WebService入门小例子主要介绍了如何利用AXIS框架来实现一个简单的IP查询服务。在IT行业中,WebService是一种基于标准的,能够跨平台、跨语言的分布式计算技术,它允许不同系统之间通过网络交换数据和服务。AXIS是...
**WebService入门案例java工程代码详解** 在IT行业中,WebService是一种基于开放标准的、平台无关的交互方式,允许不同系统之间交换数据。它通过SOAP(Simple Object Access Protocol)协议传输数据,使用WSDL(Web...
WebService入门教程简单入门教程 .
Web服务(WebService)是一种基于互联网的,用于应用程序之间交互的技术标准。它允许不同的系统通过网络进行数据交换,实现跨平台的互操作性。本入门教程将带你了解如何使用XFire库来创建和消费Web服务。 首先,让...
**Jbuilder开发WebService入门** Java Web Service(简称WebService)是一种基于标准协议的,可以在不同操作系统、不同编程语言之间进行通信的网络服务。Jbuilder作为早期的Java集成开发环境,提供了强大的支持来...
Java WebService 入门实战主要涉及使用 Axis2 框架开发和部署 WebService 的基本步骤。Axis2 是Apache组织开发的一个Web服务引擎,它提供了更高效、更灵活的架构,支持SOAP 1.1和1.2协议,同时集成RESTful ...