程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SyBase數據庫 >> SyBase教程 >> JavaWebService實現讀寫Redis數據庫

JavaWebService實現讀寫Redis數據庫

編輯:SyBase教程

JavaWebService實現讀寫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的任何一個方法。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved