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综合案例:简易电影推荐系统
随机推荐
- JUC组件扩展(一):FutureTask理解
一.概述 FutureTask包装器是一种非常便利的机制,同时实现了Future和Runnable接口. 类图如下: FutureTask是一种可以取消的异步的计算任务.它的计算是通过Callable ...
- atitit.js的 字符串内容 转义 js处理html
atitit.js的 字符串内容 转义 js处理html 1. js处理html的问题 1 2. js的 字符串内容 转义 1 2.1. 处理流程 1 3. 下面的表格列出了其余的特殊字符,这些特殊 ...
- springboot admin server常用配置
Property name Description Default value spring.boot.admin.context-path The context-path prefixes the ...
- C++语言基础(21)-异常
C++语言本身或者标准库抛出的异常都是 exception 的子类,称为标准异常(Standard Exception).你可以通过下面的语句来捕获所有的标准异常: try{ //可能抛出异常的语句 ...
- makefile之shell函数
shell函数不同于除"wildcard"函数之外的其它函数.make可以使用它来和外部通信. 函数功能:函数"shell"所实现的功能和shell中的引用(` ...
- python之版本管理
linux 环境下怎样对不同的python环境进行 方便的切换呢?update-alternatives工具能够非常方便的帮我们完成这个任务.而windows环境下可通过anaconda来完成. 1. ...
- poj Squares n个点,共能组成多少个正方形 二分 + 哈希
题目链接:http://poj.org/problem?id=2002 测试数据: 41 00 11 10 090 01 02 00 21 22 20 11 12 14-2 53 70 05 20 有 ...
- web.py使用要点
这几天有一个构建restful services的需求,我采用了web.py,之前并没有使用过,但在使用中确实给我带来了很多惊喜.当然,最大的惊喜就是简单,方便.之前开发restful服务的时候,采用 ...
- 关于如何防止PHP漏洞?
踏入编程圈一年不到,之前写的文章一直放在个人博客上,以后我写的或整理的好的教程一定到园子里分享,只是园子里PHPer好像不怎么活跃,希望同行多多交流.这是我之前整理的一篇PHP漏洞文章! 漏洞无非这么 ...
- JQuery基本选择器和基本动画方法总结
刚开始接触JQuery是在大三的时候,那时候先学的Javascript,然后跳跃到JQuery,就一个字,爽.但因为之前用的不是太多,所以很多都忘了,直接导致的后果就是之前在一家公司面试,面试官问我要 ...