WebService 综合案例
1. 需求:
- 集成公网手机号归属地查询服务;
- 对外发布自己的手机号归属地查询服务;
- 提供查询界面
//1. 使用 wsimport 生成公网客户端代码
// 2. 创建 SEI 接口
@WebService
public interface MobileInterface{
public String queryMobile(String phoneNum);
}
// 3. 创建 SEI 实现类
public class MobileImpl implements MobileInterface{
// 公网服务客户端, 使用 Spring 注入
private MobileCodeWSSoap mobileClient;
public MobileCodeSWWoap getMobileClient(){
return mobileClient;
}
public void setMobileClient(MobileCodeWSSoap mobileClient){
this.mobileClient = mobileClient;
}
public String queryMobile(String phoneNum){
// 调用公网服务客户端查询方法
return mobileClient.getMobileCodeInfo(phoneNum,"");
}
}
// 4. 创建 queryMobile.jsp
<form action="${pageContext.request.contextPath}/queryMobile.action" method="post">
手机号码归属地查询:<input type="text" name="phoneNum"/><input type="submie" value="查询"/>
<br/>
查询结果:${result}
</form>
// 5. 创建 MobileServlet.java
public class MobileServlet extends HttpServlet{
public void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
String phoneNum = req.getParameter("phoneNum");
if(null != phoneNum && !"".equals(phoneNum)){
// 获取 Spring 框架中的内容
ApplicationContext context =
WebApplicationContextUtils.getWebApplicationContext(this.getServletContext());
// 获取 mobileServer 对象
mobileServer = (MobileInterface)context.getBean("mobileServer");
String result = mobileServer.queryMobile(phoneNum);
request.setAttribute("result",result);
}
request.getRequest.Dispatcher("/jsp/queryMobile.jsp").forward(req,resp);
}
}
// 6. 配置 applicationContext.xml
<!-- jaxws:server 发布服务 -->
// 配置服务地址和服务接口
<jaxws:server address="/mobile" serviceClass="cn.itcast.mobile.server.MobileInterface">
<jaxws:serviceBean>
<ref bean="mobileServer"/>
</jaxws:serviceBean>
</jaxws:server>
<!-- 配置服务实现类 -->
<bean name="mobileServer" class="cn.itcast.mobile.server.MobileImpl">
<!-- 注入公网客户端 --
<property name="mobileClient" ref="mobileClient"/>
</bean>
<!-- 配置公网客户端 -->
<jaxws:client id="mobileClient"
address="http://ws.webxml.com.cn/WebServices/MobileCodeWS.asmx"
serviceClass="cn.itcast.mobile.MobileCodeWSSoap"/>
// 7. 配置 web.xml
// 参照 CXF+Spring 整合发布SOAP协议服务
// 配置 MobileServlet
<servlet>
<servlet-name>mobileServlet</servlet-name>
<servlet-class>cn.itcast.mobile.server.servlet.MobileServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>mobileServlet</servlet-name>
<url-pattern>*.action</url-pattern>
</servlet-mapping>
参考资料
WebService 综合案例的更多相关文章
- WebService入门案例
关于WebService的作用和好处,大家应该都了解.但如何在Asp.Net中添加Web Service等问题一直是新手朋友的一大难题.鉴于网上没有一个像样的实际案例,特将课程设计中运用到的WebSe ...
- JavaScript:综合案例-表单验证
综合案例:表单验证 开发要求: 要求定义一个雇员信息的增加页面,例如页面名称为"emp_add.htmnl",而后在此页面中要提供有输入表单,此表单定义要求如下: .雇员编号:必须 ...
- DOM综合案例、SAX解析、StAX解析、DOM4J解析
今日大纲 1.DOM技术对xml的增删操作 2.使用DOM技术完成联系人管理 3.SAX和StAX解析 4.DOM4J解析 5.XPATH介绍 1.DOM的增删操作 1.1.DOM的增加操作 /* * ...
- JavaEE Tutorials (30) - Duke综合案例研究示例
30.1Duke综合应用的设计和架构456 30.1.1events工程458 30.1.2entities工程459 30.1.3dukes—payment工程461 30.1.4dukes—res ...
- jquery-easyUI第二篇【综合案例】
基于easyUI开发的一个综合案例模版 <%@ page language="java" pageEncoding="UTF-8"%> <!D ...
- CSS3_综合案例
综合案例 设置元素的 width,还可以利用 left 和 right 为了防止图片太小,background-size: 100% 100%; <!DOCTYPE html> <h ...
- Angular路由与多视图综合案例
Ajax请求存在的几个问题 (1)Ajax请求不会留下History 记录,会导致浏览器后退按钮失效 (2)用户无法直接通过URL进入应用中的指定页面(保存书签.链接分享给朋友) (3)Ajax对SE ...
- Winform开发框架中的综合案例Demo
在实际的系统开发中,我们往往需要一些简单的的案例代码,基于此目的我把Winform开发框架中各种闪光点和不错的功能,有些是我们对功能模块的简单封装,而有些则是引入了一些应用广泛的开源组件进行集成使用, ...
- 【原创 Hadoop&Spark 动手实践 13】Spark综合案例:简易电影推荐系统
[原创 Hadoop&Spark 动手实践 13]Spark综合案例:简易电影推荐系统
随机推荐
- redis conf 详解
2.8配置 # Redis configuration file example # Note on units: when memory size is needed, it is possible ...
- 阿里大鱼短信接口(Python3版)
近期由于须要用到短信接口,选型的的结果是用阿里大鱼的短信服务,然而淘宝开放平台(TOP)的SDK已经非常多年没有更新了.不支持python3.自己动手改了半天,还是不太正常,索性不用它,自己写一个算了 ...
- python-sqlite3之占位符
The sqlite3 module supports two kinds of placeholders: question marks (qmark style) and named placeh ...
- Python内置函数之int()
class int(x, base=10) 返回一个整型对象.默认返回0. 参数x可以是字符串,也可以是浮点数. base指x的进制形式,比如2表示2进制,10表示10进制.特别需要注意的是,0表示任 ...
- apue.h文件找不到的解决办法
参考:http://blog.csdn.net/nihaotoyou/article/details/16827675 1.首先到该书的官网下载源代码:http://www.apuebook.com/ ...
- 初识PowerShell
一.简介 Windows PowerShell 是微软公司为Windows环境所开发的壳程序(shell)及脚本语言技术,采用的是命令行界面.这项全新的技术提供了丰富的控制与自动化的系统管理能力.之前 ...
- Vue 混合
混合(mixins)是一种分发vue组件中可复用功能的非常灵活的方式.混合对象可以可以包含任意组件选项.以组件使用混合对象时,所有混合对象的选项将被混合到该组件本身的选项. //定义一个混合对象 va ...
- redis 优缺点 使用场景
1. 使用redis有哪些好处? (1) 速度快,因为数据存在内存中,类似于HashMap,HashMap的优势就是查找和操作的时间复杂度都是O(1) (2) 支持丰富数据类型,支持string,li ...
- 使用uGUI系统玩转标准俄罗斯方块
使用uGUI系统玩转标准俄罗斯方块 笔者使用的Unity3D版本是4.6b17.由于一些工作上的一些事情导致制作的进度被严重滞后.笔者实际用于开发俄罗斯方块的时间,大概也就2-3天吧. 开始前的准备 ...
- hdu3667 Transportation 费用与流量平方成正比的最小流 拆边法+最小费用最大流
/** 题目:hdu3667 Transportation 拆边法+最小费用最大流 链接:http://acm.hdu.edu.cn/showproblem.php?pid=3667 题意:n个城市由 ...