Java WebService 实现读写Redis数据库

一、准备工作

1、MyEclipse10

2、JDK 1.7.0

3、apache-tomcat-6.0.13

二、创建服务端

1、创建【Web Service Project】,命名为【TheService】。

2、创建【Class】类,命名为【ServiceHello】,位于【com.wty.service】包下。

3、编写供客户端调用的方法,即编译方法代码。

package com.wty.service;

import javax.jws.WebService;//包别引用错了
import javax.xml.ws.Endpoint;

import redis.clients.jedis.Jedis;
import redis.clients.jedis.Transaction;

@WebService //注解别忘记加了
public class ServiceHello {

	/**
	 * 下面这些方法为客户端调用的方法,方法名任意命令即可
	 */

	public String getValue(String name){
		return "我叫:"+name;
	}

	private Jedis jedis;// 非切片客户端连接

	public void startRedis() {
		jedis = new Jedis("127.0.0.1", 6379);
	}

	/**
	 * String读写操作
	 *
	 * @param key
	 * @return
	 */
	public String get(String key) {
		String getStr = jedis.get(key);
		return getStr;
	}

	public String set(String key, String value) {
		String setStr = jedis.set(key, value);
		return setStr;
	}

	/**
	 * hash读写操作
	 *
	 * @param hash
	 * @param key
	 * @return
	 */
	public String hash_get(String key, String field) {
		String getStr = jedis.hget(key, field);
		return getStr;
	}

	public Long hash_set(String key, String field, String value) {
		Long setStr = jedis.hset(key, field, value);
		return setStr;
	}

	/**
	 * hincrby增值操作
	 *
	 * @param key
	 * @param field
	 * @param value
	 * @return
	 */
	public Long hincre(String key, String field, int value) {
		Long incrStr = jedis.hincrBy(key, field, value);
		return incrStr;
	}

	/**
	 * multi事务操作
	 *
	 * @return
	 */
	public Transaction multi() {
		Transaction tranOpera = jedis.multi();
		return tranOpera;
	}

	/**
	 * 清0操作
	 * @return
	 */
	public String flushDB() {
		String flushOpera = jedis.flushDB();
		return flushOpera;
	}

	/**
	 * 选择数据库
	 * @param index
	 * @return
	 */
	public String selectDB(int index) {
		String selectOpera = jedis.select(index);
		return selectOpera;
	}

	public static void main(String[] args) {
		// 下面这句很重要,用于发布服务端,建议用8080端口,因为tomcat默认为8080,
		Endpoint.publish("http://219.245.72.20:8080/Service/ServiceHello", new ServiceHello());
		System.out.println("service success!");
	}

}

4、进行tomcat部署

如果只在本机测试,就不用部署到tomcat中了,直接编译服务端程序即可。部署到tomcat中是为了让非本机访问webService。

5、挂起tomcat,并测试是否成功启动tomcat

6、进行服务端工程编译

说明:编译失败的话,请将该项目引用的jdk设置更高版本

编译成功。

7、测试结果

测试地址:http://219.245.72.20:8080/Service/ServiceHello?wsdl

三、生成客户端

客户端负责调用刚建立的webService,谁要调用,在谁的机子上建立。

1、创建【Web Service Project】,命名为【TheClient】。

此时TheClient工程为空。

2、命令提示窗口执行生成命令。

格式:wsimport -s "src目录" -p “生成类所在包名” -keep
“wsdl发布地址”

示例:

wsimport -s f:\\Workspaces\\TheClient\\src -p com.wty.client -keep http://219.245.72.20:8080/Service/ServiceHello?wsdl

说明:

1)"src目录"地址不可含空格

2)“wsdl发布地址”不要漏了“?wsdl”

解决如下:

3、刷新TheClient项目,检查自动生成类(其中带有Response后缀的java文件就是服务端的方法)

四、最终测试

1、创建【Class】类,命名为【ServiceTest】,位于【com.wty.test】包下。

2、编写测试方法,调用服务端方法,并打印返回的结果。

package com.wty.test;

import com.wty.client.ServiceHello;
import com.wty.client.ServiceHelloService;

public class ServiceTest {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		ServiceHello hello = new ServiceHelloService().getServiceHelloPort();
		hello.startRedis();
		String result = hello.get("1011");
		System.out.println(result);
	}

}

