amp@java

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  99 随笔 :: 0 文章 :: 228 评论 :: 0 Trackbacks

#

近段时间我的电脑的右键菜单慢得要命,在一个文件或文件夹上点一下右键,要等上10几秒才能弹出菜单来,开始就觉得应该是某个程序添加右键菜单项导致的,但看看右键里除了winrar和杀毒软件添加的项之外没有其他项了,上网搜了发现有很多人碰到这种问题,不过都是由某些软件导致的,而我并没装过那些软件。
后来下了个系统修复软件,检查了一下我的shell扩展,才发现有个菜单项居然是指向局域网上另一台电脑的一个共享目录下的文件!我才想起以前曾经浏览过那台电脑的共享目录,并运行了里面一个清理工具,那个东西在右键了加了一个项;后来那台电脑重装了系统,把机器名改了,那个共享已经不复存在,所以我每次点右键,电脑都要查找一下那个共享,结果又查不到,不慢才怪!马上把这个项删除,一点右键,瞬间显现,呵呵。

吸取教训:以后少在别人的共享目录里运行程序,windows的共享有时候打开时慢得难以忍受,说不定什么时候发现电脑变慢就是由共享引起的。
posted @ 2006-10-16 00:46 amp@java 阅读(1928) | 评论 (4)编辑 收藏

支持GPRS的MODEM可以连上互联网,就能支持MMS(彩信)的发送,但实际上MMS的机制与SMS相差很大,并不是几个AT指令就能搞定的。而且MMS没有统一的标准,各个厂家的规格有所不同,运营商使用的标准也不同。
怎样才能像发短信一样通过串口连接MODEM发送彩信?似乎还没有相关的解决方案,现有的都是整套的软件。
http://blog.csdn.net/sealedxlmg/archive/2005/01/01/237054.aspx
posted @ 2006-10-09 12:26 amp@java 阅读(523) | 评论 (0)编辑 收藏

Modem型号:Wavecom Fastrack M1206B,支持GPRS,详细文档地址http://www.wavecom.com/modules/movie/scenes/search/index.php?fuseAction=searchPopup&article_identity=WMPuSupportHardFirmwaresM1206B&rubric_identity=WMPuSupportHardFirmwares&part=long

短信存储器:SM(普通短信),SR(信息报告),移动动感地带各20条,联通UP新势力各100条

串口速率:有的只能工作在9600bps,有的可以工作在多种速率

posted @ 2006-10-09 00:12 amp@java 阅读(889) | 评论 (0)编辑 收藏

近段时间单位的一台服务器出了问题,导致业务受到影响,开始的时候我总是认为是网络的原因,因为传输线路的带宽只有2M,是最有可能成为瓶颈的。于是提出把传输带宽增加到4M。但领导计算了一下,觉得网络的带宽是足够的。他让我们做了一系列的测试,最终发现,原来问题出在服务器的那个程序上:当把该程序窗口最大化时,CPU占用率是100%,把它最小化后,CPU占用率马上接近0;把该程序窗口最大化一段时间,业务就开始出现延迟的情况,把程序窗口最小化后,业务逐渐恢复正常。今天把那个窗口一直保持最小化,结果之前的问题都不再出现了。原来一个图形界面是如此地消耗资源,真是想不到。可能那个程序做得也比较垃圾,服务器是PIII 1G的CPU,512M的内存,处理每秒2Mb的数据,居然还忙不过来!
于是那位领导就对我说:“我不是批评你,遇到问题一定要追查到底,不要想当然,要从各方面考虑,找到问题的根本原因……”一席话说得我羞愧难当。
posted @ 2006-09-23 01:41 amp@java 阅读(188) | 评论 (0)编辑 收藏

使用Hibernate可以轻松实现一对多的表查询,不过性能比较差:先查主表(一),然后根据查出来的每个记录的ID查附表(多),所以要执行(1+结果记录数)次查询。

posted @ 2006-08-31 11:36 amp@java 阅读(525) | 评论 (1)编辑 收藏

问题描述:
使用WTP开发WEB程序,需要把WEB-INF/lib下的某个jar库删除,在eclipse的项目浏览器里是删不掉的,因为它在BuildPath里。于是就先把eclipse关掉,然后通过资源管理器找到那个project的文件夹,把文件删除。重新打开eclipse,运行该web程序(Run on server),会出现Publishing failed错误,详细信息为:Resource /xxxx does not exist,其中/xxxx是那个project文件夹。怎么可能呢,那个文件夹好好地放在那里,居然说does not exist!

原因:
由于在外面把某个jar删掉,eclipse还不知道,发布web程序的时候以为那个jar还在,于是就把它发布出去,但那个文件不存在,所以就报错。只是这个错报得太离谱,一个文件不见了就说整个project不存在,简直是误导观众!

解决方法:
删除jar的时候不能直接在eclipse里删,更不能在外面删。要先把整个Web Library从BuildPath里去掉,这样lib里的所有jar都不在BuildPath里了,然后在eclipse的项目浏览器(Navigator view)里把jar删除,然后再添加Web Library。

posted @ 2006-08-31 11:28 amp@java 阅读(2324) | 评论 (10)编辑 收藏

