我经常用win2003的系统,这个是因为启用硬件和DirectX加速默认没有加速。
*硬件加速:桌面点击右键--属性(Properties) -> 设置(Settings )--高级(Advanced )--疑难解答(Troubleshoot)。把该页面的硬件加速滚动条拉到“完全”( Full),最好点击“确定”(OK)保存退出。这期间可能出现一瞬的黑屏是完全正常。
*DirectX加速:打开“开始”(Start) -> “运行”(Run),键入“dxdiag”并回车打开“DirectX 诊断工具”(DirectX Tools),在“显示”(Display)页面,点击DirectDraw, Direct3Dand AGP Texture 加速三个按钮启用加速。把“声音的硬件加速级别”(Hardware Sound Acceleration Leve l)滚动条拉到“完全加速”( Full Acceleration)。

还有双击exe时报内存不能“written”的错误,该问题的解决办法是,
我的电脑--属性--高级--性能--设置--数据执行保护--选择只为关键windows程序和服务启用数据执行保护 即可。确定,重启机器,一切正常,顺利进入游戏!

posted @ 2007-08-02 16:00 reeve 阅读(2598) | 评论 (2)编辑 收藏
java.lang.NoSuchMethodError: javax.servlet.jsp.tagext.TagAttributeInfo.<init>(Ljava/lang/String;ZLjava/lang/String;ZZ)V
 org.apache.jasper.compiler.TagLibraryInfoImpl.createAttribute(TagLibraryInfoImpl.java:
568)
 org.apache.jasper.compiler.TagLibraryInfoImpl.createTagInfo(TagLibraryInfoImpl.java:
401)
 org.apache.jasper.compiler.TagLibraryInfoImpl.parseTLD(TagLibraryInfoImpl.java:
248)
 org.apache.jasper.compiler.TagLibraryInfoImpl.
<init>(TagLibraryInfoImpl.java:162)
 org.apache.jasper.compiler.Parser.parseTaglibDirective(Parser.java:
418)
 org.apache.jasper.compiler.Parser.parseDirective(Parser.java:
483)
 org.apache.jasper.compiler.Parser.parseElements(Parser.java:
1539)
 org.apache.jasper.compiler.Parser.parse(Parser.java:
126)
 org.apache.jasper.compiler.ParserController.doParse(ParserController.java:
220)
 org.apache.jasper.compiler.ParserController.parse(ParserController.java:
101)
 org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:
203)
 org.apache.jasper.compiler.Compiler.compile(Compiler.java:
495)
 org.apache.jasper.compiler.Compiler.compile(Compiler.java:
476)
 org.apache.jasper.compiler.Compiler.compile(Compiler.java:
464)
 org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:
511)
 org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:
295)
 org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:
292)
 org.apache.jasper.servlet.JspServlet.service(JspServlet.java:
236)
 javax.servlet.http.HttpServlet.service(HttpServlet.java:
853)
 org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:
75)

导致以上原因的是因为javax.servlet.jsp.tagext.TagAttributeInfo有冲突
当前classpath中有两个version的javax.servlet.jsp.tagext.TagAttributeInfo class,一个在servlet.jar另一个在jsp-api.jar中。 jsp-api.jar的那个是好用的,它只包含javax\servlet\jsp这个包,而servlet.jar中也包含它,同时包含servlet需要的关键包。所以在classpath中jsp-api.jar要比servlet.jar先被reference。
另外在jboss3.2.*之后的自己带的lib中已经将javax\servlet\jsp从servlet.jar中分开了,分别是javax.servlet.jar(jsp-api.jar)和javax.servlet.jsp.jar(serlvet-api.jar).
最后申明一下,该问题的解决版权归该位仁兄http://blog.donews.com/bluecatr/archive/2006/07/05/947177.aspx,致敬!哈哈!

