This commit is contained in:
jinyu 2016-02-18 14:03:17 +08:00
parent 22f9511f0e
commit ff7161f513
3 changed files with 29 additions and 28 deletions

View File

@ -1,7 +1,7 @@
weixin4j-server
===============
微信回调消息服务器
[微信回调消息](http://mp.weixin.qq.com/wiki/1/6239b44c206cab9145b1d52c67e6c551.html)服务器
----------------
base on netty.
@ -15,13 +15,6 @@ base on netty.
如何使用
-------
###maven依赖(1.1.6,2016-02-04 released)
<dependency>
<groupId>com.foxinmy</groupId>
<artifactId>weixin4j-server</artifactId>
<version>1.1.6</version>
</dependency>
###编写服务启动类
明文模式并总是调试输出微信请求信息的服务启动类.

View File

@ -1,7 +1,7 @@
package com.foxinmy.weixin4j.exception;
/**
* 调用微信接口抛出的异常
* 微信异常
*
* @className WeixinException
* @author jy.hu

View File

@ -10,6 +10,7 @@ import java.io.ObjectOutputStream;
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
import java.net.JarURLConnection;
import java.net.URISyntaxException;
import java.net.URL;
import java.util.Enumeration;
import java.util.LinkedList;
@ -17,6 +18,8 @@ import java.util.List;
import java.util.jar.JarEntry;
import java.util.jar.JarFile;
import com.foxinmy.weixin4j.exception.WeixinException;
/**
* 对class的获取
*
@ -27,6 +30,8 @@ import java.util.jar.JarFile;
* @see
*/
public final class ClassUtil {
private final static String POINT = ".";
private final static String CLASS = ".class";
/**
* 获取某个包下所有的class信息
@ -36,21 +41,25 @@ public final class ClassUtil {
* @return
*/
public static List<Class<?>> getClasses(String packageName)
throws RuntimeException {
String packageFileName = packageName.replace(".", File.separator);
throws WeixinException {
String packageFileName = packageName.replace(POINT, File.separator);
URL fullPath = getDefaultClassLoader().getResource(packageFileName);
String protocol = fullPath.getProtocol();
if (protocol.equals(ServerToolkits.PROTOCOL_FILE)) {
File dir = new File(fullPath.getPath());
return findClassesByFile(dir, packageName);
try {
File dir = new File(fullPath.toURI());
return findClassesByFile(dir, packageName);
} catch (URISyntaxException e) {
throw new WeixinException(e);
}
} else if (protocol.equals(ServerToolkits.PROTOCOL_JAR)) {
try {
return findClassesByJar(
((JarURLConnection) fullPath.openConnection())
.getJarFile(),
packageFileName);
packageName);
} catch (IOException e) {
throw new RuntimeException(e);
throw new WeixinException(e);
}
}
return null;
@ -70,18 +79,18 @@ public final class ClassUtil {
File[] files = dir.listFiles(new FilenameFilter() {
@Override
public boolean accept(File file, String name) {
return file.isDirectory() || file.getName().endsWith(".class");
return file.isDirectory() || file.getName().endsWith(CLASS);
}
});
if (files != null) {
for (File file : files) {
if (file.isDirectory()) {
classes.addAll(findClassesByFile(file, packageName + "."
classes.addAll(findClassesByFile(file, packageName + POINT
+ file.getName()));
} else {
try {
classes.add(Class.forName(packageName + "."
+ file.getName().replace(".class", "")));
classes.add(Class.forName(packageName + POINT
+ file.getName().replace(CLASS, "")));
} catch (ClassNotFoundException e) {
;
}
@ -113,12 +122,12 @@ public final class ClassUtil {
if (!entryName.startsWith(packageName)) {
continue;
}
if (!entryName.endsWith(".class")) {
if (!entryName.endsWith(CLASS)) {
continue;
}
try {
classes.add(Class.forName(entryName.replaceAll("/", ".")
.replace(".class", "")));
classes.add(Class.forName(entryName.replace(File.separator,
POINT).replace(CLASS, "")));
} catch (ClassNotFoundException e) {
;
}
@ -126,7 +135,7 @@ public final class ClassUtil {
return classes;
}
public static Object deepClone(Object obj) throws RuntimeException {
public static Object deepClone(Object obj) throws WeixinException {
ByteArrayOutputStream bos = null;
ObjectOutputStream oos = null;
ByteArrayInputStream bis = null;
@ -139,9 +148,9 @@ public final class ClassUtil {
ois = new ObjectInputStream(bis);
return ois.readObject();
} catch (IOException e) {
throw new RuntimeException(e);
throw new WeixinException(e);
} catch (ClassNotFoundException e) {
throw new RuntimeException(e);
throw new WeixinException(e);
} finally {
try {
if (bos != null) {
@ -203,8 +212,7 @@ public final class ClassUtil {
return cl;
}
public static void main(String[] args) {
System.err
.println(getClasses("com.foxinmy.weixin4j.qy.event"));
public static void main(String[] args) throws WeixinException {
System.err.println(getClasses("com.foxinmy.weixin4j.qy.event"));
}
}