温馨提示:您的每一次转载,体现了我写此文的意义!!!烦请您在转载时注明出处http://www.blogjava.net/sxyx2008/谢谢合作!!!

雪山飞鹄

温馨提示:您的每一次转载,体现了我写此文的意义!!!烦请您在转载时注明出处http://www.blogjava.net/sxyx2008/谢谢合作!!!

BlogJava 首页 新随笔 联系 聚合 管理
  215 Posts :: 1 Stories :: 674 Comments :: 0 Trackbacks

#

近期刚开始接触jbpm,在整合web工程时遇到一异常,特有意思。记录下来,以免更多人少走弯路。
java.lang.LinkageError: loader constraint violation: when resolving interface method "javax.servlet.jsp.JspApplicationContext.getExpressionFactory()Ljavax/el/ExpressionFactory;" the class loader (instance of org/apache/jasper/servlet/JasperLoader) of the current class, org/apache/jsp/index_jsp, and the class loader (instance of org/apache/catalina/loader/StandardClassLoader) for resolved class, javax/servlet/jsp/JspApplicationContext, have different Class objects for the type javax/el/ExpressionFactory used in the signature
    at org.apache.jsp.index_jsp._jspInit(index_jsp.java:
30)
    at org.apache.jasper.runtime.HttpJspBase.init(HttpJspBase.java:
52)
    at org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:
159)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:
329)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:
342)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:
267)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:
717)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:
290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:
206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:
233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:
191)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:
128)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:
102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:
109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:
286)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:
845)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:
583)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:
447)
    at java.lang.Thread.run(Thread.java:
619)
从异常信息不难看出,是web容器 tomcat解析jsp页面时jar包冲突。
仔细查看jbpm4.3 lib目录下的jar包我们不难发现,罪魁祸首为juel.jar和juel-impl.jar
很显然原因就出在这两个jar包身上,从名字上不难发现juel-impl是前者的实现,因此这里采取的措施是保留juel-impl.jar删除juel.jar
重启tomcat,刷新web页面。问题迎刃而解。
刚开始接触jbpm,前阵子看了一下jbpm3的api,后来看了看jbpm4的API发现之间相差很大。小弟刚开始接触jbpm,希望达人指点。

posted @ 2010-08-16 17:46 雪山飞鹄 阅读(1993) | 评论 (4)编辑 收藏

一个人刷牙··

一个人吃早点··

一个人发呆··

一个人玩手机··

一个人看电视··

一个人睡觉··

慢慢的习惯了一个人··



有时一个人也挺好,一个人念着一个人,淡淡的是种享受。自由但不自在?享受这种生活至少不会大起大落,喜欢这种表达方式,喜怒哀乐一个人默默的品味...

有时候,莫名的心情不好,不想和任何人说话,只想一个人静静的发呆。

有时候,突然觉得心情烦躁,看什么都觉得不舒服,心里闷的发慌,拼命想寻找一个出口。

有时候,发现身边的人都不了解自己,面对着身边的人,突然觉得说不出话。

有时候,感觉自己与世界格格不入,曾经一直坚持的东西一夜间面目全非。

有时候,突然很想逃离现在的生活,想不顾一切收拾自己简单的行李去流浪。

有时候,别人突然对你说,我觉得你变了,然后自己开始百感交集。

有时候,希望时间为自己停下,就这样和喜欢的人地老天荒。

有时候,在自己脆弱的时候,想一个人躲起来,不愿别人看到自己的伤口。

有时候,突然很想哭,却难过的哭不出来。

有时候,夜深人静的时候,突然觉得寂寞深入骨髓。

有时候,走过熟悉的街角,看到熟悉的背影,突然就想起一个人的脸。

有时候,明明自己心里有很多话要说,却不知道怎样表达。

有时候,觉得自己其实一无所有,仿佛被世界抛弃。

真的只是有时候,明明自己身边很多朋友,却依然觉得孤单。

有时候,很想放纵自己,希望自己彻彻底底醉一次 。

有时候,自己的梦想很多,却力不从心。

有时候,常常找不到事情,无聊的无所适从。

有时候,突然找不到自己,把自己丢了。

有时候,心里突然冒出一种厌倦的情绪,觉得自己很累很累。

