webservice的配置使用
来源:互联网 发布:耳机音质测试软件 编辑:程序博客网 时间:2024/06/06 12:56
-------------------------- 题记
最近朋友公司需要配置一个webservice,之前也没配过服务器端,所以帮他查了查资料,问了问人,自己配了个完整的webservice的应用。
-------------------------- 配置
一、服务器端central server(即需要提供webservice的服务器)
先看目录结构:
1.source
注:其中IWebService的接口和实现类、service的spring bean、spring.xml是必须的。
2.web-inf
注:remote-servlet.xml必须存在于web-inf下,且名字必须为remote-servlet.xml。
关于web.xml中的配置:
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> <display-name>central</display-name> <!-- 启动spring的监听 --> <context-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/classes/spring.xml</param-value> </context-param> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <!-- 远程服务的中央servlet --> <servlet> <servlet-name>remote</servlet-name> <!-- 使用spring框架的中央servlet --> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <!-- 该remote-servlet的spring bean必须存在于web-inf目录下 --> <param-value>/WEB-INF/remote-servlet.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>remote</servlet-name> <!-- 拦截所有/remote/*的请求 --> <url-pattern>/remote/*</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.html</welcome-file> </welcome-file-list> </web-app>
remote-servlet的配置:
<?xml version="1.0" encoding="gbk"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"><!-- HttpInvoker服务端配置(name是映射名) --><!-- 使用spring框架的webservice的应用类 --><bean name="httpMyService" class="org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter"><!-- 服务实现类(name值固定) --><property name="service" ref="webService" /><!-- 服务接口(name值固定) --><property name="serviceInterface" value="com.crx.service.IWebServiceService" /></bean><!-- 用户服务(name值固定) --><!-- 使用spring框架的webservice的应用类 --><bean id="urlMappings" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"><!-- name值固定 --><property name="mappings"><props><!-- /httpMyService是url部分,httpMyService是映射名 --><!-- 如:http://localhost:8080/projectname/remote/httpMyService --><prop key="/httpMyService">httpMyService</prop></props></property></bean></beans>
spring.xml中的配置:
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"><import resource="config/beans/service.xml" /></beans>
service.xml中的配置:
<?xml version="1.0" encoding="gbk"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"><bean name="webService" class="com.crx.service.impl.IWebServiceImpl" /></beans>
服务接口:
package com.crx.service;public interface IWebServiceService {String printInfo() throws Exception;}
服务实现类:
package com.crx.service.impl;import java.io.Serializable;import com.crx.service.IWebServiceService;public class IWebServiceImpl implements IWebServiceService,Serializable {/** * */private static final long serialVersionUID = 1L;public String printInfo() throws Exception {return "中央服务器";}}
注:还需把接口打成一个jar包,此接口要放入本地服务器的/web-inf/lib里面。
二、本地服务器local server(即需要调用webservice的服务器)
目录结构:
1.source
注:其中WebServlet.java、service.xml、spring.xml是必须的。
2.web-inf
关于web.xml中的配置:
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> <display-name>local</display-name> <!-- 启动spring的监听 --> <context-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/classes/spring.xml</param-value> </context-param> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <!-- 会使用到webservice的servlet --> <servlet> <servlet-name>webservice</servlet-name> <servlet-class>com.crx.web.servlet.WebServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>webservice</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>/WEB-INF/pages/test/webservice.jsp</welcome-file> </welcome-file-list> </web-app>
spring.xml中的配置:
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"><import resource="config/beans/service.xml" /></beans>
service.xml的配置:
<?xml version="1.0" encoding="gbk"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"><!-- servlet会调用到的服务 --><!-- 该服务使用spring框架的代理bean --><bean name="mywebService" class="org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean" ><!-- 中央服务器中的webservice的url访问地址(name值固定) --><property name="serviceUrl" value="http://localhost:8080/publicserver/remote/httpMyService" /><!-- 中央服务器中的webservice的服务接口(name值固定) --><property name="serviceInterface" value="com.crx.service.IWebServiceService" /></bean></beans>
package com.crx.web.servlet;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;import org.springframework.web.context.support.WebApplicationContextUtils;import com.crx.service.IWebServiceService;public class WebServlet extends HttpServlet {private static final long serialVersionUID = 1L;protected void doGet(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {//初始化spring工厂//ApplicationContext context = WebApplicationContextUtils.getRequiredWebApplicationContext(req.getSession().getServletContext());ApplicationContext context = new ClassPathXmlApplicationContext("spring.xml");try {//得到服务beancom.crx.service.IWebServiceService service=(IWebServiceService) context.getBean("mywebService");//打印验证System.out.println(service.printInfo());System.out.println(service == null);} catch (Exception e) {e.printStackTrace();}}protected void doPost(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {doGet(req, resp);}}
好了,打完收工。
-------------------------------------- 结
配置好这些东西,便可以在本机上同时启动两个项目,然后访问http://localhost:8080/local/xxx.do,在控制台看打印结果。
结果应该为:
中央服务器
false
0 0
- webservice的配置使用
- 使用IIS配置访问Cognos的WebService
- 在java中使用xfire实现webservice的配置
- PHP搭建WebService(免配置) NuSoap的使用
- YII框架之soap协议的配置跟使用(Webservice)
- Webservice的cxf开发_使用spring配置客户端
- 使用axis配置webservice 方法
- 使用axis2配置webservice服务
- 使用XFire发布webservice配置
- 使用axis2配置webservice服务
- 关于WebService的使用.
- WebService的简单使用
- webservice 的使用问题
- webService的使用步骤
- webservice的使用
- WebService的使用
- WebService的简单使用
- webservice的使用
- 调试 之gdb thread命令 与 ltrace/strace
- 如何理解 iOS Delegate (委托)设计模式
- [Object-C语言随笔之一]Mac os 下搭建iOS开发环境
- linux(debian)安装USB无线网卡(tp-link TL-WN725N rtl8188eu )
- 内部排序算法之堆排序
- webservice的配置使用
- Html5 音频播放器实例
- VS配置属性里没有C/C++
- 九度OJ 1118 数制转换
- shell中变量自增的实现方法
- 使用myeclipse的configuration center安装subclipse插件
- 开发笔记之20140214
- 修改svn文件的存取权限
- hadoop基础知识