由于调用服务端的读写Redis服务器的方法,比如get("1011")方法,

这里记得要开Redis服务器

只要在一个局域网里,其他机子也可以访问调用上述webService的任何一个方法。

五、引用参考

http://www.iteye.com/topic/1135747

时间: 2024-10-11 07:44:32

Java WebService 实现读写Redis数据库的相关文章

eclipse写java程序实现连接redis数据库教程

第一步,在windows下载安装配置好redis数据库.这里我就不再概述了.下载jedis-2.4.2.jar,当然最好是下载最新版本的jar包.这个在百度搜索下就出来的.下载后,放在一个文件夹下面,一会会需要到. 第二步.打开eclipse,新建一个java工程.如下图所示: 第三步:在Test这个java工程里面,我们新建一个folder,命名lib,把刚才下载的jedis-2.4.2.jar包放在我们新建的lib的包下面,如下图所示: 第四步,在eclipse中,选中jar包,build

java代码连接本地redis数据库

关于redis的介绍在这里就不说了.今天主要讲解,如何连接redis.连接之前.必须要做的几点: 一.安装redis.下载服务和客户端,然后 二.启动redis服务. 经过这两步的测通以后.我们只需要,看代码走起; package com.huojg.test; import redis.clients.jedis.Jedis; public class mainConnetcionRedis { public static void main(String[] args) { //实例化一个客

Python读写Redis数据库

import redis class Database: def __init__(self): self.host = 'localhost' self.port = 6379 def write(self,website,city,year,month,day,deal_number): try: key = '_'.join([website,city,str(year),str(month),str(day)]) val = deal_number r = redis.StrictRed

学习记录04 --- 使用java连接redis数据库进行操作

现在先简单的尝试下java如何连接上redis数据库 首先我们需要一个jedis.jar架包,我下载的是2.9.0的版本 附上下载地址,点击我下载 开始我们的常规操作,打开idea,导入架包,emmmmm,感觉这次会写的特别简短 先导包 import redis.clients.jedis.Jedis; 我们需要连接redis数据库的话,都是依赖于jedis对象而来的,我们先得new出一个jedis对象 //new一个Jedis对象,连接redis数据库 Jedis jedis = new Je

将mysql中的全国区域表数据转移至Redis数据库

搭建环境: 1.meven工程 2.Spring整合Mybatis框架 3.Spring整合Redis数据库 注:这里的大部分内容只有讲在java中如何使用Redis数据库 一丶引入Redus相关jar包,包括Spring整合Redis的jar包 关于jar包版本问题: 目前我使用的这jar版本是没有出现问题的,但我换了一些版本后出现了报错,所以推荐使用我的jar版本即可 <!--Redis驱动包--> <dependency> <groupId>redis.clien

java使用redis数据库

使用maven管理jar,添加依赖: <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.7.0</version> </dependency>//需要的jar 使用redis数据库的配置(设置属性的值,可以根据具体需要),存数据 JedisPool jedisPool = null; J

Java使用Pipeline对Redis批量读写(hmset&amp;hgetall)

一般情况下,Redis Client端发出一个请求后,通常会阻塞并等待Redis服务端处理,Redis服务端处理完后请求命令后会将结果通过响应报文返回给Client.这有点类似于HBase的Scan,通常是Client端获取每一条记录都是一次RPC调用服务端.在Redis中,有没有类似HBase Scanner Caching的东西呢,一次请求,返回多条记录呢?有,这就是Pipline.官方介绍 http://redis.io/topics/pipelining 通过pipeline方式当有大批

Java使用Pipeline对Redis批量读写(hmset&hgetall)

一般情况下,Redis Client端发出一个请求后,通常会阻塞并等待Redis服务端处理,Redis服务端处理完后请求命令后会将结果通过响应报文返回给Client. 这有点类似于HBase的Scan,通常是Client端获取每一条记录都是一次RPC调用服务端. 在Redis中,有没有类似HBase Scanner Caching的东西呢,一次请求,返回多条记录呢? 有,这就是Pipline.官方介绍 http://redis.io/topics/pipelining 通过pipeline方式当

java操作redis数据库实例(redis集群)

1.配置redis集群 <?xml version="1.0" encoding="UTF-8"?> <redisCluster> <!--userRoute --> <clusterGroup name="userRoute" selectdb="1"> <server host="10.177.129.16" port="6379"