有时候,看不到自己未来的样子,迷茫的不知所措。

有时候,发现自己一夜之间长大了。

有时候,听到一首老歌,就突然想起一个人。

有时候,希望能找个人好好疼爱自己,渴望一种安全感。

有时候,别人误解了自己有口无心的一句话,心里郁闷的发慌。

有时候,常常在回忆里挣扎,有很多过去无法释怀。

有时候,渴望一场轰轰烈烈的恋爱,很想去做一些疯狂的事。

有时候,渴望别人的关怀,渴望一份简单的快乐。

有时候,看着时间一点点流逝,自己却无能为力。

其实,真的只是有时候一个人会想这么多。。。

posted @ 2010-08-14 09:51 雪山飞鹄 阅读(41803) | 评论 (49)编辑 收藏

问题描述
在用lucene做全文检索时,对一段文本进行索引。假若使用关键词去搜索索引文件,结果匹配到很多关键词部分,并对该部分关键词实现了高亮操作。但是如何统计该关键词在当前文档中出现的次数了?不要词频,要确切的次数或出现的位置。谢谢!
posted @ 2010-08-09 11:39 雪山飞鹄 阅读(2566) | 评论 (1)编辑 收藏

            请阅读word文档

            开发意图:

 在web开发中经常需要将jsp或html页面中表格数据导出为pdf、doc、xls等格式。然而在实现这一功能用到了一些开源的组件,每实现这一功能时都需要编写大量重复性代码。由此,对该部分进行了封装,做到通用性,在有需求的情况下,只需要拷贝相应的组件或依赖的JAR包到你的工程中,进行配置即可。

            功能:

 本组件可以将表格中的内容导出为pdf、doc、xls、jpg(采用了ImageIo,导出图片效果不是很好)。
 上述四种类型的报表组件所使用的技术
 pdf使用到了iText.jar由于需要支持中文所有用到了亚洲字体包iTextAsian.jar
 doc word文档这里并没有使用到jacob,而使用了iText的另一个jar包iText-rtf-2.1.7.jar,借助该jar可生成rtf格式的文档,而指定文件后缀名时指定为.doc即为word文档,之所以使用该jar,是因为它简单方便。
 xls使用了apache的开源组件poi-3.6-20091214.jar
 jpg使用jdk自带的ImageIo
 jquery 项目中用到了jquery,使用jquery遍历页面表格中的内容,然后将数据发送到后台对数据进行处理,根据用户需求生成对应的文档。

            环境:

     开发环境:
WindowsXP sp3/Windows7+jdk1.6.13+javaee1.4/javaee5+myeclipse6.5+tomcat5.5/tomcat6.0+jquery
     测试环境:
WindowsXP sp3/Windows7+jdk1.6.13+javaee1.4/javaee5+IE8+firefox3.6+tomcat5.5/tomcat6.0

            组件包

核心组件:com.future.report_1.0.0.201007291116.jar
依赖的JAR:
iText-2.1.7.jar①
iTextAsian.jar②
iText-rtf-2.1.7.jar③
poi-3.6-20091214.jar④
注:其中①②项为生成pdf所依赖的jar包
 ③项为生成doc文档所依赖的jar包当然它同时依赖①②项
 ④为生成excel所依赖的jar包
 
            com.future.report_1.0.0.201007291116.jar类明细图

 

com.future.report.Activator此类实现了osgi的org.osgi.framework.BundleActivator。开发中不关心这个类
com.future.util.report.controller.ExportReportServlet初始的报表导出servlet。只需配置该servlet到你的工程中即可
com.future.util.report.encodingfilter.EncodingFilter字符集过滤filter一般设置为utf-8你可以在web.xml中修改它
com.future.util.report.factory.ExportReportFactory报表导出工厂,根据用户传递过来的报表类型创建能生成对应该类型报表的实例
com.future.util.report.factory.ReportFontFactory 用于pdf word文档的字体生成工厂
com.future.util.report.impl.ExportReportForExcel 此类用于生成Excel格式的报表
com.future.util.report.impl.ExportReportForJPG此类用于生成JPG图片
com.future.util.report.impl.ExportReportForPDF此类生成PDF格式的文档
com.future.util.report.impl.ExportReportForWord此类生成Word文档
com.future.util.report.intf.IExportReport此类内部定义了一枚举用来标识要生成的报表类型
com.future.util.report.tags.ERTagUtil此类用于读取META-INF下的js文件并生成到WebRoot/er_js目录下
com.future.util.report.tags.ExportReportTag报表导出标签
具体参考对应的Javadoc或源码
            注:
