以webService为客户端获取List泛型结果集
首先搭建好webService,添加XFire1.2Core Libraries 和XFire1.2HTTP Client Libraries,连接上数据库,下例以oracle为数据库。
连接Oralce,连接类为DBConnection.java
- package com.xtgd.test;
- import java.sql.Connection;
- import java.sql.DriverManager;
- import java.sql.PreparedStatement;
- import java.sql.ResultSet;
- public class DBConnection {
- private String driver="oracle.jdbc.driver.OracleDriver";
- private String url="jdbc:oracle:thin:@localhost:1521:orcl";
- private String username="scott";
- private String pwd="tiger";
- private Connection conn=null;
- public Connection getConn(){
- try {
- Class.forName(driver);
- conn=DriverManager.getConnection(url,username,pwd);
- } catch (Exception e) {
- e.printStackTrace();
- }
- return conn;
- }
- public void closeConn(ResultSet rs,PreparedStatement ps,Connection conn){
- try {
- if(rs!=null){
- rs.close();
- }
- if(rs!=null){
- rs.close();
- }
- if(rs!=null){
- rs.close();
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
写好UserDao方法 UserDao.java
- package com.xtgd.test;
- import java.sql.Connection;
- import java.sql.PreparedStatement;
- import java.sql.ResultSet;
- import java.util.ArrayList;
- import java.util.List;
- public class UserDao
- {
- DBConnection b = new DBConnection();
- private PreparedStatement pre = null;
- private ResultSet rs = null;
- private Connection conn = null;
- /*
- * 全查询
- */
- public List<TUser> getAll()
- {
- List<TUser> ar = new ArrayList<TUser>();
- try
- {
- String sql = "select * from t_user";
- conn = b.getConn();
- pre = conn.prepareStatement(sql);
- rs = pre.executeQuery();
- while (rs.next())
- {
- TUser user = new TUser();
- user.setUId(rs.getInt("u_id"));
- user.setUPersonid(rs.getString("u_personid"));
- user.setUPersonname(rs.getString("u_personname"));
- user.setUPassword(rs.getString("u_password"));
- user.setUTel(rs.getString("u_tel"));
- user.setUEmail(rs.getString("u_email"));
- user.setUState(rs.getInt("u_state"));
- user.setURemark(rs.getString("u_remark"));
- ar.add(user);
- }
- }
- catch (Exception e)
- {
- e.printStackTrace();
- }
- finally
- {
- b.closeConn(rs, pre, conn);
- }
- return ar;
- }
- }
实体类为TUser.entity
- package com.xtgd.test;
- import java.io.Serializable;
- /**
- * TUser entity.
- *
- * @author MyEclipse Persistence Tools
- */
- public class TUser implements Serializable {
- // Fields
- private Integer UId;
- private String UPersonid;
- private String UPersonname;
- private String UPassword;
- private String UTel;
- private String UEmail;
- private int UState = 1;
- private String URemark;
- // Constructors
- /** default constructor */
- public TUser() {
- }
- /** full constructor */
- public TUser(String UPersonid, String UPersonname, String UPassword,
- String UTel, String UEmail, int UState, String URemark) {
- this.UPersonid = UPersonid;
- this.UPersonname = UPersonname;
- this.UPassword = UPassword;
- this.UTel = UTel;
- this.UEmail = UEmail;
- this.UState = UState;
- this.URemark = URemark;
- }
- // Property accessors
- public Integer getUId() {
- return this.UId;
- }
- public void setUId(Integer UId) {
- this.UId = UId;
- }
- public String getUPersonid() {
- return this.UPersonid;
- }
- public void setUPersonid(String UPersonid) {
- this.UPersonid = UPersonid;
- }
- public String getUPersonname() {
- return this.UPersonname;
- }
- public void setUPersonname(String UPersonname) {
- this.UPersonname = UPersonname;
- }
- public String getUPassword() {
- return this.UPassword;
- }
- public void setUPassword(String UPassword) {
- this.UPassword = UPassword;
- }
- public String getUTel() {
- return this.UTel;
- }
- public void setUTel(String UTel) {
- this.UTel = UTel;
- }
- public String getUEmail() {
- return this.UEmail;
- }
- public void setUEmail(String UEmail) {
- this.UEmail = UEmail;
- }
- public int getUState() {
- return UState;
- }
- public void setUState(int state) {
- UState = state;
- }
- public String getURemark() {
- return this.URemark;
- }
- public void setURemark(String URemark) {
- this.URemark = URemark;
- }
- }
写好接口IUserService.java
- package com.xtgd.test;
- import java.util.List;
- //Generated by MyEclipse
- public interface IUserService {
- public List<TUser> getAll();
- }
实现类UserServiceImpl.java
- package com.xtgd.test;
- import java.util.List;
- //Generated by MyEclipse
- public class UserServiceImpl implements IUserService {
- private UserDao dao = new UserDao();
- /***************************************************************************
- * 查询所有
- */
- public List<TUser> getAll(){
- return this.dao.getAll();
- }
- }
在IUserService.java同级目录下添加IUserService.aegis.xml,命名规则为"接口名.aegis.xml"
- <?xml version="1.0" encoding="UTF-8"?>
- <!--
- 该文件用来描述IUsersService接口中getAll()方法返回值的类型
- 该文件必须与IUsersService位于同一目录中,且该文件遵循如下命名规则
- webservice接口名.aegis.xml 如本文件IUsersService.aegis.xml
- -->
- <mappings>
- <method name="getAll">
- <return-type componentType="#users"/>
- </method>
- <!-- 映射getAll()方法返回值类型 -->
- <mapping>
- <component name="users" class="com.xtgd.test.TUser" componentType="com.xtgd.test.TUser"/>
- </mapping>
- </mappings>
web.xml的配置如下:
- <?xml version="1.0" encoding="UTF-8"?>
- <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.5" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
- <servlet>
- <servlet-name>XFireServlet</servlet-name>
- <servlet-class>org.codehaus.xfire.transport.http.XFireConfigurableServlet</servlet-class>
- <load-on-startup>0</load-on-startup>
- </servlet>
- <servlet-mapping>
- <servlet-name>XFireServlet</servlet-name>
- <url-pattern>/services/*</url-pattern>
- </servlet-mapping>
- <!-- 添加mapping -->
- <servlet-mapping>
- <servlet-name>XFireServlet</servlet-name>
- <url-pattern>/services/XFireServlet/*</url-pattern>
- </servlet-mapping>
- <welcome-file-list>
- <welcome-file>index.jsp</welcome-file>
- </welcome-file-list>
- </web-app>
services.xml的配置如下:
- <?xml version="1.0" encoding="UTF-8"?>
- <beans xmlns="http://xfire.codehaus.org/config/1.0">
- <service>
- <name>UserService</name>
- <serviceClass>com.xtgd.test.IUserService</serviceClass>
- <implementationClass>
- com.xtgd.test.UserServiceImpl
- </implementationClass>
- <style>wrapped</style>
- <use>literal</use>
- <scope>application</scope>
- </service>
- </beans>
成功发布到tomcat上之后,下面开始测试,测试类为Test.java,注意导入正确的包!
- package com.xtgd.test;
- import java.util.List;
- import com.xtgd.test.*;
- import org.codehaus.xfire.client.XFireProxyFactory;
- import org.codehaus.xfire.service.Service;
- import org.codehaus.xfire.service.binding.ObjectServiceFactory;
- public class Test {
- public static void main(String[] args) {
- // 构建service
- Service service = (Service) new ObjectServiceFactory()
- .create(IUserService.class);
- try {
- // 获得自定义webservice接口
- IUserService usersService = (IUserService) new XFireProxyFactory()
- .create(service,
- "http://localhost:8080/08_01_webservice/services/UserService");
- // 调用该webservice中定义的getUsers()方法
- List<TUser> list = usersService.getAll();
- // 输出list长度
- System.out.println(list.size());
- // 遍历list
- for (TUser users : list) {
- System.out.println("personid:" + users.getUPersonid()
- + "\tpersonname:" + users.getUPersonname());
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
以webService为客户端获取List泛型结果集的更多相关文章
- 动态生成WebService的客户端
给定了WebService地址和调用接口后动态的生成DLL,第二次再请求时会先判断DLL是否存在,以提高执行效率 核心代码下: /// <summary> /// 动态生成WebServi ...
- 利用wsdl2java工具生成webservice的客户端代码
1.JDK环境 2.下载apache-cxf发布包:http://cxf.apache.org/download.html 目前最新版本为3.2.6, 解压后如下: 解压发布包,设置CXF_HOME ...
- webservice -- cxf客户端调用axis2服务端
背景: 有个项目, 需要由第三方提供用户信息, 实现用户同步操作, 对方给提供webservice接口(axis2实现)并也使用axis2作主客户端调用我方提供的webservice接口 起初, 由于 ...
- Atitit 动态调用webservice与客户端代理方式调用
Atitit 动态调用webservice与客户端代理方式调用 方式1: 使用call.invoke 直接调用WSDL,缺点:麻烦,不推荐--特别是JAVA调用.NET的WS时,会有不少的问题需要解 ...
- nodejs向远程服务器发送post请求----融云Web SDK/客户端获取token
最近要用到一个叫融云的及时通讯的SDK,在获取token这个步骤的时候有点卡顿,以防以后碰到类似的问题,再此记录一下. 客户端通过融云 SDK 每次连接服务器时,都需要向服务器提供 Token,以便验 ...
- 客户端获取服务端自定义类数据 z
客户端获取服务端自定义类数据 问题一:超时问题,在最后获取数据的时候突然提示服务超时,服务已断开 解决:配置文件添加: <bindings> <wsHttpBinding> & ...
- WCF学习心得--客户端获取服务端自定义类数据
因项目需求,需要一个WCF服务,赶鸭子上架吧!下面直接切入正题! 首先创建WCF应用程序,具体如何创建就不赘述了,网上一大篇,我主要说说自己遇到的问题 问题一:超时问题,在最后获取数据的时候突然提示服 ...
- webservice axis2客户端设置代理方法(公司网络通过代理访问时)
webservice axis2客户端设置代理方法(公司网络通过代理访问时) UploadProcessInServiceStub stub = new UploadProcessInServic ...
- 基于NIO的同步非阻塞编程完整案例,客户端发送请求,服务端获取数据并返回给客户端数据,客户端获取返回数据
这块还是挺复杂的,挺难理解,但是多练几遍,多看看研究研究其实也就那样,就是一个Selector轮询的过程,这里想要双向通信,客户端和服务端都需要一个Selector,并一直轮询, 直接贴代码: Ser ...
随机推荐
- [2011山东ACM省赛] Mathman Bank(模拟题)
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/sr19930829/article/details/24187925 Mathman Bank ni ...
- Java 回调函数例子
首先定义一个类Caller,按照上面的定义就是程序员A写的程序a,这个类里面保存一个接口引用. public class Caller { private MyCallInterface callIn ...
- php请求API接口方法
thinkphp下直接放入公共函数即可. /** * 通过URL获取页面信息 * @param string $url 地址 * @return string 返回页面信息 */ function g ...
- Python2.7-datetime
datetime 模块用于操作日期时间模块内定义了5个类:date,time,datetime,timedelta,tzinfo 1.timedelta对象,代表一个时间间隔datetime.time ...
- openJDK环境搭建编译(fedora)
1.安装VMware VMware-workstation-full-10.0.7-2844087.exe 破解码:HY06L-F334P-9Z6H9-6R2XM-23C6J 安装完成之后, ...
- (转)JVM调优常用命令(jstat、jmap、jstack)
原文:https://www.cnblogs.com/ityouknow/p/5714703.html 一.jstat jstat(JVM statistics Monitoring)是用于监视虚拟机 ...
- ansible 常用方法
测试:用shell执行一个脚本很麻烦的,用script执行 1)推送脚本过去,并授权 ansible george -m copy -a "src=/tmp/test.sh dest=/tm ...
- Linux常用系统信息查看命令
[转]http://yulans.cn/linux/linux%E5%B8%B8%E7%94%A8%E7%B3%BB%E7%BB%9F%E4%BF%A1%E6%81%AF%E6%9F%A5%E7%9C ...
- 汽车为什么选择了CAN总线技术?
汽车为什么选择了CAN总线技术? 围绕“汽车为什么选择了CAN总线技术?汽车CAN总线技术到底是怎么一回事?采用汽车CAN总线技术有哪些优点?汽车总线的发展趋势”等问题作了一个浅短的介绍: 1. 汽车 ...
- 20155334 《网络攻防》 Exp6 信息搜集与漏洞扫描
20155334 Exp6 信息搜集与漏洞扫描 一.实验问题回答 哪些组织负责DNS,IP的管理? 答:互联网名称与数字地址分配机构 ICANN ,该机构决定了域名和IP地址的分配.负责协调管理DNS ...