好久没更新博客了,近期各种忙。

之前做Web Service课程的作业,当中有一个实验。实验内容如题所看到的。

以下简单说下怎样编写Web Serviceclient訪问webxml.com.cn里的Web Service。

1.使用wsimport依据wsdl生成client程序

假设你已经下载好JDK,那么能够在JDK文件夹下看到一个wsimport的程序:

注意要把JDK的bin路径加入到系统环境变量中。

打开www.webxml.com.cn。选择一个你想要使用的Web Service。找到其wsdl文件地址,比如:

然后随便进入一个文件夹,比如src,执行例如以下命令:

wsimport -keep -p client WSDL文件所在网址
当中-p client表示生成的java文件输入到src/client文件夹下。后面的网址为Web Service的wsdl文件地址。

执行结果例如以下:

注意上面可能会出现一些WARNING。这与SOAP的版本号有关,其实这并不会影响到后面程序的执行。

能够看到在src/client文件夹下生成了一大堆.java和.class文件:

2.配置Eclipseproject

打开Eclipse。新建一个Dynamic Web Project项目,将以上的client文件夹拷贝到project的src文件夹下。

前往该网址下载网址上的jar文件,并使用下面命令解压:

java -jar JAXWS2.1.2-20070917.jar
将解压后lib文件夹下的全部jar文件拷贝到project的WebContent/WEB-INF/lib文件夹下。

按F5刷新,project文件夹大致例如以下:

3.编写调用Web Service的client程序

在Client Package中新建一个WSClient类。该类用于调用已经生成的Web Service客户端程序,代码例如以下:
package client;

import client.QqOnlineWebService;
import client.QqOnlineWebServiceSoap; public class WSClient {
public static String main(String qq) {
QqOnlineWebService service = new QqOnlineWebService();
QqOnlineWebServiceSoap soap = service.getQqOnlineWebServiceSoap();
String isOnline = soap.qqCheckOnline(qq);
return (qq + "是否在线?" + isOnline);
}
}


新建一个Check.jsp,该页面用于收集用户的输入,代码例如以下:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Welcome</title>
</head>
<body>
<form action="Result.jsp" method="get">
<p>请输入您的扣扣号: <input type="text" name="qq" /></p>
<input type="submit" value="查询" />
</form>
</body>
</html>

另外再新建一个Result.jsp,该页面用于显示用户输入的扣扣的在线状态。代码例如以下:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="client.*" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>查询结果</title>
</head>
<body>
<%
String qq = request.getParameter("qq");
out.println(WSClient.main(qq));
%>
</body>
</html>

最后在WEB-INF中新建一个web.xml文件,该文件配置Web App的初始页面。主要代码例如以下:
<welcome-file-list>
<welcome-file>Check.jsp</welcome-file>
</welcome-file-list>

执行结果例如以下:



有兴趣的能够部署下程序。输入自己的扣扣玩下。

编写Web Serviceclient訪问www.webxml.com.cn提供的服务的更多相关文章

  1. 实战DeviceIoControl 之中的一个:通过API訪问设备驱动程序

    P.bhw98 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 9pt; PADDING-BOTTOM: 0px; MARGIN: 10px 0 ...

  2. tomcat URL简写案例:模拟站点www.baidu.com的訪问

    tomcat URL简写案例:模拟站点  * 实际URL:http://www.baidu.com:8080/myweb/1.html  * 实际位置:F:\mywebapps\myweb\1.htm ...

  3. HDFS简单介绍及用C语言訪问HDFS接口操作实践

    一.概述 近年来,大数据技术如火如荼,怎样存储海量数据也成了当今的热点和难点问题,而HDFS分布式文件系统作为Hadoop项目的分布式存储基础,也为HBASE提供数据持久化功能,它在大数据项目中有很广 ...

  4. Web网站错误提示页面和默认訪问页面设置

    1.asp.net 定制简单的错误处理页面 通常web应用程序在公布后.为了给用户一个友好界面和使用体验,都会在发生错误时跳转至一个自己定义的错误页面,而不是asp.net向用户暴露出来的具体的异常列 ...

  5. Web.config中设置启用webservice远程调试訪问

    在.NET 中已经默认将webservice的远程调试功能关闭.有的时候我们须要远程调试程序的时候,就须要打开此功能我们仅仅需在webservice的项目的中添web.config的<syste ...

  6. 严重: Error in dependencyCheck java.io.IOException: invalid header field(tomcat启动成功可是訪问web项目404错误)

    tomcat启动的时候出现 严重: Error in dependencyCheck java.io.IOException: invalid header field 而且tomcat也不自己主动r ...

  7. ASP.NET MVC 提供与訪问 Web Api

    ASP.NET MVC 提供与訪问 Web Api 一.提供一个 Web Api 新建一个项目.类型就选 "Web Api". 我用的是MVC5,结果生成的项目一大堆东西.还编译只 ...

  8. 匿名訪问之(一)web application级别

    假设用SharePoint做一个对外开放的公共站点,比方公司展示站点.那么浏览站点的人不须要注冊和登陆.就应该能看到内容.这个时候就须要对站点开启匿名訪问. SharePoint的匿名訪问是从上而下的 ...

  9. 利用JS跨域做一个简单的页面訪问统计系统

    事实上在大部分互联网web产品中,我们一般会用百度统计或者谷歌统计分析系统,通过在程序中引入特定的JS脚本,然后便能够在这些统计系统中看到自己站点页面详细的訪问情况.可是有些时候,因为一些特殊情况,我 ...

