`
prettyboy434
  • 浏览: 20975 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Webservice CXF+SPRING+HIBERNATE 实例

阅读更多
  http://www.iteye.com/topic/563302
  http://www.iteye.com/topic/566664
  通过对xuzhfa123 这两篇贴子的阅读,自己也试着完成了一个例子
  服务器端开发:
  
  实体类开发UserInfo.java:
  public class UserInfo implements java.io.Serializable {   
    private static final long serialVersionUID = 2281022190032353574L;   
    private Long id;   
    private String name;   
    private Integer age;   
    //省略getter/setter……
  


  hibernate 映射文件开发UserInfo.hbm.xml(由myeclipse自动生成):
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- 
    Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
    <class name="entity.UserInfo" table="M_USER" schema="TEST">
        <id name="id" type="java.lang.Long">
            <column name="ID" precision="22" scale="0" />
            <generator class="sequence"></generator>
        </id>
        <property name="name" type="java.lang.String">
            <column name="NAME" length="10" not-null="true" />
        </property>
        <property name="age" type="java.lang.Integer">
            <column name="AGE" precision="22" scale="0" not-null="true" />
        </property>
    </class>
</hibernate-mapping>


hibernate.cfg.xml文件:
 
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
          "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
          "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<!-- Generated by MyEclipse Hibernate Tools.                   -->
<hibernate-configuration>
<session-factory>
	<property name="connection.username">test</property>
	<property name="connection.url">
		jdbc:oracle:thin:@10.33.6.237:1521:orcl
	</property>
	<property name="dialect">
		org.hibernate.dialect.Oracle9Dialect
	</property>
	<property name="myeclipse.connection.profile">odbc</property>
	<property name="connection.password">test</property>
	<property name="connection.driver_class">
		oracle.jdbc.driver.OracleDriver
	</property>
	<property name="show_sql">true</property>
	<property name="connection.autocommit">true</property>
	<mapping resource="entity/UserInfo.hbm.xml" />
</session-factory>
</hibernate-configuration>
  


  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">
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  <context-param>
		<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>

	<servlet>
		<servlet-name>CXFServlet</servlet-name>
		<servlet-class>
			org.apache.cxf.transport.servlet.CXFServlet
		</servlet-class>
		<load-on-startup>1</load-on-startup>
	</servlet>

	<servlet-mapping>
		<servlet-name>CXFServlet</servlet-name>
		<url-pattern>/*</url-pattern>
	</servlet-mapping>
</web-app>

  


  数据持久层dao接口->HibernateDao.java:
  
public interface HibernateDao {
	public void save(UserInfo object);   
    public void delete(UserInfo object);   
    public void update(UserInfo object);   
    public UserInfo get(Long id); 
}
  


  dao实现类->HibernateImpl.java

public class HibernateDaoImpl extends HibernateDaoSupport implements HibernateDao{
	
	public void delete(UserInfo object) {
		
	}

	public UserInfo get(Long id) {
		return (UserInfo) getHibernateTemplate().get(UserInfo.class, id);
	}

	public void save(UserInfo object) {
	   this.getHibernateTemplate().save(object);
		
	}

	public void update(UserInfo object) {
	   getHibernateTemplate().update(object);
	}

}



业务层IService接口->IService.java

@WebService
public interface IService {
   public void save(@WebParam(name="user") UserInfo object);   
    public void update(@WebParam(name="user")UserInfo object);   
    public @WebResult(name="name") String get(@WebParam(name="id")Long id); 

}



IService实现类->ServiceImpl.java
@WebService
public class ServiceImpl implements IService{
	private HibernateDao dao;

	public HibernateDao getDao() {
		return dao;
	}

	public void setDao(HibernateDao dao) {
		this.dao = dao;
	}


	public String get(Long id) {
		return dao.get(id).getName();
	}

	public void save(UserInfo object) {
		dao.save(object);
	}

	public void update(UserInfo object) {
		dao.update(object);
	}

}

  


Spring 配置及WebService发布配置:
 
<?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:jaxws="http://cxf.apache.org/jaxws"
	xsi:schemaLocation="http://www.springframework.org/schema/beans 
	http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
	http://cxf.apache.org/jaxws 
	http://cxf.apache.org/schemas/jaxws.xsd">
	
	<import resource="classpath:META-INF/cxf/cxf.xml" />
	<import resource="classpath:META-INF/cxf/cxf-extension-soap.xml"/>
	<import resource="classpath:META-INF/cxf/cxf-servlet.xml" />
 
	<bean id="sessionFactory"
		class="org.springframework.orm.hibernate3.LocalSessionFactoryBean" 
		>
		<property name="configLocation"
			value="classpath:hibernate.cfg.xml">
		</property>
	</bean>
	
	<bean id="hdao" class="dao.impl.HibernateDaoImpl">
	<property name="sessionFactory" ref="sessionFactory"></property>
	
	</bean>
	<bean id="service" class="service.impl.ServiceImpl">
		<property name="dao" ref="hdao"></property>
	</bean>
	
	<jaxws:endpoint id="myService" address="/myService" implementorClass="service.impl.ServiceImpl">
       <!--这里很重要,一定不能漏掉-->
        <jaxws:implementor ref="service">
        </jaxws:implementor>
	</jaxws:endpoint>
	
	</beans>
  

到此服务器端就算开发完毕,可以通过访问http://localhost:8080/wssprhib/myService?wsdl来查看wsdl文件

客户端开发:
  新建java project 命名为test
打开cmd,运行 wsdl2java -p wssprhib.service -d d:\  htttp://localhost:8080/wssprhib/myService?wsdl
将wsdl文件转化成java文件,将产生的java文件复制到test工程src下,接下来就可以写测试方法了
client.java:
public class Client {
	public  Client(){
		
	}
	
	public static void main(String[] args) {
		ApplicationContext context=new ClassPathXmlApplicationContext("/wssprhib/beans.xml");
		IService is=(IService) context.getBean("client");
		UserInfo u=new UserInfo();
		u.setName("1234");
		u.setAge(1);
		is.save(u);
		System.out.println(is.get(181l));
	}
}



client-beans.xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<!-- START SNIPPET: beans -->
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:jaxws="http://cxf.apache.org/jaxws"
	xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://cxf.apache.org/jaxws http://cxf.apache.org/schema/jaxws.xsd">
    <bean id="client" class="service.HelloWorld" 
      factory-bean="clientFactory" factory-method="create"/>
    
	<bean id="clientFactory" class="org.apache.cxf.jaxws.JaxWsProxyFactoryBean">
	  <property name="serviceClass" value="service.HelloWorld"/>
	  <property name="address" value="http://localhost:8080/cxftest/HelloWorld"/>
	</bean>
</beans>
<!-- END SNIPPET: beans -->

运行client,查看sql语句,就可以看到成功访问数据库了
分享到:
评论
1 楼 xuesheng0147 2012-04-26  
lz好:
     我执行完:wsdl2java -p wssprhib.service -d d:\  htttp://localhost:8080/wssprhib/myService?wsdl
将wsdl文件转化成java文件,将产生的java文件复制到test工程src下,之后。
这个方法报错:public ServiceImplService(URL wsdlLocation, QName serviceName, WebServiceFeature ... features) {
        super(wsdlLocation, serviceName, features);
    }  并报错提示:The constructor Service(URL, QName, WebServiceFeature[]) is undefined

相关推荐

    struts2+spring3+hibernate4+cxf2.7搭建webservice实例

    是eclipse导出的war文件,包含了资源。开发环境jdk1.7 tomcat7。 通过了测试,对应的文档:http://blog.csdn.net/biboheart/article/details/9148651, 有文档了,这里就不多说了。

    CXF spring Hibernate 搭建webservice

    【标题】"CXF Spring Hibernate 搭建Web服务" 在IT行业中,Web服务是一种用于应用程序之间通信的技术,它允许不同系统之间的数据交换。本项目是关于如何利用Apache CXF、Spring框架和Hibernate ORM工具来构建一个...

    spring+hibernate+struts+XFire的webService实例

    本实例"Spring+Hibernate+Struts+XFire的WebService"提供了一个全面的框架整合,用于创建功能丰富的Web服务。以下将详细解析这个实例所涉及的技术点: 1. **Spring框架**:Spring是一个开源的Java平台,它为开发...

    websevice,spring,cxg,ibatis

    CXF环境配置 - jackymin CXF与Spring的集成 log4j的配置使用 Spring XML配置十二个最佳实践WebService开发实例 (Xfire+Spring+Hibernate)

    SSH整合cxf webservice实例

    SSH整合CXF Webservice实例详解 在Java世界中,SSH(Spring、Struts、Hibernate)是一种常见的企业级应用开发框架组合,它提供了强大的MVC(Model-View-Controller)架构支持,以及持久层管理和业务逻辑处理。而CXF...

    ssh2+cxf搭建webservice实例

    在 Spring 配置文件(如 `app-config.xml` 或 `cxf-servlet.xml`)中,配置 CXF 容器来管理 WebService 实例: ```xml ``` **6. 测试与部署** 创建一个简单的客户端测试类,通过 JAX-WS 客户端 API 来调用 ...

    CXF创建Webservice接口与Spring整合实例

    本文将深入探讨如何利用CXF创建带有用户认证的Web服务接口,并将其与SSH(Spring、Struts、Hibernate)框架整合。 首先,让我们了解一下CXF创建Web服务的基本步骤: 1. **设置项目环境**:确保你的开发环境中已经...

    CXF整合spring同时支持JSON和XML配置的HelloWorld

    接下来,我们创建一个Spring配置文件(如`cxf-servlet.xml`),在这里定义CXF的Servlet和Bus实例。Servlet将处理HTTP请求,而Bus则管理CXF的运行时行为。配置如下: ```xml &lt;beans xmlns="http://www.spring...

    ssh+cxf整合发布webservice实例

    SSH+CXF整合发布Web服务(Webservice)实例详解 在软件开发中,SSH(Spring、Struts、Hibernate)是一个常见的Java EE应用框架组合,用于构建高效、可维护的企业级应用程序。CXF则是一个开源的Java服务堆栈,主要...

    java_webservice_JAX-RS.zip_cxf_jax_jax-rs_spring cxf

    本教程将深入探讨如何在SSH(Spring、Struts、Hibernate)架构中集成Web服务,以及如何利用CXF和Spring框架发布这些服务。 **1. SSH架构** SSH(Spring、Struts、Hibernate)是Java开发中的经典MVC(Model-View-...

    cxf jar 包

    【描述】"CXF Webservice 整合Spring+Hibernate"这部分知识主要讲述如何将CXF与Spring框架和Hibernate ORM框架协同工作,以实现高效、灵活的Web服务开发。Spring作为企业级应用的主流框架,可以提供依赖注入和AOP...

    Spring整合CXF,发布RSETful 风格WebService

    在SSH(Spring、Struts、Hibernate)架构中,我们需要配置Spring上下文以便CXF能够识别和处理Web服务。这通常涉及到在Spring配置文件中定义CXF的Bus实例、服务端点接口和服务实现。例如,我们会创建一个CXF的Servlet...

    ssh服务端cxf相关jar包

    2. 在Spring配置文件中定义CXF的Servlet和Bus实例,用于处理Web服务请求和配置服务端点。 3. 创建服务接口和实现,使用JAX-WS注解来定义Web服务的方法。 4. 将服务bean注册到Spring容器,CXF可以通过Spring自动发现...

    Spring Boot 实现Restful webservice服务端示例代码

    Spring Boot 实现Restful Webservice 服务端示例代码 Spring Boot 是一个基于 Java 的框架,用于快速构建生产级别的应用程序。它提供了许多有用的特性,如自动配置、嵌入式容器、生产准备等。下面,我们将探讨如何...

    java webservice 参考资料

    - **Xfire配置Web+Service+Spring+Hibernate详细流程.pdf**:可能包含使用Xfire(CXF)搭建集成Spring和Hibernate的Web Service的步骤。 - **使用Ajax和WebService重构网上书店.pdf**:展示了如何利用Ajax技术和...

    slf4j-api.jar.zip CXF整合SSH你可能需要它

    在整合过程中,通常会将CXF的Servlet配置在Spring的ApplicationContext中,然后通过Spring的`@WebServiceRef`注解或`JAXWS-RI`的`WebServiceClient`来引用CXF服务。同时,你还需要确保SLF4J能够正确地捕获和记录CXF...

    一个xfire开发的webservice项目

    在这个项目中,Spring被用来管理服务组件,提供容器来实例化、配置和组装对象,使得代码更易于测试和维护。Spring还与各种数据访问技术集成,如JDBC、Hibernate和MyBatis,支持事务管理和安全性。 2. **Xfire集成**...

    XFire创建WebService服务端和客户端

    - **丰富的扩展性**:XFire可以与Spring、Hibernate等流行框架集成,提供更强大的功能。 四、XFire的局限性与替代品 虽然XFire在当时是一个优秀的Web服务框架,但由于项目已经停止维护,新的开发可能遇到兼容性和...

    (完整word)Java软件开发工程师简历.doc

    - **WebService(Axis2/CXF)**:熟悉使用SOAP协议进行服务间通信。 - **NoSQL非关系型数据库**:对非关系型数据库有所了解,如MongoDB、Cassandra等。 【工作经验实例】 在武汉泷收电子系统工程有限公司的项目中...

Global site tag (gtag.js) - Google Analytics