50,535
社区成员
发帖
与我相关
我的任务
分享
java.lang.RuntimeException: Unable to find proto buffer class
at com.google.protobuf.GeneratedMessageLite$SerializedForm.readResolve(GeneratedMessageLite.java:775)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at java.io.ObjectStreamClass.invokeReadResolve(ObjectStreamClass.java:1056)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1765)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1326)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:348)
at com.schooner.MemCached.ObjectTransCoder.decode(Unknown Source)
at com.schooner.MemCached.AscIIClient.get(Unknown Source)
at com.schooner.MemCached.AscIIClient.get(Unknown Source)
at com.schooner.MemCached.AscIIClient.get(Unknown Source)
at com.danga.MemCached.MemCachedClient.get(Unknown Source)
at com.limboworks.lib.biz.util.JavaMemcachedUtil.get(JavaMemcachedUtil.java:106)
at test.com.soccer.biz.util.TestMemcachedUtil.main(TestMemcachedUtil.java:38)
Caused by: java.lang.ClassNotFoundException: com.soccer.biz.protocol.MsgProtos$MsgRes
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:171)
at com.google.protobuf.GeneratedMessageLite$SerializedForm.readResolve(GeneratedMessageLite.java:768)
... 15 more
public static void main(String[] args) {
MemcachedUtil memcachedUtil = new JavaMemcachedUtil();
memcachedUtil.setServer("192.168.1.201:11211");
memcachedUtil.setWeight("3");
try {
memcachedUtil.init();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String key = "MSG_10012";
System.out.println(memcachedUtil.get(key));
}
package com.masterofsoccer.manager.biz.util;
import java.util.Date;
import com.danga.MemCached.MemCachedClient;
import com.danga.MemCached.SockIOPool;
public class JavaMemcachedUtil implements MemcachedUtil {
/**memcached客户端单例*/
private static MemCachedClient cachedClient = new MemCachedClient();
public static final int DAY = 24 * 3600;
public static final int HALF_DAY = 12 * 3600;
private String server;
private String weight;
public void init() {
String[] servers = server.split(",");
String[] temps = weight.split(",");
Integer[] weights = new Integer[temps.length];
for(int i=0; i<temps.length; i++) {
weights[i] = Integer.valueOf(temps[i]);
}
//获取连接池的实例
SockIOPool pool = SockIOPool.getInstance();
//服务器列表及其权重
//String[] servers = {"192.168.1.50:11211"};
//Integer[] weights = {3};
//设置服务器信息
pool.setServers(servers);
pool.setWeights(weights);
//设置初始连接数、最小连接数、最大连接数、最大处理时间
pool.setInitConn(10);
pool.setMinConn(10);
pool.setMaxConn(1000);
pool.setMaxIdle(1000*60*60);
//设置连接池守护线程的睡眠时间
pool.setMaintSleep(60);
//设置TCP参数,连接超时
pool.setNagle(false);
pool.setSocketTO(60);
pool.setSocketConnectTO(0);
//初始化并启动连接池
pool.initialize();
//压缩设置,超过指定大小的都压缩
// cachedClient.setCompressEnable(true);
// cachedClient.setCompressThreshold(1024*1024);
}
public JavaMemcachedUtil(){
}
public String getServer() {
return server;
}
public void setServer(String server) {
this.server = server;
}
public String getWeight() {
return weight;
}
public void setWeight(String weight) {
this.weight = weight;
}
/* public boolean add(String key, Object value) {
return cachedClient.add(key, value);
}
*//***
* 加入缓存
* @param key
* @param value
* @param expire 过期时间(秒)
* @return
*//*
public boolean add(String key, Object value, Integer expire) {
return cachedClient.add(key, value, new Date(expire * 1000));
}*/
public boolean put(String key, Object value) {
return cachedClient.set(key, value);
}
/**
* 加入缓存
* @param key
* @param value
* @param expire 过期时间(秒)
* @return
*/
public boolean put(String key, Object value, int expire) {
return cachedClient.set(key, value, new Date(expire * 1000));
}
public boolean replace(String key, Object value) {
return cachedClient.replace(key, value);
}
/**
* 覆盖缓存
* @param key
* @param value
* @param expire 过期时间(秒)
* @return
*/
public boolean replace(String key, Object value, int expire) {
return cachedClient.replace(key, value, new Date(expire * 1000));
}
public Object get(String key) {
return cachedClient.get(key);
}
public boolean delete(String key) {
return cachedClient.delete(key);
}
}
这是初始化的类