随机推荐

  1. 大数据学习——spark-steaming学习

    官网http://spark.apache.org/docs/latest/streaming-programming-guide.html 1.1.  用Spark Streaming实现实时Wor ...

  2. 【IOI1998】Polygon 区间DP

    题意翻译 题目可能有些许修改,但大意一致 多边形是一个玩家在一个有n个顶点的多边形上的游戏,如图所示,其中n=4.每个顶点用整数标记,每个边用符号+(加)或符号*(乘积)标记. 第一步,删除其中一条边 ...

  3. php 审批流程管理

    1.流程管理的用法是什么样的? 2.怎么发起想要的流程? 3.审批的人要是怎么审批通过? 4.流程审核是不是要挨个走过? 一.要有数据库的内容的 肯定会有表的,首先就是用户表了,然后就是流程表,用户编 ...

  4. javascript学习笔记 - 引用类型 RegExp

    四 RegExp 格式: var expression = / pattern / flags; 1.flags 为标志.分别为g.i.m. g:表示全局模式.即模式将匹配所有的字符串,而不是在发现第 ...

  5. 骨牌覆盖问题总结!hihoCoder/ NYOJ-1273宣传墙1151

    本想着做一下第九届河南省省赛题,结果被这个类似骨牌覆盖的题卡住了,队友然我去hihoCoder上老老实实把骨牌覆盖一.二.三做完,这题就没什么问题了.虽然很不情愿,但还是去见识了一下.  骨牌覆盖问题 ...

  6. RabbitMQ的应用场景以及基本原理介绍(转)

    1.背景 RabbitMQ是一个由erlang开发的AMQP(Advanved Message Queue)的开源实现. 2.应用场景 2.1异步处理 场景说明:用户注册后,需要发注册邮件和注册短信, ...

  7. Python之实时调度任务

    过了年就开始面临毕业了,毕业季是幸福的,但也是紧迫的.2月已过就开始着手策划毕业论文了,一直到现在,论文基本完成了,感觉过去的一个半月的时间,对自己过去2年在实验室所学又温习了一遍.书到用时方恨少,在 ...

  8. 【Luogu】P3343地震后的幻想乡(对积分概率进行DP)

    题目链接 神难qwq.配合rqy的博客食用. 首先我们学到有一个概率函数$p(x)$表示某事件发生概率取值小于x的函数.这个函数有什么特点呢? 那就是$\int_{-∞}^{∞}p(x)dx=1$ 这 ...

  9. Code Jam 2017 Round 1A Problem B. Ratatouille

    传送门 分析 首先把包(package)的克数 $Q_{ij}$ 转化成区间 $[\lceil Q_{ij}/(1.1 r_i )\rceil, \lfloor Q_{ij}/(0.9 r_i)\rf ...

  10. 一次向linux开源社区提交补丁的经历

    背景 在开发过程中,偶然发现了spinand驱动的一个bug,满怀欣喜地往社区提补丁.这是怎么样的一个bug呢? static int spinand_mtd_read(struct mtd_info ...