收藏本站

缺少强转导致的编译器错误一例

 Jwt jwt = parse(compact);
        if (jwt instanceof Jws) {
            Jws jws = (Jws) jwt;
            Object body = jws.getBody();
            if (body instanceof Claims) {
                return handler.onClaimsJws((Jws<Claims>) jws);
            } else {
                return han...

阅读全文>>

org.apache.tomcat.util.bcel.classfile.ClassFormatException: null is not a Java .class file

项目maven 打war 包好放到tomcat 下,报

org.apache.tomcat.util.bcel.classfile.ClassFormatException: null is not a Java .class file 异常

因为在eclipse 直接发布是没有问题的,怀疑maven compile 问题。 但试了好几个版本compile 都一样结果。仔细看pom.xml 发现配了 war 插件,且多此一举将WEB-INF 指定为resource 目录,更要命的指定了filter 为false。  删掉后果然正常了。

起始官方文档特别说...

阅读全文>>

eclispe Unsupported major.minor version 51 问题解决汇总

Unsupported major.minor version **

随着Java 版本增多,类似问题出现概率也随之增大。 原因很简单就是导入的jar 版本与运行环境所需的版本不一致。

常见的有:

1 、使用java 7 编译的web 项目发布到tomcat 6, 或使用java 7 以下版本的web 容器。 

这类解决方式很简单,就是设置下编译器的jdk 版本,编译后重新发布就可以。

比如,在Eclipse中,“project => Proerties => Java Compiler”,设置”Compiler compliance level”为执行环境的Java版本...

阅读全文>>

shiro 注解不起作用bug 解决

环境: spring 3.2.5 + struts2 + shrio 1.2

为使用aop 注解,根据官方文档增加拦截器。


	<bean class="org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator" depends-on="lifecycleBeanPostProcessor">
		<property name="proxyTargetClass" value="true" />
	</bean>
	
	<b...

阅读全文>>

tomcat Can't load AMD 64-bit .dll on a IA 32-bit platform

今天下载jdk7 64位,tomcat7 也是64位。结果启动仍然报Can't load AMD 64-bit .dll on a IA 32-bit platform错。

排查发现myeclipse 中少配置了一处。

MyEclipse 8.6 32bits 版本自带JDK(1_6_0_13),32bits. 启动Tomcat6.0 和 tomcat 7.0 64bits 报错。

java.lang.UnsatisfiedLinkError: D:\Program Files\Apache Software Foundation\Tomcat 7...

阅读全文>>

中英混排文字长度截取

中文字符长度截取。

private static void printByteLength(String s ,String ecodingName){
   System.out.print("字节数: ");
   try {
   System.out.println(s.getBytes(ecodingName).length);
} catch (UnsupportedEncodingException e) {
   e.printStackTrace();
}
}

//判定是否是中文字符
private static boolean isChineseChar(char c) throws UnsupportedEncodingException{
   return String.valueOf(c).getBytes("GBK")....

阅读全文>>

apache tomcat 集群iframe session 问题

问题一 如何配置集群

   可以在任意搜索引擎搜索一下。在结合apache 日志,很容易配置出来。

问题二  session 共享时,登录后页面因为有iframe 登录总不成功

     这是因为iframe 重新请求后生成新的session 导致session 混乱,具体表现在刷新过程中请求头中带的sessionid 会变化。搜索了很久也没有看到有什么好的解决办法,有人建议把iframe 页session 关闭。没试过。但即使没有iframe ,发现不断刷新页面,session 仍然会混乱。

但我们系统iframe要改掉难度叫大,于是采用了另外一种方式。即

worker.controller.sticky_session=true
worker.controller.sticky_sess...

阅读全文>>

java.lang.Class cannot be cast to java.lang.reflect.ParameterizedType

        clazz = (Class<T>) ((ParameterizedType) this.getClass().getGenericSuperclass()).getActualTypeArguments()[0];  

java 泛型报java.lang.Class cannot be cast to java.lang.reflect.ParameterizedType 错误。

java中的泛型采用擦拭法。无法得到自己本身的泛型。而调用getGenericSuperclass()方法得到的是父类的泛型。但如果有多重继承则需要遍历获取泛型定义。


 Class c = getClass();
        ...


阅读全文>>

java基础<I> 初始化流程

java 中最重要的概念就是对象。java 中一切皆对象。

各个基本类型都有java对象的包装类。数组也被处理成了对象。所以了解java 对象相关知识是非常重要的。

本文重点介绍下java 生命周期的起点 - 初始化。

 

下面是java 初始化

面向对象(对象的初始化过程)

加载“类.class”文件;静态代码块执行(没有就不执行);构造代码块初始化;构造函数初始化;
Person p=new Person(“张三”,20);
这一句所做的事:
1.因为new用到了Person.class,所以会先找到Person.class文件并加载到内存中。
2.执行该类中的静态代码块,如果有的话,给Person.class类进行初始化。
3.在堆内存中开辟空间,分配内存地址。
4.在堆内存中建立对象的特有属性,并进行默认初始化。

5.对属性进行显示初始化。
6.对对象进行构造代码块初始化...

阅读全文>>

java实现php中preg_split 函数

改函数可用于提取文章部分内容作为摘要。
java 实现php中preg_split 函数     /**
     * 利用正则表达式分隔字符串
     * @param pattern 用于分隔的正则表达式
     * @param input  要分隔的字符串
     * @param limit 限制输出匹配串个数,小于等于0则不限制
     * @par...

阅读全文>>