`
kidiaoer
  • 浏览: 822753 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

WebService开发实例

阅读更多

WebService开发实例 (Xfire+Spring+Hibernate) 
 
请注意,需要下载Xfire1.2.6、spring2.0,hibernate 3.0相关类库及相关数据库的jdbc驱动。本文相关内容是在myeclipse5.1下完成。
 
一、           首先在web.xml中添加对xfire及spring支持的相关内容,如下:
 
<?xml version="1.0" encoding="ISO-8859-1"?>
 
<!DOCTYPE web-app
    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
    "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<!-- START SNIPPET: xfire -->
<context-param>
<!—xfire及spring相关配置文件位置 -->
 
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/applicationContext.xml 
        classpath:org/codehaus/xfire/spring/xfire.xml</param-value>
    </context-param>
 
    <context-param>
        <param-name>log4jConfigLocation</param-name>
        <param-value>/WEB-INF/log4j.properties</param-value>
    </context-param>
   
    <context-param>
        <param-name>webAppRootKey</param-name>
        <param-value>webservicetest.root</param-value>
    </context-param>
 
 
     <filter>
        <filter-name>sessionFilter</filter-name>
        <filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
    </filter>  
    <filter-mapping>
        <filter-name>sessionFilter</filter-name>
        <url-pattern>/services/*</url-pattern>
    </filter-mapping>       
      
    <listener>
        <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
    </listener>
 
    <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>/services/*</url-pattern>
    </servlet-mapping>      
   
<!-- END SNIPPET: xfire -->
</web-app>
 
二、           applicationContext.xml文件内容:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd">
<beans>
 
<!-- 数据库连接配置 -->
    <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
   
        <property name="location" value="/WEB-INF/jdbc_connect.properties"/>
       
    </bean>
       
    <!-- C3P0连接池配置 -->
   
    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">    
       
        <property name="driverClass" value="${jdbc.driverClassName}"/>
        <property name="jdbcUrl" value="${jdbc.url}"/>
        <property name="user" value="${jdbc.username}"/>
        <property name="password" value="${jdbc.password}"/>
       
        <property name="initialPoolSize">
            <value>5</value>
        </property>
         <property name="minPoolSize">
             <value>5</value>
         </property>
         <property name="maxPoolSize">
             <value>10</value>
         </property>
         <property name="acquireIncrement">
             <value>2</value>
         </property>
         <property name="maxIdleTime">
             <value>60</value>
         </property>
         <property name="maxStatements">
             <value>0</value>
         </property>    
    </bean>
    <!-- C3P0结束 -->
   
    <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
        <property name="dataSource" ref="dataSource"/>
        <property name="mappingResources">
            <list>
            <!—hibernate的hbm文件位置 ,至于hbm文件可以通过工具生成,这里就不详述了-->
                <value>com/dao/emp.hbm.xml</value>             
            </list>
        </property>
        <property name="hibernateProperties">
            <props>
                <prop key="hibernate.dialect">${hibernate.dialect}</prop>      
                <prop key="hibernate.show_sql">true</prop>                 
                <prop key="hibernate.jdbc.fetch_size">100</prop>
                <prop key="hibernate.jdbc.batch_size">50</prop>
                <prop key="hibernate.use_outer_join">true</prop>               
                <prop key="hibernate.connection.SetBigStringTryClob">true</prop>
            </props>           
        </property>
       
        <property name="eventListeners">
            <map>
                <entry key="merge">
                    <bean class="org.springframework.orm.hibernate3.support.IdTransferringMergeEventListener"/>
                </entry>
            </map>
        </property>
   
    </bean>
   
   
   
    <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
        <property name="sessionFactory" ref="sessionFactory"/>
    </bean>
   
    <bean id="QueryHib" class="Hello.HelloworldImpl ">
        <property name="sessionFactory" ref="sessionFactory"/>
    </bean>
     
   
    <!—webservice 的bean类 -->
   
    <bean id="QueryHibRis" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
        <property name="transactionManager" ref="transactionManager"/>
        <property name="target" ref="QueryHib"/>
        <property name="transactionAttributes">
            <props>        
            <prop key="*">PROPAGATION_REQUIRED</prop>                  
            </props>
        </property>
    </bean>
   
</beans>
 
<!-- jdbc_connect.properties文件内容,主要是数据库配置,以下是oracle数据库 -->
 
jdbc.driverClassName=oracle.jdbc.driver.OracleDriver
jdbc.url=jdbc:oracle:thin:@172.17.99.230:1521:bsrun
jdbc.username=user
jdbc.password=user
hibernate.dialect=org.hibernate.dialect.Oracle9Dialect
 
三、           xfire-servlet.xml文件内容,如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"  >
 
<beans>
    <!-- START SNIPPET: xfire -->
    <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
        <property name="urlMap">
            <map>
                <entry key="/QueryService">
                    <ref bean="query"/>
                </entry>   
             </map>
        </property>
       
    </bean>
   
    <!-- Declare a parent bean with all properties common to both services -->
    <bean id="query" class="org.codehaus.xfire.spring.remoting.XFireExporter">
        <property name="serviceFactory">
            <ref bean="xfire.serviceFactory"/>
        </property>
        <property name="xfire">
            <ref bean="xfire"/>
        </property>
        <property name="serviceBean">
            <ref bean="QueryHibRis"/>  <!—请注意这个需在applicationContext.xml有定义-->
 
        </property>
        <property name="serviceClass">
            <value> Hello.IHelloworld </value>
        </property>
       
    </bean>  
    <!-- END SNIPPET: xfire -->
</beans>
 
四、Hello.HelloworldImpl类内容,主要是查询数据库并返回结果
 
package Hello;
 
 
import java.util.Collection;
 
//Generated by MyEclipse
 
public class HelloworldImpl implements IHelloworld {
   
    public Collection User(){  
    return getHibernateTemplate().find("select new Helloworld.User(userid,username) from emp"); 
               
    }
   
}
 
IHelloworld接口内容
package Hello;
//Generated by MyEclipse
 
import java.util.Collection;
 
 
public interface IHelloworld {
   
    public Collection User();
}
//xfire对于返回collection的,需要定义接口的IHelloworld.aegis.xml文件,需放在当前接口文件目录下。
 
<?xml version="1.0" encoding="UTF-8"?>
 <mappings>
    <mapping>
        <method name= "User" >
            <return-type componentType= "Helloworld.User" />          
        </method>         
       
    </mapping>   
   
</mappings>
 
Helloworld.User类内容:
package Helloworld;
 
public class User {
   
    String userid;
    String username;
//一定要定义此构造函数,在Hello.HelloworldImpl中有用到哟。
    Public User(String userid,String username){
        this.userid = userid;
this.username = username;
 
}  
 
    public String getUserid() {
        return userid;
    }
    public void setUserid(String userid) {
        this.userid = userid;
    }
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
 
}

分享到:
评论

相关推荐

    Webservice开发实例 Java

    Java Webservice 开发实例. 一个项目是Webservice ,一个项目是Webservice 的调用。 另外,你需要下载Axis2的最新版本: http://ws.apache.org/axis2/ 在本文使用了目前Axis2的最新版本1.4.1。读者可以下载如下两个...

    WebService开发实例图解教程

    【WebService开发实例图解教程】 WebService是一种基于XML的开放标准,用于在不同的应用程序之间交换数据和服务。它允许不同平台和编程语言之间的互操作性,通过HTTP协议提供服务,因此易于集成到现有系统中。本...

    webservice开发实例(含代码、详细开发文档)

    本资源“webservice开发实例(含代码、详细开发文档)”提供了完整的Web服务开发流程,包括服务发布、服务获取以及数据解析等方面的实践示例。下面我们将详细探讨这些关键知识点。 1. **服务发布**: Web服务的发布...

    webservice开发实例

    这个实例是关于如何将Web服务与Spring框架结合,实现一个完整的开发流程。 首先,理解Web服务的核心标准:简单对象访问协议(SOAP)和Web服务描述语言(WSDL)。SOAP是一种XML格式的协议,用于交换结构化的信息,而...

    java axis webservice 开发实例

    Java Axis WebService 开发实例详解 在Java世界中,开发Web服务时,Axis是一个非常流行的开源工具,它允许开发者创建、部署和使用Web服务。本实例将深入探讨如何使用Axis来构建一个简单的Web服务,并进行调用。这个...

    XFIRE webservice 开发实例

    **XFIRE Webservice 开发实例详解** 在信息技术领域,Webservice是一种基于互联网的、平台无关的交互方式,它允许不同的应用程序之间进行数据交换和功能共享。而XFIRE是一款专为游戏社区设计的软件,它提供了丰富的...

    Java Webservice开发实例(简要说明)

    Java Web服务(Webservice...这个Java Webservice开发实例提供了完整的服务端和客户端代码,可以帮助开发者快速理解和实践Java Web服务的开发过程。通过学习和实践,可以熟练掌握使用Java构建和调用Web服务的基本技能。

    Flex+WebService开发实例

    《Flex与WebService开发实例详解》 Flex是一种基于Adobe Flash Platform的开源框架,主要用于构建富互联网应用程序(Rich Internet Applications,简称RIA)。它允许开发者创建交互性强、用户体验良好的动态Web应用...

    cxf webservice开发实例

    【CXF Webservice 开发实例】是基于Apache CXF框架实现Web服务的一种实践教程,它主要涉及了如何将CXF与Spring框架进行整合,以构建高效、可维护的Web服务。CXF是一个开源的Java框架,它允许开发者创建和消费各种Web...

    webservice 开发实例 详解

    2. "ws处女作.docx":此文档可能是作者的第一个WebService开发实践,记录了从零开始创建一个WebService的整个过程,包括定义接口、实现逻辑、生成WSDL、部署服务以及编写客户端代码的详细步骤。 通过这些实例,你...

    eclipse&webservice开发实例.doc

    在本实例中,我们创建了一个名为"CalculateService"的类,实现了加、减、乘、除四种基本运算。 6. **配置Web Service** 完成服务类后,我们需要将其配置为Web Service。在Eclipse中,右键点击项目,选择"New" &gt; ...

    webservice实例

    - 错误处理和调试:理解如何处理调用过程中可能出现的错误,以及如何使用日志和调试工具来定位问题,是Web服务开发中的重要环节。 - 安全性考虑:Web服务可能会涉及敏感数据,因此需要了解如何实现安全机制,如SSL/...

    Java开发WebService实例

    从环境搭建、基础的HelloWorld示例,到更复杂的计数器服务实现,全面覆盖了WebService开发的关键步骤和技术要点。希望本文能为初学者提供一个清晰的学习路径,同时也为有经验的开发者提供有价值的参考。

    webService调用实例 Demo

    【标题】:“webService调用实例 Demo” 在IT行业中,Web Service是一种常见的应用程序接口(API)形式,它允许不同系统间的交互,无论它们是用何种编程语言或运行在何种操作系统上。本“webService调用实例 Demo”...

Global site tag (gtag.js) - Google Analytics