在lib目录下
com.future.report_1.0.0.201007291116.jar使用eclipse-plugin打成的JAR包
export-report_1.2.jar为eclipse工程导出的jar包
两个jar没有功能上的差异都可以使用,二者各选其一即可


            注:由于文档中含大量图片不方便一一上传,如需了解直接下载该组件包,内含详细的文档及源码和例子
            点我下载该组件包及源码和例子

posted @ 2010-08-06 20:42 雪山飞鹄 阅读(3703) | 评论 (5)编辑 收藏


1、美国人的实力:想打谁就打谁
2、英国人的实力:美国打谁我打谁
3、俄罗斯的实力:谁骂我我打谁
4、法国人的实力:谁打我我打谁
5、中国人的实力:谁打我我骂谁
6、日本人的实力:谁打我我让美国打谁。
7、韩国人的实力:谁打我我和美国一块演习。
8、以色列的实力:谁心里想打我我就打谁
9、朝鲜人的实力:谁让我心里不痛快我就打韩国
posted @ 2010-08-04 13:25 雪山飞鹄 阅读(12863) | 评论 (3)编辑 收藏

     摘要:         在上文中介绍了使用sax方式解析xml,这里介绍下在Android中极力推荐的xmlpull方式解析xml。xmlpull不仅仅可以使用在Android上,同样也适用于javase,但在javase环境下,你需要自己去获取xmlpull所依赖的类库。     &...  阅读全文
posted @ 2010-08-04 08:12 雪山飞鹄 阅读(23906) | 评论 (6)编辑 收藏

          sax方式解析xml的优点:
          只要有jdk的存在,严格意义上来说是jre,它就可以运行,不依赖任何第三方的jar包。在移动设备上尤为广泛使用。比如Android就使用它来解析xml。当然Android更为推荐的是采用xmlpull来解析xml。这种方式也同样适合javase。我在后期会为大家准备使用xmlpull解析xml的demo。敬请关注。
          xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<root>
    
<student id="1" group="1">
        
<name>张三</name>
        
<sex></sex>
        
<age>18</age>
        
<email>zhangsan@163.com</email>
        
<birthday>1987-06-08</birthday>
        
<memo>好学生</memo>
    
</student>
    
<student id="2" group="2">
        
<name>李四</name>
        
<sex></sex>
        
<age>18</age>
        
<email>lisi@163.com</email>
        
<birthday>1987-06-08</birthday>
        
<memo>好学生</memo>
    
</student>
    
<student id="3" group="3">
        
<name>小王</name>
        
<sex></sex>
        
<age>18</age>
        
<email>xiaowang@163.com</email>
        
<birthday>1987-06-08</birthday>
        
<memo>好学生</memo>
    
</student>
    
<student id="4" group="4">
        
<name>小张</name>
        
<sex></sex>
        
<age>18</age>
        
<email>xiaozhang@163.com</email>
        
<birthday>1987-06-08</birthday>
        
<memo>好学生</memo>
    
</student>
    
<student id="5" group="5">
        
<name>小明</name>
        
<sex></sex>
        
<age>18</age>
        
<email>xiaoming@163.com</email>
        
<birthday>1987-06-08</birthday>
        
<memo>好学生</memo>
    
</student>
</root>
    xml对应的Javabean:
package com.parsexml.entity;

public class Student {
    
    
private int id;
    
private int group;
    
private String name;
    
private String sex;
    
private int age;
    
private String email;
    
private String memo;
    
private String birthday;
    
public int getId() {
        
return id;
    }
    
public void setId(int id) {
        
this.id = id;
    }
    
public int getGroup() {
        
return group;
    }
    
public void setGroup(int group) {
        
this.group = group;
    }
    
public String getName() {
        
return name;
    }
    
public void setName(String name) {
        
this.name = name;
    }
    
public String getSex() {
        
return sex;
    }
    
public void setSex(String sex) {
        
this.sex = sex;
    }
    
public int getAge() {
        
return age;
    }
    
public void setAge(int age) {
        
this.age = age;
    }
    
public String getEmail() {
        
return email;
    }
    
public void setEmail(String email) {
        
this.email = email;
    }
    
public String getMemo() {
        
return memo;
    }
    
public void setMemo(String memo) {
        
this.memo = memo;
    }
    
public String getBirthday() {
        
return birthday;
    }
    
public void setBirthday(String birthday) {
        
this.birthday = birthday;
    }
    
}
    开始解析:
