`
小笨熊
  • 浏览: 63733 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

WebService的学习成长过程(二)

阅读更多
前面我们已经成功的做了一个WebService,我们仔细想想其实如果再做连接数据库的和返回复杂类型的已经没有什么意义了!我们已经用假数据和配置文件绑定做过了,更多的时候,我们可能需要结合Spring来应用!OK,这就是我们这次研究的重点了!

真的没有想到,用xfire来做WebService和Spring的结合会这么的简单!
我们可以向以前一样引入Spring!之前的例子只需要一点点修改就可以了!

web.xml:
       
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" 
	xmlns="http://java.sun.com/xml/ns/j2ee" 
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
	http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

	<context-param>
	    <param-name>contextConfigLocation</param-name>
	    <param-value>/WEB-INF/applicationContext.xml
	    classpath:org/codehaus/xfire/spring/xfire.xml</param-value>
	</context-param>
	
	<listener>
	    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>
	
	<servlet>
	    <servlet-name>xfire</servlet-name>
	    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
	</servlet>
	
	<servlet-mapping>
	    <servlet-name>xfire</servlet-name>
	    <url-pattern>*.ws</url-pattern><!-- 
	    <url-pattern>/*</url-pattern> -->
	</servlet-mapping>
    
    <servlet>
         <servlet-name>XFireServlet</servlet-name>
         <servlet-class>
                 org.codehaus.xfire.transport.http.XFireConfigurableServlet
         </servlet-class>
     </servlet>
     
     <servlet-mapping>
         <servlet-name>XFireServlet</servlet-name>
         <url-pattern>/servlet/XFireServlet/*</url-pattern>
     </servlet-mapping>
 
     <servlet-mapping>
         <servlet-name>XFireServlet</servlet-name>
          <url-pattern>/services/*</url-pattern>
     </servlet-mapping>

</web-app>


applicationContext.xml:
        
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">

<beans>
	<import resource="classpath:org/codehaus/xfire/spring/xfire.xml" />
	<bean id="userDao" class="com.zhuweisky.xfireDemo.UserDaoImpl"/>
	
	<bean id="userServiceTarget" class="com.zhuweisky.xfireDemo.UserServiceImpl">
		<property name="userDao" ref="userDao"/>
	</bean>
	
	<!-- 使用XFire导出器 -->
	<bean id="baseWebService" class="org.codehaus.xfire.spring.remoting.XFireExporter" lazy-init="false" abstract="true">
	<!-- 引用xfire.xml中定义的工厂 -->
		<property name="serviceFactory" ref="xfire.serviceFactory" />
		<!-- 引用xfire.xml中的xfire实例 -->
		<property name="xfire" ref="xfire" />
	</bean>
	
	<!-- Declare a parent bean with all properties common to both services -->
	<bean id="userService" parent="baseWebService">
	    <property name="serviceBean">
	        <ref bean="userServiceTarget"/>
	    </property>
	    <property name="serviceClass">
	        <value>com.zhuweisky.xfireDemo.UserService</value>
	    </property>
	</bean>
</beans>


好了,只需要这一点点工作就OK了,现在我们可以用http://localhost:8080/你的工程名/services/UserService?wsdl 来访问了。
看到xml,就表示成功了!

把我们的测试类修改下使用:
          
public static void main(String[] args)
	{
    	ApplicationContext ctx = new FileSystemXmlApplicationContext("WebRoot/WEB-INF/applicationContext.xml");
    	
		try{
			XFireExporter xfe = (XFireExporter) ctx.getBean("userService");
//			System.out.println(o.toString());
			UserService srvc = (UserService) xfe.getServiceBean();
			System.out.println(srvc.getUser("tom").getAge());
			List users=srvc.getUsers();
			for (Iterator iter = users.iterator(); iter.hasNext();) {
				User user = (User) iter.next();
				System.out.println(user.getName());
			}
		}catch (Exception e){
			e.printStackTrace();
		}
	}


这样就全部搞定!
分享到:
评论
2 楼 小笨熊 2008-06-19  
引用
如果你的测试跟服务不是在同一贯饿应用下,你还可以在测试里
拿UserService吗?


UserService只是一个接口类而已,在其他应用程序下使用时,直接拷过来就好了!
1 楼 xuewei 2008-06-19  
你好,在你这两个里子中,你是否考虑到你的客户端测试的和你的服务端是在同一个应用下的问题呢?

如果你的测试跟服务不是在同一贯饿应用下,你还可以在测试里
拿UserService吗?

可以加你MSN吗?
我的MSN:xuewei2007@msn.com
    QQ :280256825

相关推荐

    C# XML 入门经典随书源码 WebService开发必备

    在学习过程中,随书源码是一个宝贵的资源,它能帮助读者通过实际操作理解理论知识。对于C# XML入门经典源码,你可能会找到以下几个部分: 1. XML读写:包含读取XML文件到内存并进行修改,然后保存回文件的示例。 2....

    WebService开发教程

    通过这个"TopEng基于BME的WebService开发教程 培训胶片V1.0.ppt",你将获得一系列实践指导和案例研究,帮助你从理论到实践,从初学者成长为WebService开发的专家。无论是进行企业级应用集成还是构建分布式系统,这个...

    java程序员成长之路.doc

    Java 程序员的成长之路是一个长期的过程,需要不断学习和实践。本文将从初识 Java 到成为一名熟练的 Java 开发者,整个过程中需要掌握的知识点和技能。 首先,需要掌握 Java 的基础知识,包括操作对象、if 和 for ...

    Flex3学习指南-是初学者学习Flex必备资料,这是第一套

    在深入学习过程中,教程可能会讲解数据绑定,这是Flex中一个重要的概念,允许视图与模型之间的动态交互。此外,还会涉及事件处理,理解如何响应用户操作并执行相应的代码。ActionScript 3.0的面向对象编程特性,如类...

    java学习路线图

    Java学习路线图:从入门到精通的全面指南 在IT行业,Java作为一门...总之,“java学习路线图”不仅是学习的指南,更是成长的航标,它指引着每位学习者向着技术的高峰不断攀登,最终在Java的世界里找到属于自己的舞台。

    16个经典面试问题回答思路

    - **个人成长机会**:表达希望在这家公司获得成长和学习的机会,同时强调自己也能为公司带来价值。 #### 三、谈谈你的优点 **知识点:** - **具体事例**:在阐述优点时,最好能结合具体的例子来证明自己的能力。 ...

    Javaweb开发学习路线及Java三大框架分享?.pdf

    学习过程中,从配置文件入手,理解每个框架的工作机制和协作方式,逐渐深入高级用法和框架原理。同时,不断地进行项目实践,不断思考和总结,通过编写代码优化框架使用,提升自己的编程能力。通过这样的学习路径,...

    互联网公司实习周记.docx

    3. **信息检索技巧**:在实习的第二周,实习生学习了如何有效使用搜索引擎,如Google和百度,寻找所需信息。此外,还接触了Visio软件,用于绘制流程图和图表,这是项目管理和沟通中常见的工具。 4. **OMS产品介绍**...

    Java EE 学习方向

    ### Java EE 学习方向详解 #### 一、Java核心编程技术 ...通过上述内容的学习,不仅能够成为一名合格的Java程序员,还能够逐渐成长为Java高级软件工程师乃至Java系统架构师,具备设计和构建复杂系统的能力。

    axis2教程word文件

    通过理论讲解与实践操作相结合的方式,确保学员能够从零开始,逐步成长为Axis2领域的专家。此外,课程中还包含了对Axis2最新版本的介绍,以及如何下载和安装所需软件的指导,为学员提供了一条清晰的学习路径。 综上...

    2021软件公司实习总结报告.doc

    此外,我还学习了新技能,如Webservice和iBatis,以及如何将所学的Struts、Hibernate、Spring框架应用到实际项目中。 【技术学习与应用】 在实习中,我接触了Webservice,这是一种轻量级的通信技术,用于接收并...

    学java心得

    Java作为一门广泛使用的编程语言,学习它是一项既有挑战又有乐趣的过程。从初识语法到熟练掌握各种框架和技术,每一步都需要扎实的基础和不断的实践。 首先,Java学习的基础是掌握基本语法和核心概念,如操作对象、...

    .NET编程纪实

    .NET编程纪实是一本面向初学者的编程指导书籍,专为希望学习C#编程语言和.NET...总的来说,.NET编程纪实不仅为初学者提供了坚实的技术基础,还为他们指引了学习的方向,帮助他们逐步成长为一名优秀的.NET开发工程师。

    系统架构设计师(高级)复习精华

    在上学吧等在线学习平台,可以找到相关的考试资料和学习资源,助力个人成长。 总之,系统架构设计师是一个集技术、管理、沟通和预见性于一身的职业。通过不断的技术积累、业务理解、方法论学习以及实战经验,开发...

    2021软件公司实习总结报告.docx

    总结来说,这篇实习报告详尽地描述了实习生在软件开发领域的学习和成长过程,涵盖了项目开发的各个环节,同时也突出了实习对于个人专业技能提升和职业发展的重要作用。通过实习,实习生不仅加深了对软件开发流程的...

    精品专题(2021-2022年收藏)java开发年终总结范文.doc

    总体来看,过去两年的Java开发经历是一个不断学习和成长的过程,涉及了Web开发、系统测试、项目管理和技术研究等多个层面。这表明,作为Java开发者,我们需要持续关注新技术,提升自身技能,以便更好地应对日新月异...

    IT公司技术部门实习总结归纳.pdf

    在IT公司的技术部门实习是一种宝贵的经历,它不仅提供了实际工作经验,还促进了个人技能的发展和专业知识的深化。以下是对实习期间涉及的关键...实习是一个不断学习、成长的过程,为未来的职业生涯打下了坚实的基础。

    2022年java工程师个人年终总结范文.docx

    在这份年终总结中,我们看到一位Java工程师的成长历程,涵盖了项目开发、测试、技术学习等多个方面。 首先,工程师参与了联通116114门户网站的开发,主要负责实现了登录注册、公告模块、短信服务等功能,运用了...

    flex 教程及源码 Flex完全自学手册电子教案(PPT)

    总之,这个“Flex完全自学手册电子教案(PPT)”及源码资源是学习Flex的宝贵材料,涵盖了从基础到高级的多个方面,配合实际操作,将有助于你快速成长为一名熟练的Flex开发者。通过学习Flex,你不仅可以创建出富有...

    JAVA_EE架构师_需要具备的知识.docx

    3. **Web服务**:熟悉WebService的概念和技术,包括SOAP、REST等,这是现代软件架构的重要组成部分之一。 4. **并发与性能优化**:研究高并发场景下的系统设计与优化策略,提升系统整体性能。 #### 三、成熟阶段:...

Global site tag (gtag.js) - Google Analytics