1、 list(); public User login(WebParam(name = username)String username, WebParam(name = password)String password);上面红色WebService是java自提供的注解,表示这是一个webService。WebParam(name = )表示这个参数在wsdl中的名字是user,如果你没有指定,这个参数可能会是arg0等,为了让参数和我们本地服务器端的参数名统一起来,建议用这个WebParam注解。1.2 接着编写实现类新建一个实现类,这里取名叫: MyUserServiceImpl , 实
2、现MyUserService接口MyUserServiceImpl.javaimport com.system.dao.UserDao;WebService(endpointInterface = com.system.webservice.MyUserService, wsdlLocation=WEB-INF/META-INF/wsdl/service.wsdl portName=UserServicePort serviceName=UserService targetNamespace=public class MyUserServiceImpl implements MyUserSer
3、vice public UserDao userDao = new UserDao(); public UserDao getUserDao() return userDao; public void setUserDao(UserDao userDao) this.userDao = userDao; public User login(String username, String password) System.out.println(Service:Login(Method) is running!); return userDao.login(username, password)
4、; public void add(User user) CreateUser(Method) is running! userDao.createUser(user); list() UserList(Method) is running! return userDao.getUserList(); public void delete(User user) Delete(Method) is running! userDao.deleteUser(user);上面红色WebService(endpointInterface )暂时只需要这个注解参数,后面的注解在这里可以不理会。他的意思是这
5、个WebService的接口是谁。在这里写上具体的包名和类名。1.3 现在一个简单的WebService已经写好,接着写发布类进行发布,测试是否成功。新建一个类,这里取名叫做MyServiceStartMyServiceStart.java:import javax.xml.ws.Endpoint;public class MyServiceStart public static void main(String args) Endpoint.publish(http:/localhost:8688/ssh, new MyUserServiceImpl();Java中自带的封装类,进行WebS
6、ervice的发布。Publish中的第一个参数,是我们发布的url,就是由你指定通过哪个地址来访问你刚刚发布的服务。第二个参数是这个服务的具体实现类对象。接着,我们运行这个这个类,然后访问http:8688/ssh地址,进行测试。如果出现能出现该页面,说明发布成功。可以通过该http:8688/ssh?xsd=1地址查看具体的元素定义。OK,到此,一个简单的WebService发布成功。2 但是我们的目的远没有达到。我们希望把自己的WebService部署到类似Tomcat的服务器上,可以提供一个接口给开发人员。而不去关心这个调用这个接口所依赖的系统和开发语言。2.1 在这里,提供的用户登录
7、、添加用户、删除用户、得到用户列表四个功能都将具体的依赖于数据库。所以第一步需要建立数据库。表名为user_login,并插入了三条数据。既然是Web Project,在这里就整用了Hebrinate进行数据库的操作。2.2 新建包,包名为com.system.entity. 新建一个实体类,叫做UserUser.class:package com.system.entity;public class User private int userId; private String username; private String password; public int getUserId()
8、 return userId; public void setUserId(int userId) this.userId = userId; public String getUsername() return username; public void setUsername(String username) this.username = username; public String getPassword() return password; public void setPassword(String password) this.password = password; publ
9、ic User() super(); public User(int userId, String username, String password) User类有三个属性,username.password,userId.和数据库中的user_login表的列相对应。接着进行user.hbm.xml的编写:!DOCTYPE hibernate-mapping PUBLIC -/Hibernate/Hibernate Mapping DTD 3.0/EN/www.hibernate.org/dtd/hibernate-mapping-3.0.dtdhibernate-mapping clas
10、s name=com.system.entity.User table=user_loginid name=userId type=java.lang.Integer column=generator class=sequence param name=oracl_sequence/generator/idproperty name=java.lang.String not-null=true/class/hibernate-mapping这里就不再对配置文件进行过多的阐述和说明了。编写hibernate.cfg.xml:xml version=1.0DOCTYPE hibernate-con
11、figuration PUBLIC -/Hibernate/Hibernate Configuration DTD 3.0/EN/www.hibernate.org/dtd/hibernate-configuration-3.0.dtdhibernate-configurationsession-factory- Database connection settings -connection.driver_classoracle.jdbc.driver.OracleDriverconnection.urljdbc:oracle:thin:localhost:1521:ORCLconnecti
12、on.usernamescottconnection.passwordorcldialectorg.hibernate.dialect.OracleDialectorder_insertstrueshow_sqlmapping resource=com/system/entity/User.hbm.xml/session-factory/hibernate-configuration2.3 OK,到这一步,hibernate的基本配置都OK了。前提是你已经引入需要的jar包。接下来就是我们具体的实现了。也就是我们常说的dao层。新建包,包名为com.system.dao. 新建类,类名为Use
13、rDaoUserDao.class:package com.system.dao;import org.hibernate.Query;import org.hibernate.Session;import org.hibernate.Transaction;import org.hibernate.cfg.Configuration;import org.springframework.orm.hibernate3.support.HibernateDaoSupport;public class UserDao extends HibernateDaoSupport public void
14、createUser(User user) Session session = new Configuration().configure().buildSessionFactory().openSession(); Transaction tran = session.beginTransaction(); session.save(user); mit(); session.close(); public void deleteUser(User user) session.delete(user); public User login(String username, String pa
15、ssword) List users = this.getUserList(); int size = users.size(); User tempuser; for (int i = 0; i addResponsedeletedeleteResponselistlistResponseloginloginResponsecomplexType name= /xsd:complexTypesequence /stringsequence maxOccurs=unbounded minOccurs=1intschema因为在上次的培训过程中,我已经讲过这些配置文件中的各个含义。这里就直接贴上代码了。service.wsdl: encodi