package com.parsexml;

import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;

import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;

import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;

import com.parsexml.entity.Student;

/**
 * 功能描述:采用sax方式解析XML<br>
 * 
 * 
@author sxyx2008
 *
 
*/
public class SaxParseXml extends DefaultHandler{

    
//存放遍历集合
    private List<Student> list;
    
//构建Student对象
    private Student student;
    
//用来存放每次遍历后的元素名称(节点名称)
    private String tagName;
    
    
    
public List<Student> getList() {
        
return list;
    }


    
public void setList(List<Student> list) {
        
this.list = list;
    }


    
public Student getStudent() {
        
return student;
    }


    
public void setStudent(Student student) {
        
this.student = student;
    }


    
public String getTagName() {
        
return tagName;
    }


    
public void setTagName(String tagName) {
        
this.tagName = tagName;
    }


    
//只调用一次  初始化list集合  
    @Override
    
public void startDocument() throws SAXException {
        list
=new ArrayList<Student>();
    }
    
    
    
//调用多次    开始解析
    @Override
    
public void startElement(String uri, String localName, String qName,
            Attributes attributes) 
throws SAXException {
        
if(qName.equals("student")){
            student
=new Student();
            
//获取student节点上的id属性值
            student.setId(Integer.parseInt(attributes.getValue(0)));
            
//获取student节点上的group属性值
            student.setGroup(Integer.parseInt(attributes.getValue(1)));
        }
        
this.tagName=qName;
    }
    
    
    
//调用多次  
    @Override
    
public void endElement(String uri, String localName, String qName)
            
throws SAXException {
        
if(qName.equals("student")){
            
this.list.add(this.student);
        }
        
this.tagName=null;
    }
    
    
    
//只调用一次
    @Override
    
public void endDocument() throws SAXException {
    }
    
    
//调用多次
    @Override
    
public void characters(char[] ch, int start, int length)
            
throws SAXException {
        
if(this.tagName!=null){
            String date
=new String(ch,start,length);
            
if(this.tagName.equals("name")){
                
this.student.setName(date);
            }
            
else if(this.tagName.equals("sex")){
                
this.student.setSex(date);
            }
            
else if(this.tagName.equals("age")){
                
this.student.setAge(Integer.parseInt(date));
            }
            
else if(this.tagName.equals("email")){
                
this.student.setEmail(date);
            }
            
else if(this.tagName.equals("birthday")){
                
this.student.setBirthday(date);
            }
            
else if(this.tagName.equals("memo")){
                
this.student.setMemo(date);
            }
        }
    }
    
    
    
    
public static void main(String[] args) {
        SAXParser parser 
= null;
        
try {
            
//构建SAXParser
            parser = SAXParserFactory.newInstance().newSAXParser();
            
//实例化  DefaultHandler对象
            SaxParseXml parseXml=new SaxParseXml();
            
//加载资源文件 转化为一个输入流
            InputStream stream=SaxParseXml.class.getClassLoader().getResourceAsStream("Student.xml");
            
//调用parse()方法
            parser.parse(stream, parseXml);
            
//遍历结果
            List<Student> list=parseXml.getList();
            
for(Student student:list){
                System.out.println(
"id:"+student.getId()+"\tgroup:"+student.getGroup()+"\tname:"+student.getName()+"\tsex:"+student.getSex()+"\tage:"+student.getAge()+"\temail:"+student.getEmail()+"\tbirthday:"+student.getBirthday()+"\tmemo:"+student.getMemo());
            }
        } 
catch (ParserConfigurationException e) {
            e.printStackTrace();
        } 
catch (SAXException e) {
            e.printStackTrace();
        } 
catch (IOException e) {
            e.printStackTrace();
        }
    }
    
}
    效果图:

        注:如需运行代码,添加Student.xml到你的src目录下即可
        点我下载demo
