1.基本原理
表现层 《----------》业务层 (自己的)
1.调用别人的(公网)《----------》 公网手机号查询客户端《----------》公网手机号查询服务端
2.发布自己的
2.开发步骤
2.1创建web项目
2.2生成公网客户端代码
查询服务地址:http://www.webxml.com.cn/zh_cn/index.aspx
生成客户端代码:
wsimport -p cn.ceshi.mobile -s . http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx?wsdl
2.3创建SEI接口
@WebService public interface MobileInterface { public String queryMobile(String phoneNum); }
2.4创建SEI实现类
//根据WSDL文件,编写代码 private MobileCodeWSSoap mobileClient; public String queryMobile(String phoneNum) { return mobileClient.getMobileCodeInfo(phoneNum, ""); } public MobileCodeWSSoap getMobileClient() { return mobileClient; } public void setMobileClient(MobileCodeWSSoap mobileClient) { this.mobileClient = mobileClient; }
2.5创建页面
<form action="queryMobile.action" method="post"> 手机号码归属地查询:<input type="text" name="phoneNum" /> <input type="submit" value="查询"/> </form>
2.6创建servlet
private MobileInterface mobileService; public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException { String phoneNum = request.getParameter("phoneNum"); if(null!=phoneNum && !"".equals(phoneNum)) { //获取spring的上下文 (如果学习springMVC就不用这样,直接通过注解) WebApplicationContext context = WebApplicationContextUtils.getWebApplicationContext(this.getServletContext()); mobileService =(MobileInterface)context.getBean("mobileService"); String result = mobileService.queryMobile(phoneNum); request.setAttribute("result", result); } request.getRequestDispatcher("/WEB-INF/jsp/queryMobile.jsp").forward(request, response); } public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException { this.doGet(request, response); }
2.7配置spring的配置文件 applicationContext.xml
<!-- 通过jaxws发布服务 --> <jaxws:server address="/mobile" serviceClass="cn.itcast.mobile.server.MobileInterface"> <jaxws:serviceBean> <ref bean="mobileService"/> </jaxws:serviceBean> </jaxws:server> <!-- 配置服务实现类 --> <bean name="mobileService" class="cn.itcast.mobile.server.MobileInterfaceImpl"> <property name="mobileClient" ref="mobileClient"></property> </bean> <!--配置公网客户端 --> <jaxws:client id="mobileClient" address="http://ws.webxml.com.cn/WebServices/MobileCodeWS.asmx" serviceClass="cn.itcast.mobile.MobileCodeWSSoap"> </jaxws:client>
2.8配置web.xml
<!-- 设置spring的环境 --> <context-param> <!--contextConfigLocation是不能修改的 --> <param-name>contextConfigLocation</param-name> <param-value>classpath:applicationContext.xml</param-value> </context-param> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <!-- 配置CXF的Servlet --> <servlet> <servlet-name>CXF</servlet-name> <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>CXF</servlet-name> <url-pattern>/ws/*</url-pattern> </servlet-mapping> <!--配置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>
时间: 2024-10-29 10:46:58