Tomcat的Release Notes 里有这么一段话:
=======================
JNI Based Applications:
=======================
Applications that require native libraries must ensure that the libraries have
been loaded prior to use.  Typically, this is done with a call like:

  static {
    System.loadLibrary("path-to-library-file");
  }

in some class.  However, the application must also ensure that the library is
not loaded more than once.  If the above code were placed in a class inside
the web application (i.e. under /WEB-INF/classes or /WEB-INF/lib), and the
application were reloaded, the loadLibrary() call would be attempted a second
time.

To avoid this problem, place classes that load native libraries outside of the
web application, and ensure that the loadLibrary() call is executed only once
during the lifetime of a particular JVM.

简单地说就是JNI库的加载在启动Tomcat的JVM中只能进行一次,如果两次执行System.loadLibrary("path-to-library-file");将会导致错误(Error,不是Exception):
java.lang.UnsatisfiedLinkError:

Native Library xxx.dll already loaded in another classloader
可是这段话并没有给出具体的解决办法。我要使用的一个NT登录验证的JAAS模块碰到了这个问题:我把包含这个语句的库放在了某个web应用程序的lib目录下,结果当修改了某个web配置文件导致这个程序的context reload时,JAAS模块就不能使用,因为它又重新加载JNI库导致错误。只有重新启动整个tomcat才能恢复正常,十分麻烦。
找了好久,终于在一个大侠的文章(http://cuiyingfeng.blog.ccidnet.com/blog/ccid/do_showone/tid_48232.html)中找到了解决方法:
1、加载JNI库的包放在Tomcat的common/lib目录下,而不要放在各context的lib目录下;
2、每次加载JNI库之前检查是否已经加载过。
由于加载语句不是我能控制的,所以第二种方法不能实现,于是我就通过第一种方法把这个问题解决了。

posted @ 2006-08-31 11:13 amp@java 阅读(4879) | 评论 (0)编辑 收藏

Log4j是个很简单的工具,用起来很方便。
Hibernate就没那么简单了,一直都觉得有个高高的门槛在前面,我做的东西似乎还没复杂到那种程度,只是有些东西手工操作实在繁琐。例如要从数据库里查找,再组装成JavaBean,每次都要连接数据库,PreparedStatement,ResultSet,然后一个个setter,极其枯燥。但要用Hibernate,也要一大堆的东西,如果没有IDE的辅助,光是用手写Mapping,config等等也是很累的,幸好有了很多工具可以自动生成这些东西,所以我决定用它了。Bea Workshop里面有个很方便的特性就是根据数据库表生成JavaBean和映射文件,点几下鼠标,这些东西全出来了,只要开个session来操作这些要持久化的对象就可以了,再也不用那些繁琐的JDBC代码。不过我觉得这样还是会带来性能损失的,因为那些调用被层层封装了。
目前只是成功地把一个JavaBean保存在表里,呵呵,其他还没动手,等我慢慢看文档再说。

posted @ 2006-07-26 22:36 amp@java 阅读(489) | 评论 (0)编辑 收藏

之前Bea Workshop Studio 3.0可以与MyEclipse 4.1.1和平共处,在同一个eclipse可以用到两个插件的好东西,但装了最新的Bea Workshop Studio 3.1后,用 Workshop 的JSP编辑器打开JSP文件时,在源代码部分却是普通的文本显示,语法高亮、代码提示通通不见了,把MyEclipse去掉后一切恢复正常。可能是因为Workshop和MyEclipse均集成了WTP,而MyEclipse的WTP版本比Workshop的低,造成了冲突。
posted @ 2006-06-15 11:35 amp@java 阅读(423) | 评论 (0)编辑 收藏

用Tomahawk的<h:dataScroller>时,如果在表格中增加了操作控件,点击后会对表的行数产生影响时,就需要在backing bean的action method里对表格进行翻页。例如,表格的每一行有个“删除”按钮,在该按钮的监听函数里对数据库进行删除操作后需要更新表格内容,这时候如果删除的正好是最后一页的最后一条记录,则更新表格的dataModel后,表格仍停留在最后一页,但没有显示任何记录,需要手动翻到前一页才能看到其他记录,行为十分怪异。因此需要在监听函数里判断当前删除的时候为最后一页的最后一条记录,如果是的话就通过程序翻到前一页。
具体实现如下:
在表格所在页面的backing bean里增加一个HtmlDataScroller成员变量,并设置它的setter和getter,再通过页面上的dataScroller控件中的binding属性把该控件与成员变量联系起来,然后在按钮监听处理中对该控件进行操作。要把表格定位在某一页,需要用到HtmlDataScroller的getUIData().setFirst()方法。
public class PageBean{
  
private HtmlDataScroller scroller = null;
  
public HtmlDataScroller getScroller(){
    
return scroller;
  }

  
public void setScroller(HtmlDataScroller scroller){
    
this.scroller = scroller;
  }

  
public String buttonListionMethod(){
    
    scroller.getUIData().setFirst(
0);
    
  }
posted @ 2006-06-15 11:12 amp@java 阅读(943) | 评论 (2)编辑 收藏

仅列出标题
共10页: First 上一页 2 3 4 5 6 7 8 9 10 下一页