posted @ 2010-08-03 08:24 雪山飞鹄 阅读(1982) | 评论 (0)编辑 收藏

package com.future.util;

import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

/**
 * 读取资源配置文件
 * 
@author coder
 *
 
*/

@SuppressWarnings(
"serial")
public class CommonPropertiesUtil {

    @SuppressWarnings(
"static-access")
    
public static String getContextPath(){
        String contextPath
="";
        
try {
            
            
//加载src目录下的文件的几种方式
            
            
//注意当使用getClass()方式而不是getClassLoader()时资源文件前的"/"不能省略
            
            
//InputStream stream=this.getClass().getResourceAsStream("/common.properties");
            
            
//InputStream stream=Thread.currentThread().getClass().getResourceAsStream("/common.properties");
            
            InputStream stream
=Thread.currentThread().getContextClassLoader().getResourceAsStream("common.properties");
            
            
//谨记这种方式是错误的
            
//InputStream stream=Thread.currentThread().getClass().getClassLoader().getResourceAsStream("common.properties");
            
            
//InputStream stream=Thread.currentThread().getClass().getClassLoader().getSystemResourceAsStream("common.properties");
            
            
//InputStream stream=this.getClass().getClassLoader().getSystemResourceAsStream("common.properties");
            
            
//InputStream stream=this.getClass().getClassLoader().getResourceAsStream("common.properties");
            
            
//InputStream stream=this.getClass().getClassLoader().getSystemResourceAsStream("common.properties");
            
            
//InputStream stream=CommonPropertiesUtil.class.getClassLoader().getResourceAsStream("common.properties");
            
            
//InputStream stream=CommonPropertiesUtil.class.getClass().getClassLoader().getSystemClassLoader().getResourceAsStream("common.properties");
            
            
//InputStream stream=CommonPropertiesUtil.class.getClass().getClassLoader().getSystemClassLoader().getSystemResourceAsStream("common.properties");
            
            Properties properties
=new Properties();
            properties.load(stream);
            
            contextPath
=properties.getProperty("contextPath");
            
            System.out.println(contextPath);
        }
 catch (FileNotFoundException e) {
            e.printStackTrace();
        }
 catch (IOException e) {
            e.printStackTrace();
        }

        
        
return contextPath;
    }
 
    
    
public static void main(String[] args) {
        getContextPath();
    }

    
}


        注:当直接使用getClass()而不是getClassLoader()方法时括号中资源文件名称前的/不能省略
        
posted @ 2010-08-02 10:11 雪山飞鹄 阅读(5390) | 评论 (1)编辑 收藏

        对于oracle的作风实在是很可恶,先是将java.sun.com的网站跳转到oracle的首页。接着发布了jdk-6u21-windows-i586.exe。原以为oracle放出的第一个jdk版本会有一些惊喜。怀着激动的心情安装了jdk-6u21-windows-i586.exe。效果不然,内存经常溢出。我2G内存了。接着就是整死myeclipse。鉴于java.sun.com已不存在,所以sun之前出的老版本jdk很难在网上找到。费了好大力气找到一个专门提供jdk下载的网站。非常满意,如大家怀旧的话,不妨可以去下载sun以前出的jdk。
这里提供下载地址
        http://proisk.ru/?q=jdk-6u18-windows
        
posted @ 2010-08-01 04:45 雪山飞鹄 阅读(2184) | 评论 (8)编辑 收藏

        web开发这块,视图层各式各样的框架层出不穷,由此引来的标签也层出不穷。时间长了,可能对每个框架中的标签很容易混淆。所以这是件很痛苦的事。曾经在网上寻找关于标签汇总这一方面的网站,始终没有找到。功夫不负有心人,国人做到了这一点,早上奇迹般的发现了这个网站。http://www.web-tag.net/index.htm,仔细一看还很全的。正是我所需要的,不敢独享,拿出来跟大家分享下。
        网址:http://www.web-tag.net/index.htm
        
posted @ 2010-07-28 08:45 雪山飞鹄 阅读(1407) | 评论 (0)编辑 收藏

仅列出标题
共22页: First 上一页 11 12 13 14 15 16 17 18 19 下一页 Last