使用axis1+spring+hibernate搭建webservice框架(一)
来源:互联网 发布:零售药店收银软件 编辑:程序博客网 时间:2024/04/28 10:22
写在前面的话:
网上的教程大多都是使用wsdl2java工具构建webservice。本文则直接采用编辑server-config.wsdd来发布webservice,相比而言,可以比较快速的部署一个项目,适应工作需要。
本教程模拟提供用户接口用于和别的系统结合,主要功能包括接受用户的增删改查。
一数据库创建
创建数据库webservice
,创建用户表user
,用户表内容如下:
1
CREATE TABLE ` user ` (
2
`uid`
int
( ) unsigned NOT NULL auto_increment,
3
`name` varchar ( ) NOT NULL
default
''
,
4
`password` varchar ( ) NOT NULL
default
''
,
5
`nickname` varchar ( ) NOT NULL
default
''
,
6
PRIMARY KEY (`uid`)
7
) ENGINE=InnoDB DEFAULT CHARSET= gbk;
(您也可以直接使用附件中的sql文件创建数据库)
二新建web项目,搭建spring+hibernate框架。
1)新建用户模型,User类,如下:
01
package
com.zuidaima.model;
02
03
public
class
User {
04
/*
05
21
*/
22
private String nickname;
23
24
/*
25
* 必须提供一不带参数的构造方法,以供hibernate初始化User
26
*/
27
public User() {
28
29
}
30
31
/*
32
* 使用参数构建User
33
*/
34
public
User(String name, String password, String nickname) {
35
this
.name = name;
36
this
.password = password;
37
this
.nickname = nickname;
38
}
39
40
public
Integer getUid() {
41
return
uid;
42
}
43
44
public
void
setUid(Integer uid) {
45
this
.uid = uid;
46
}
47
48
public
String getName() {
49
return
name;
50
}
51
52
public
void
setName(String name) {
53
this
.name = name;
54
}
55
56
public
String getPassword() {
57
return
password;
58
}
59
60
public
void
setPassword(String password) {
61
this
.password = password;
62
}
63
64
public
String getNickname() {
65
return
nickname;
66
}
67
68
public
void
setNickname(String nickname) {
69
this
.nickname = nickname;
70
}
71
}
另外user的配置文件User.hbm.xml如下:
01
<?
xml
version
=
"1.0"
encoding
=
"UTF-8"
?>
02
<!DOCTYPE hibernate-mapping PUBLIC
03
"-//Hibernate/Hibernate Mapping DTD 2.0//EN"
04
"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd" >
05
06
<
hibernate-mapping
>
07
<
class
name
=
"com.zuidaima.model.User"
table
=
"user"
>
08
<
id
name
=
"uid"
type
=
"java.lang.Integer"
column
=
"UID"
>
09
<
generator
class
=
"native"
></
generator
>
10
</
id
>
11
<
property
name
=
"name"
type
=
"java.lang.String"
column
=
"NAME"
12
length
=
"45"
insert
=
"true"
update
=
"true"
/>
13
<
property
name
=
"password"
type
=
"java.lang.String"
column
=
"PASSWORD"
14
length
=
"45"
insert
=
"true"
update
=
"true"
/>
15
<
property
name
=
"nickname"
type
=
"java.lang.String"
column
=
"NICKNAME"
16
length
=
"45"
insert
=
"true"
update
=
"true"
/>
17
</
class
>
18
</
hibernate-mapping
>
2)新建DAO,UserDAO类,如下:
01
package
com.zuidaima.dao;
02
03
import
java.util.List;
04
05
import
org.springframework.orm.hibernate.support.HibernateDaoSupport;
06
import
com.zuidaima.model.User;
07
08
public
class
UserDAO
extends
HibernateDaoSupport {
09
public
User getUser(
int
uid) {
10
return
(User) getHibernateTemplate().get(User.
class
,
new
Integer(uid));
11
}
12
13
/**
14
* 添加用户
15
*
16
* @param user
17
*/
18
public
void
saveUser(User user) {
19
getHibernateTemplate().save(user);
20
}
21
22
/**
23
* 删除用户
24
*
25
* @param uid
26
*/
27
public
void
deleteUser(
int
uid) {
28
StringBuffer strBuf =
new
StringBuffer();
29
strBuf.append(
"from User as u where u.uid="
);
30
strBuf.append(uid);
31
getHibernateTemplate().delete(strBuf.toString());
32
}
33
34
/**
35
* 更新用户
36
*
37
* @param user
38
*/
39
public
void
updateUser(User user) {
40
getHibernateTemplate().saveOrUpdate(user);
41
}
42
43
/**
44
* 根据用户名查找用户
45
*
46
* @param name
47
* @return user or null
48
*/
49
/*
50
* return null if can't find
51
*/
52
63
}
64
65
/**
66
* 用户列表
67
*
68
* @return user List
69
*/
70
public
List listUser() {
71
StringBuffer strBuf =
new
StringBuffer();
72
strBuf.append(
"select u from User as u "
);
73
return
getHibernateTemplate().find(strBuf.toString());
74
}
75
76
}
3)新建管理层,UserManager接口和其实现UserManagerImpl。
UserManager接口:
01
package
org.yoo.service;
02
03
import
java.util.List;
04
05
import
org.yoo.model.User;
06
07
public
interface
UserManager {
08
09
/**
10
* 根据uid查找用户
11
* @param uid
12
* @return user
13
*/
14
public
User getUserByUid(
int
uid);
15
/**
16
* 增加用户
17
* @param user
18
*/
19
public
void
saveUser(User user);
20
/**
21
* 删除用户
22
* @param uid
23
*/
24
public
void
deleteUser(
int
uid);
25
26
/**
27
* 更新用户信息
28
* @param user
29
*/
30
public
void
updateUser(User user);
31
32
/**
33
* 根据用户名查找用户
34
* @param name
35
* @return user
36
*/
37
public
User getUserByName(String name);
38
39
/**
40
* 用户列表
41
* @return user List
42
*/
43
public
List listUser();
44
}
UserManagerImpl如下:
01
package
com.zuidaima.service.impl;
02
03
import
java.util.List;
04
05
import
com.zuidaima.dao.UserDAO;
06
import
com.zuidaima.model.User;
07
import
com.zuidaima.service.UserManager;
08
09
public
class
UserManagerImpl
implements
UserManager {
10
private
UserDAO userDAO =
null
;
11
12
public
void
deleteUser(
int
uid) {
13
userDAO.deleteUser(uid);
14
15
}
16
17
public
User getUserByName(String name) {
18
19
return
userDAO.getUserByName(name);
20
}
21
22
public
User getUserByUid(
int
uid) {
23
24
return
userDAO.getUser(uid);
25
}
26
27
public
List listUser() {
28
29
return
userDAO.listUser();
30
}
31
32
public
void
saveUser(User user) {
33
userDAO.saveUser(user);
34
35
}
36
37
public
void
updateUser(User user) {
38
userDAO.updateUser(user);
39
40
}
41
42
/*
43
* Ioc By Spring
44
*/
45
public
void
setUserDAO(UserDAO userDAO) {
46
this
.userDAO = userDAO;
47
}
48
49
}
4)配置xml文件。Spring-config.xml
01
<?
xml
version
=
"1.0"
encoding
=
"UTF-8"
?>
02
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
03
"http://www.springframework.org/dtd/spring-beans.dtd">
04
05
<
beans
>
06
07
<!-- ==DATA SOURCE======================================== -->
08
<!-- Data Source for MYSQL -->
09
<
bean
id
=
"dataSource_MYSQL"
10
class
=
"org.springframework.jdbc.datasource.DriverManagerDataSource"
>
11
<
property
name
=
"driverClassName"
>
12
<
value
>org.gjt.mm.mysql.Driver</
value
>
13
</
property
>
14
<
property
name
=
"url"
>
15
<
value
>jdbc:mysql://127.0.0.1:3306/webservice?useUnicode=true&characterEncoding=GBK</
value
>
16
</
property
>
17
<
property
name
=
"username"
>
18
<
value
>root</
value
>
19
</
property
>
20
<
property
name
=
"password"
>
21
<
value
>111111</
value
>
22
</
property
>
23
</
bean
>
24
25
<!--==SESSION FACTORY===================================== -->
26
<!-- Hibernate SessionFactory -->
27
<
bean
id
=
"sessionFactory"
28
class
=
"org.springframework.orm.hibernate.LocalSessionFactoryBean"
>
29
<
property
name
=
"dataSource"
>
30
<
ref
local
=
"dataSource_MYSQL"
/>
31
</
property
>
32
33
<
property
name
=
"mappingResources"
>
34
<
list
>
35
<
value
>com/zuidaima/model/mysql/User.hbm.xml</
value
>
36
</
list
>
37
</
property
>
38
39
<
property
name
=
"hibernateProperties"
>
40
<
props
>
41
<!--sql dialect for MYSQL -->
42
<
prop
key
=
"hibernate.dialect"
>
43
net.sf.hibernate.dialect.MySQLDialect
44
</
prop
>
45
<
prop
key
=
"connection.pool.size"
>10</
prop
>
46
<
prop
key
=
"statement_cache.size"
>25</
prop
>
47
<
prop
key
=
"jdbc.fetch_size"
>50</
prop
>
48
<
prop
key
=
"jdbc.batch_size"
>30</
prop
>
49
<
prop
key
=
"hibernate.show_sql"
>true</
prop
>
50
<
prop
key
=
"cglib.use_reflection_optimizer"
>true</
prop
>
51
</
props
>
52
</
property
>
53
</
bean
>
54
<!--==TRANSACTION======================================= -->
55
<!-- Transaction manager for a single Hibernate SessionFactory -->
56
<
bean
id
=
"transactionManager"
57
class
=
"org.springframework.orm.hibernate.HibernateTransactionManager"
>
58
<
property
name
=
"sessionFactory"
>
59
<
ref
local
=
"sessionFactory"
/>
60
</
property
>
61
</
bean
>
62
</
beans
>
Spring-dao.xml
01
<?xml version=
"1.0"
encoding=
"UTF-8"
?>
02
<!DOCTYPE beans PUBLIC
"-//SPRING//DTD BEAN//EN"
03
"http://www.springframework.org/dtd/spring-beans.dtd"
>
04
<beans>
05
<bean id=
"userDAO"
class
=
"com.zuidaima.dao.UserDAO"
>
06
<property name=
"sessionFactory"
>
07
<ref bean=
"sessionFactory"
/>
08
</property>
09
</bean>
10
</beans>
Spring-service.xml
01
<?xml version=
"1.0"
encoding=
"UTF-8"
?>
02
<!DOCTYPE beans PUBLIC
"-//SPRING//DTD BEAN//EN"
03
"http://www.springframework.org/dtd/spring-beans.dtd"
>
04
05
<beans>
06
<bean id=
"userManager"
class
=
"com.zuidaima.service.impl.UserManagerImpl"
>
07
<property name=
"userDAO"
>
08
<ref bean=
"userDAO"
/>
09
</property>
10
</bean>
11
</beans>
5)构建bean工厂
在此只前,都是和利用spring+hibernate搭建web项目一致,这一步开始要有些不同了。由于axis1不支持spring,所以无法直接创建spring的容器,我们需要自己构建bean工厂。
创建BeanxmlFactoryl类,如下:
01
package
com.zuidaima.beanfactory;
02
03
import
org.springframework.context.ApplicationContext;
04
import
org.springframework.context.support.ClassPathXmlApplicationContext;
05
import
com.zuidaima.service.UserManager;
06
07
/**
08
* 单列模式的bean工厂类 SpringBean Factory
09
*
10
* @author yoo
11
*
12
*/
13
public
class
BeanxmlFactory {
14
private
static
BeanxmlFactory beanxmlfactory =
null
;
15
private
UserManager userManager =
null
;
16
17
/*
18
* 私有的构造方法
19
*/
20
private BeanxmlFactory() {
21
/**
22
* 读取spring+hibernate的配置文件
23
*/
24
String[] configs = { "/spring-config.xml", "/spring-dao.xml",
25
"/spring-service.xml" };
26
ApplicationContext context = new ClassPathXmlApplicationContext(configs);
27
/*
28
* 获取制定的bean
29
*/
30
this.userManager = (UserManager) context.getBean("userManager");
31
}
32
33
/*
34
*
35
*/
36
public
synchronized
static
BeanxmlFactory getInstance() {
37
if
(beanxmlfactory ==
null
) {
38
beanxmlfactory =
new
BeanxmlFactory();
39
}
40
return
beanxmlfactory;
41
}
42
43
public
UserManager getUserManager() {
44
return
userManager;
45
}
46
47
}
0 0
- 使用axis1+spring+hibernate搭建webservice框架(一)
- 使用axis1+spring+hibernate搭建webservice框架
- 使用axis1+spring+hibernate搭建webservice框架
- 使用axis1+spring+hibernate搭建webservice框架
- 使用axis1+spring+hibernate搭建webservice框架(二)
- 使用axis1+spring+hibernate搭建webservice
- WebService框架整理(二) Axis1+Spring
- WebService框架整理(二) Axis1+Spring
- webservice 基于axis1.4框架(一)
- WebService框架整理(一) Axis1
- WebService框架整理(一) Axis1
- WebService框架整理(一) Axis1
- Struts2+Hibernate+Spring框架搭建(一)
- 使用Axis1.4 和 Spring2.5.6搭建最簡易的Webservice及如何在Windchill 7.0中配置(一)
- WebService 基于Axis1.4框架(三)
- 使用spring、springmvc和hibernate开发博客(一)——搭建框架
- 使用CXF框架学习搭建WebService(一)
- EasyPlay spring+springMVC+Hibernate框架搭建 一
- 博客开通鸟~
- 每日一linux命令(11)-------nl
- 跨域、跨文档传输数据(三)---- postMessage ; 实现跨文档消息传输;
- 图解用Fiddler做http协议分析入门
- Android xutil3网络模块二次封装
- 使用axis1+spring+hibernate搭建webservice框架(一)
- mongodb常用命令
- Hadoop入门之Hadoop中的HelloWorld程序
- Xcode清除缓存、清理多余证书
- Block (二) 块方法的应用症状枚举
- hdu 1269 迷宫城堡【强连通+Kosaraju】
- 利用.dSYM和.app文件准确定位Crash位置
- OnePlus One Root
- hjr教程-DSP(五):汇编运算与段的理解