posted @ 2007-07-11 20:54 reeve 阅读(4201) | 评论 (0)编辑 收藏
碰到一个问题,在转换类型时,Long.valueof(0),即将int类型转换成Long类型时,在eclipse里不提示错误,但在实际转换过程中会出错,当改成Long.valueof("0"),就不会出现错误,似乎,Long.valueof()只支持String类型的转换。
posted @ 2007-07-09 13:05 reeve 阅读(3487) | 评论 (3)编辑 收藏
以前写过的一个从网上提取天气信息的类,参照了公司老前辈们的代码,可能不太规范,但基本实现,主要就是对页面源码的解析和有用信息的截取,取出来得都是有规律的字符串信息,可根据需要存进数据库,进行应用。代码如下:
  
  1 package parsehtml;
  2 
  3 import java.io.BufferedReader;
  4 import java.io.InputStreamReader;
  5 import java.net.HttpURLConnection;
  6 import java.net.URL;
  7 import java.util.ArrayList;
  8 import java.util.Iterator;
  9 import java.util.List;
 10 
 11 public class ParseHtml extends Thread {
 12     /*
 13      * 解析网址运行
 14      * 
 15      */public void run() {
 16         try {
 17             // 河北天气
 18             String urlAddress = "http://www.weathercn.com/forecast/province.jsp?province=hebei";
 19             startParse(urlAddress);
 20         } catch (Exception e) {
 21             e.printStackTrace();
 22             System.out.println("网络错误,提取天气数据出错!");
 23         }
 24     }
 25 
 26     /*
 27      * 
 28      * 开始解析网址
 29      * 
 30      * 
 31      */public void startParse(String urlAddress) throws Exception {
 32         System.out.println("开始提取网址:" + urlAddress);
 33         URL url = new URL(urlAddress);
 34         HttpURLConnection httpConnection = (HttpURLConnection) url
 35                 .openConnection();
 36         httpConnection.setRequestProperty("User-Agent""Mozilla");
 37         httpConnection.setRequestProperty("Connection""Keep-Alive");
 38 
 39         int responseCode = 0;
 40         try {
 41             responseCode = httpConnection.getResponseCode();
 42         } catch (Exception ex) {
 43             System.out.println("读取网页失败,返回代码:" + responseCode);
 44         }
 45         System.out.println("读取网页反回代码:" + responseCode);
 46 
 47         // 获得输入流
 48         InputStreamReader ir = new InputStreamReader(httpConnection
 49                 .getInputStream());
 50         if (ir != null) {
 51             BufferedReader reader = new BufferedReader(ir);
 52             System.out.println(reader);
 53             if (reader != null)
 54                 // 调用从何处取数据
 55                 isStartPoint(reader, "99"1);
 56             reader.close();
 57             ir.close();
 58         }
 59 
 60     }
 61 
 62     private void isStartPoint(BufferedReader reader, String tag, int number)
 63             throws Exception {
 64         String CurrentLine = "";
 65 
 66         // 从流中读取一行字符串(html源文件)
 67         while ((CurrentLine = reader.readLine()) != null) {
 68 
 69             // 循环查询整个 CurrentLine 中的 tag,查到一个就将计数据器 number 减 1
 70             int fromIndex = 0;
 71             while ((number != 0)
 72                     && (CurrentLine.toUpperCase().indexOf(tag.toUpperCase(),
 73                             fromIndex) != -1)) {
 74                 fromIndex = CurrentLine.toUpperCase().indexOf(
 75                         tag.toUpperCase(), fromIndex) + 1;
 76                 if (fromIndex > 0)
 77                     number--;
 78             }
 79 
 80             // 如果到了起始点即 number == 0 时,开始执行取数据操作
 81             List sb = new ArrayList();
 82             if ((CurrentLine.indexOf("citydetail"> 0)
 83                     && (CurrentLine.indexOf("99"> 0)) {
 84                 sb.add(this.processBuffer(CurrentLine));
 85                 // 截取天气信
 86                 CurrentLine = reader.readLine();
 87                 CurrentLine = reader.readLine();
 88                 if (CurrentLine != null) {
 89                     sb.add(this.processBuffer(CurrentLine));
 90                 }
 91                 // 截取最低气温
 92                 CurrentLine = reader.readLine();
 93                 if (CurrentLine != null) {
 94                     sb.add(this.processBuffer(CurrentLine));
 95                 }
 96             }
 97             StringBuffer s = new StringBuffer();
 98             // 将所有的截取信息汇总进行处理,用‘,’间隔便于以后截取相应信息
 99             for (Iterator it = sb.iterator(); it.hasNext();) {
100                 String i = it.next().toString();
101                 s.append(i);
102             }
103             String Tq = s.toString();
104             String[] Tqxx = Tq.split(",");
105             if (Tqxx.length >= 3) {
106                 System.out.println(Tq);
107             }
108         }
109     }
110 
111     /*
112      * 判断并从网页上截取
113      * 
114      * @param old
115      */
116     private String processBuffer(String strLine) throws Exception {
117         // 保存当前取得的 城市
118         StringBuffer sb = new StringBuffer();
119         String Tqxx;
120         // 当当前行含有“城市”时,截取相应的城市名称
121         if (strLine.indexOf("citydetail"> 0) {
122             Tqxx = subString(strLine, "sta_id""<");
123             Tqxx = Tqxx.substring(24);
124             sb = sb.append(Tqxx + ",");
125         }
126         if (strLine.indexOf("alt"> 0) {
127             Tqxx = subString(strLine, "alt"">");
128             Tqxx = Tqxx.substring(1);
129             sb = sb.append(Tqxx + ",");
130         }
131         if (strLine.indexOf("strong"> 0) {
132             strLine = strLine.replaceAll(" """);
133             Tqxx = subString(strLine, "strong>""<");
134             String Tqxx1 = subString(strLine, "-""</");
135             Tqxx1 = Tqxx1.substring(8);
136             Tqxx = Tqxx + "~" + Tqxx1;
137             sb = sb.append(Tqxx + ",");
138         }
139         return sb.toString();
140 
141     }
142 
143     /*
144      * 返回在 strSourc 的 strStart ,strEnd 之间的字符串
145      * 
146      */
147     private String subString(String strSource, String strStart, String strEnd) {
148         strSource = strSource.toUpperCase();
149         strStart = strStart.toUpperCase();
150         strEnd = strEnd.toUpperCase();
151         int intStart = strSource.indexOf(strStart);
152         int intEnd = strSource.indexOf(strEnd, intStart);
153         String strRetu = " ";
154         if (intStart == -1)
155             return strRetu;
156         if ((intEnd != -1&& (intEnd > intStart)) {
157             strRetu = strSource.substring(intStart + strStart.length(), intEnd);
158         } else {
159             strRetu = strSource.substring(intStart + strStart.length());
160         }
161         return strRetu.trim();
162     }
163 
164     public ParseHtml() {
165 
166     }
167 
168     public static void main(String args[]) {
169         ParseHtml p = new ParseHtml();
170         p.run();
171     }
172 }
173 
posted @ 2007-04-30 09:47 reeve 阅读(1564) | 评论 (1)编辑 收藏

当用jxl包操作excel文件的时候,在拷贝大批量的单元格的时候会发生错误,信息如下:         

1   java.lang.ArrayIndexOutOfBoundsException:   441   
2   jxl.biff.IndexMapping.getNewIndex(IndexMapping.java:68)   
3   jxl.biff.FormattingRecords.rationalize(FormattingRecords.java:372)   
4   jxl.write.biff.WritableWorkbookImpl.rationalize(WritableWorkbookImpl.java:727)   
5   jxl.write.biff.WritableWorkbookImpl.write(WritableWorkbookImpl.java:489)   


这个错误曾花了我不少时间,为了避免这个错误,我曾试过把一个excel报表中的纪录拆分成好几部分分别进行处理,效率可想,非常的慢,非常的烦人,后来,偶尔在网上看到有人建议看看它的源代码,也许能更好的理解它,死当活马医,下了源代码,为了能够更清楚地调试和跟踪,我把jxl中的src下的源程序直接导到了工程里进行调试,结果发现这个错误是在jxl.biff下的formatting records.java这个类中出的问题,它定义了一个变量private static final int maxFormatRecordsIndex = 0x1b9;即最大纪录格式数目为441,因此每当拷贝的单元格超过这个变量值的时候就会报错,解决的方法就是把这个0x1b9换成一个大点的值,即可,我换成了7200基本满足了需要,没有再报这个错,而且以往复制单元格,单元格格式丢失的情况也没有再出现,问题完全解决!

教训:对于现成的东西,已经做好的东西,要敢于去研究,去质疑,尤其是开源的东西,因为都是为了个人的使用,其中难免有些东西,对于我们自己的项目来说不太合适,找到它的源代码,大概一跟踪,基本上问题就能解决,以前的时候,总是感觉自己的水平菜,总认为别人的东西都是对的,结果导致问题一直拖到现在,亲自动手实践,永远是最好的方法!

posted @ 2007-04-29 14:16 reeve 阅读(11861) | 评论 (9)编辑 收藏
因为工作需要,我希望能在spring中实现这样一种框架页面,如T字形的三块页面,页面代码大致如下:
<frameset rows="0,35,*" border=0 > 
<frame name="perspective_workarea" title="工具栏" frameborder=0 noresize> 
<frame name="perspective_toolbar" title="工具栏" src="perspective.do?page=toolbar"> 
<frame name="perspective_content" title="页面内容" src="perspective.do?page=content" marginwidth=0 marginheight=0 scrolling="no" frameborder=0> 
<frameset cols="0,35,*" border=0 > 
<frame name="perspective_workarea" title="工作区" frameborder=0 noresize> 
<frame name="perspective_toolbar" title="工具栏" src="perspective.do?page=gtoolbar" marginwidth=0 marginheight=0 scrolling="no" frameborder=0 noresize> 
<frame name="perspective_content" title="页面内容" src="perspective.do?page=gcontent" marginwidth=0 marginheight=0 scrolling="no" frameborder=0> 
</frameset> 
</frameset>
出现的结果是页面在不停的闪动,也就是说形成了一个方法的嵌套,在不停的循环执行,后台的controller我试过用不同的方法,但出现的结果一样,页面在不停的执行 perspective.do?page=gtoolbar,perspective.do?page=gcontent 暂时不知道该怎么解决了,如果不嵌套的话就没有这样的问题。
posted @ 2007-04-29 13:37 reeve 阅读(499) | 评论 (1)编辑 收藏
仅列出标题
共2页: 上一页 1 2 

导航

<2024年11月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

统计

常用链接

留言簿(2)

随笔档案

搜索

最新评论

阅读排行榜

评论排行榜