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(三):windows下Redis的安装配置以及注意事项
一.下载windows版本的Redis 去官网找了很久,发现原来在官网上可以下载的windows版本的,现在官网以及没有下载地址,只能在github上下载,官网只提供linux版本的下载 官网下载地址 ...
- Error: Could not find or load main class org.apache.flume.tools.GetJavaProperty
问题: [root@master conf]# flume-ng version Error: Could not find or load main class org.apache.flume.t ...
- excel批量加前后缀
=A1 & “xxx" 似乎只能在新的列里面添加然后粘贴回去
- 浅谈iOS 5的StoryBoard
转自:http://blog.163.com/wangy_0223/blog/static/450146612012318113233218/ 示例代码的Github地址:https://github ...
- poj Ping pong LA 4329 (树状数组统计数目)
Ping pong Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 2302 Accepted: 879 Descript ...
- Oracle之比较NVARCHAR2字符串
一.引言 昨天遇到一个问题,一直想不通是为什么,我在pl/sql里面执行sql语句,选出字段值等于某个值的的行: '; 用select * from test;是可以查到该值的,但是用这条语句却没有结 ...
- Spring可扩展的XML Schema机制
可扩展的XML Schema机制 从Spring2.0开始,Spring提供了XML Schema可扩展机制,用户可以自定义XML Schema文件,并自定义XML Bean解析器,并集成到Sprin ...
- ext树菜单实体类
package cn.edu.hbcf.common.vo; import java.util.ArrayList; import java.util.List; /** * ext树菜单 * * @ ...
- ubox及日志管理
ubox是openwrt的帮助工具箱,位于代码package/system/ubox下, CMakeLists.txt kmodloader.c log/ lsbloader.c validate/ ...
- SVN版本库的备份、还原、移植(初级篇、中级篇和高级篇)
版本库数据的移植:svnadmin dump.svnadmin load 导出: $svnlook youngest myrepos //查看到目前为止最新的版本号 $svnadmin dump my ...