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语句,就可以看到成功访问数据库了
分享到:
相关推荐
是eclipse导出的war文件,包含了资源。开发环境jdk1.7 tomcat7。 通过了测试,对应的文档:http://blog.csdn.net/biboheart/article/details/9148651, 有文档了,这里就不多说了。
【标题】"CXF Spring Hibernate 搭建Web服务" 在IT行业中,Web服务是一种用于应用程序之间通信的技术,它允许不同系统之间的数据交换。本项目是关于如何利用Apache CXF、Spring框架和Hibernate ORM工具来构建一个...
本实例"Spring+Hibernate+Struts+XFire的WebService"提供了一个全面的框架整合,用于创建功能丰富的Web服务。以下将详细解析这个实例所涉及的技术点: 1. **Spring框架**:Spring是一个开源的Java平台,它为开发...
CXF环境配置 - jackymin CXF与Spring的集成 log4j的配置使用 Spring XML配置十二个最佳实践WebService开发实例 (Xfire+Spring+Hibernate)
SSH整合CXF Webservice实例详解 在Java世界中,SSH(Spring、Struts、Hibernate)是一种常见的企业级应用开发框架组合,它提供了强大的MVC(Model-View-Controller)架构支持,以及持久层管理和业务逻辑处理。而CXF...
在 Spring 配置文件(如 `app-config.xml` 或 `cxf-servlet.xml`)中,配置 CXF 容器来管理 WebService 实例: ```xml ``` **6. 测试与部署** 创建一个简单的客户端测试类,通过 JAX-WS 客户端 API 来调用 ...
本文将深入探讨如何利用CXF创建带有用户认证的Web服务接口,并将其与SSH(Spring、Struts、Hibernate)框架整合。 首先,让我们了解一下CXF创建Web服务的基本步骤: 1. **设置项目环境**:确保你的开发环境中已经...
接下来,我们创建一个Spring配置文件(如`cxf-servlet.xml`),在这里定义CXF的Servlet和Bus实例。Servlet将处理HTTP请求,而Bus则管理CXF的运行时行为。配置如下: ```xml <beans xmlns="http://www.spring...
SSH+CXF整合发布Web服务(Webservice)实例详解 在软件开发中,SSH(Spring、Struts、Hibernate)是一个常见的Java EE应用框架组合,用于构建高效、可维护的企业级应用程序。CXF则是一个开源的Java服务堆栈,主要...
本教程将深入探讨如何在SSH(Spring、Struts、Hibernate)架构中集成Web服务,以及如何利用CXF和Spring框架发布这些服务。 **1. SSH架构** SSH(Spring、Struts、Hibernate)是Java开发中的经典MVC(Model-View-...
【描述】"CXF Webservice 整合Spring+Hibernate"这部分知识主要讲述如何将CXF与Spring框架和Hibernate ORM框架协同工作,以实现高效、灵活的Web服务开发。Spring作为企业级应用的主流框架,可以提供依赖注入和AOP...
在SSH(Spring、Struts、Hibernate)架构中,我们需要配置Spring上下文以便CXF能够识别和处理Web服务。这通常涉及到在Spring配置文件中定义CXF的Bus实例、服务端点接口和服务实现。例如,我们会创建一个CXF的Servlet...
2. 在Spring配置文件中定义CXF的Servlet和Bus实例,用于处理Web服务请求和配置服务端点。 3. 创建服务接口和实现,使用JAX-WS注解来定义Web服务的方法。 4. 将服务bean注册到Spring容器,CXF可以通过Spring自动发现...
Spring Boot 实现Restful Webservice 服务端示例代码 Spring Boot 是一个基于 Java 的框架,用于快速构建生产级别的应用程序。它提供了许多有用的特性,如自动配置、嵌入式容器、生产准备等。下面,我们将探讨如何...
- **Xfire配置Web+Service+Spring+Hibernate详细流程.pdf**:可能包含使用Xfire(CXF)搭建集成Spring和Hibernate的Web Service的步骤。 - **使用Ajax和WebService重构网上书店.pdf**:展示了如何利用Ajax技术和...
在整合过程中,通常会将CXF的Servlet配置在Spring的ApplicationContext中,然后通过Spring的`@WebServiceRef`注解或`JAXWS-RI`的`WebServiceClient`来引用CXF服务。同时,你还需要确保SLF4J能够正确地捕获和记录CXF...
在这个项目中,Spring被用来管理服务组件,提供容器来实例化、配置和组装对象,使得代码更易于测试和维护。Spring还与各种数据访问技术集成,如JDBC、Hibernate和MyBatis,支持事务管理和安全性。 2. **Xfire集成**...
- **丰富的扩展性**:XFire可以与Spring、Hibernate等流行框架集成,提供更强大的功能。 四、XFire的局限性与替代品 虽然XFire在当时是一个优秀的Web服务框架,但由于项目已经停止维护,新的开发可能遇到兼容性和...
- **WebService(Axis2/CXF)**:熟悉使用SOAP协议进行服务间通信。 - **NoSQL非关系型数据库**:对非关系型数据库有所了解,如MongoDB、Cassandra等。 【工作经验实例】 在武汉泷收电子系统工程有限公司的项目中...