2010年10月23日星期六

汉字按拼音排序

java中汉字按拼音排序
import java.util.Comparator;

class PinYinComparator implements Comparator<String> {

public int compare(String s1, String s2) {
return ((java.text.RuleBasedCollator)java.text.Collator.
getInstance(java.util.Locale.CHINA)).compare(s1, s2);
}
}


但是在GWT中不支持java.text...

改成这样

new Comparator<Object>() {
@Override
public int compare(Object o1, Object o2) {
return javascriptSort(o1, o2);
}

private native int javascriptSort(Object a, Object b)/*-{
return a.localeCompare(b);
}-*/;
}

2010年10月22日星期五

在GAE上简单实现了一个淘宝客

在网上无意搜到一个用Ext实现的淘宝客,恩 ,咱用GWT做一个车轮

下了淘宝的 SDK for java就开干 参考API文档按部就班

在淘宝的沙箱里测试,很顺利,乘胜前进,到正式环境下测试

问题来了

invalid signature

网上搜了一通,有说时间戳不对,果不其然,GAE使用的是标准时间,整整差了8小时,遂在获得的当前时间上加了8小时,OK

invalid signature 可能的另一个原因是APP_KEY 或 APP_SERCET不正确,仔细检查

 

调用 taobao.item.get

 

1 TaobaoClient client=new DefaultTaobaoClient(TaobaokeConstant.SANDBOX_URL, TaobaokeConstant.APP_KEY, TaobaokeConstant.APP_SERCET);
2 ItemcatsGetRequest req=new ItemcatsGetRequest();
3 java.util.Calendar c=java.util.Calendar.getInstance(TimeZone.getTimeZone("GMT+8"));
4 c.add(Calendar.HOUR, 8);
5 req.setTimestamp(c.getTime().getTime()) ;
6 req.setParentCid(new Long(0));
7 ItemcatsGetResponse response=client.execute(req);
8 return response.getItemCats();

 

调用 taobao.taobaoke.items.get 1 TaobaoClient client=new DefaultTaobaoClient(TaobaokeConstant.SANDBOX_URL, TaobaokeConstant.APP_KEY,TaobaokeConstant.APP_SERCET);
2 TaobaokeItemsGetRequest req=new TaobaokeItemsGetRequest();
3 req.setFields("num_iid,title,nick,pic_url,price,click_url,commission,commission_rate,commission_num,commission_volume,shop_click_url,seller_credit_score,item_location,volume,taobaoke_cat_click_url,keyword_click_url");
4 req.setCid(Long.parseLong(cid));
5 req.setNick(TaobaokeConstant.NICK);
6 req.setSort("commissionRate_desc");
7 TaobaokeItemsGetResponse response=client.execute(req);
8 return response.getTaobaokeItems(); 想用GAE JCache API 加入缓存以减轻压力,但屡试不行,从缓存中取 的时候报错没找到原因 改用自己写的缓存,然后用App Engine Cron 服务管理缓存 corn.xml 1 <?xml version="1.0" encoding="UTF-8"?>
2 <cronentries>
3   <cron>
4     <url>/cron/recache</url>
5     <description>Repopulate the cache every 1 hours</description>
6     <schedule>every 1 hours</schedule>
7   </cron>
8 </cronentries>

2010年10月20日星期三

GWT POST 提交页面


GWT  POST 提交页面


将所有参数以&分隔放入builder.setRequestData中

01 RequestBuilder builder = new RequestBuilder(RequestBuilder.POST, BASIC_URL);
02 builder.setHeader("Content-Type","application/x-www-form-urlencoded; charset=utf-8");
03 builder.setRequestData("chartSWF=" + be.getSelectedItem().getType() + ".swf&chartId=" + be.getSelectedItem().getType() + "&strXML=" + generateXml(entry));
04 builder.setCallback(new RequestCallback(){
05      public void onError(Request request, Throwable exception) {  
06          chart.removeAll();chart.addText("出错啦");
07      }
08      public void onResponseReceived(Request request, Response response) {
09      if(200 == response.getStatusCode()){
10          chart.removeAll();
11          chart.addText(response.getText());
12          chart.layout();
13      }else{
14          chart.removeAll();chart.addText("出错啦");
15      }
16      }
17 });
18    
19      try {
20      builder.send();
21 } catch (RequestException e) {
22     e.printStackTrace();
23 }


参考:http://blog.csdn.net/leoyunfei/archive/2008/12/26/3611565.aspx

2010年9月26日星期日

SQLServer 错误: 18456,用户 'NT AUTHORITY\SYSTEM' 登录失败总结

1、把'NT AUTHORITY\NETWORK SERVICE' 添加到Administrator组中
我的电脑-->右键-->管理-->本地用户和组
选择“组”-->双击Administrators-->单击“添加”-->单击“高级”-->单击“立即查找”-->在下面的列表中选择Network Service用户-->两次单击“确定”-->加入

2、打开Sql Server企业管理器-->选择数据库实例-->打开“安全性”节点
-->选择“登录”-->在右边的列表中单击右键 -->选择“新建登录”-->
在“常规”选项卡中单击“名称”旁边的按钮“...”-->选择“Administrators”组
-->单击下面的“成员”按钮-->选择“Network Service”-->单击“添加”按钮-->单击“确定”,
返回“新建登录”对话框-->保证身份验证类型为“windows验证” 和“允许访问”-->用户映射>把右侧数据库 单击“确定”

3、在需要设置的数据库下->安全性>用户>右击(新建用户)>登录名(选择'NT AUTHORITY\SYSTEM' )>然后选择对应的角色成员

4、查询分析器里面执行sp_grantlogin 'builtin\administrators'授予登陆权限.在"服务"里面重新启动


做了前3步,错误依旧
执行第四步后,错误消失





参考:
http://blog.csdn.net/codeshark/archive/2008/05/30/2497670.aspx
http://www.cnblogs.com/ITzen/archive/2008/02/20/1075715.html
http://topic.csdn.net/u/20090921/18/b58a5dc1-d9ad-4bcb-ab22-d047ddb73cbd.html

2010年9月17日星期五

通过ssh访问VirtualBox Ubuntu

ubuntu中
sudo apt-get install ssh
/etc/init.d/ssh restart
reboot
cmd中
VBoxManage setextradata ubuntu "VBoxInternal/Devices/e1000/0/LUN#0/Config/ssh/Protocol" TCP
VBoxManage setextradata ubuntu  "VBoxInternal/Devices/e1000/0/LUN#0/Config/ssh/HostPort"  2222
VBoxManage setextradata ubuntu  "VBoxInternal/Devices/e1000/0/LUN#0/Config/ssh/GuestPort" 22
可以用这个命令查看自己都对virtualbox进行了那些设置:
VBoxManage getextradata ubuntu enumerate
ubuntu为虚拟系统名称

用SSH Secure Shell Client连接 host name :localhost ;port :2222

2010年8月29日星期日

ubuntu 安装tomcat

 http://tomcat.apache.org/ 下载tomcat

tar -zxvf tomcat.tar.gz
启动 sh startup.sh

给root添加jdk path
sudo gedit /etc/environment

添加PATH

安装mysql
root@spring-ubuntu:/usr/local/tomcat6/bin# sudo apt-get install mysql-server
启动mysql服务器:sudo /etc/init.d/mysql start
关闭mysql服务器:sudo /etc/init.d/mysql stop
查看mysql服务器是否启动:sudo /etc/init.d/mysql status或者netstat -a | grep mysql
由于处理init.d目录下,mysql服务器是开机启动的

2010年8月28日星期六

2010年8月19日星期四

ubuntu为root添加java

为root添加java
root@spring-ubuntu:~# export PATH=$PATH:"/usr/local/jdk1.6.0_21/bin"

ubuntu软件安装中途取消

软件安装中途取消
spring@spring-ubuntu:~$ sudo apt-get remove
E: dpkg 的操作被中断了, 您必须手动执行 'sudo dpkg --configure -a' 以修复这个问题。
spring@spring-ubuntu:~$ sudo dpkg --configure -a
正在设置 java-common (0.34) ...
正在处理用于 man-db 的触发器...
正在处理用于 doc-base 的触发器...
Processing 2 added doc-base file(s)...
Registering documents with scrollkeeper...

ubuntu 配置环境变量

配置classpath,修改所有用户的环境变量
$ sudo gedit /etc/profile
在文件最后添加

#set java environment
IntelliJ Idea启动将JAVA_HOME命名为"IDEA_JDK" 或"JDK_HOME",所以需在/etc/profile中添加JDK_HOME设置,更改后的/etc/profile为:

JAVA_HOME=/usr/local/lib/jdk1.6.0_21

JDK_HOME=/usr/local/lib/jdk1.6.0_21

JRE_HOME=/usr/local/lib/jdk1.6.0_21/jre

CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib

export JAVA_HOME JDK_HOME JRE_HOME CLASSPATH

Ubuntu 10.04安装jdk

$ sudo chmod u+x jdk-6u21-linux-i586.bin

$ sudo -s ./jdk-6u21-linux-i586.bin

ubuntu 安装软件中途退出后不能再安装解决办法

spring@spring-ubuntu:~$ sudo apt-get install sun-java6-jdk
E: 无法获得锁 /var/lib/dpkg/lock - open (11: 资源暂时不可用)
E: 无法锁定管理目录(/var/lib/dpkg/),是否有其他进程正占用它?
spring@spring-ubuntu:~$ sudo rm /var/cache/apt/archives/lock
spring@spring-ubuntu:~$ sudo rm /var/lib/dpkg/lock


参考:http://hi.baidu.com/kamong8956/blog/item/2bea127782def717b151b925.htm

Linux 命令

设置root密码
sudo passwd root

sudo 获取root权

解压tar.gz
sudo tar -xvzf *.tar.gz

复制文件
sudo cp 源文件 目标文件目录

CP命令
格式: CP [选项]  源文件或目录   目的文件或目录
选项说明:-b 同名,备分原来的文件
-f 强制覆盖同名文件
-r  按递归方式保留原目录结构复制文件

复制文件夹
cp     -r  文件夹  文件夹

删除文件
sudo rm 文件名

2010年7月30日星期五

ssh远程登陆tomcat

用ssh远程登陆客户端登陆linux
进入tomcat/logs/文件夹下
键入指令:tail -f catalina.out

退出:Control-Z

jquery validate自带验证

validate自带的默认验证

required: "必选字段",
remote: "请修正该字段",
email: "请输入正确格式的电子邮件",
url: "请输入合法的网址",
date: "请输入合法的日期",
dateISO: "请输入合法的日期 (ISO).",
number: "请输入合法的数字",
digits: "只能输入整数",
creditcard: "请输入合法的信用卡号",
equalTo: "请再次输入相同的值",
accept: "请输入拥有合法后缀名的字符串",
maxlength: jQuery.format("请输入一个长度最多是 {0} 的字符串"),
minlength: jQuery.format("请输入一个长度最少是 {0} 的字符串"),
rangelength: jQuery.format("请输入一个长度介于 {0} 和 {1} 之间的字符串"),
range: jQuery.format("请输入一个介于 {0} 和 {1} 之间的值"),
max: jQuery.format("请输入一个最大为 {0} 的值"),
min: jQuery.format("请输入一个最小为 {0} 的值")

http://bluefuture.javaeye.com/blog/668196

2010年7月26日星期一

javascript 动态创建function

  var cellfuncs = new Array();
for(var i = 0;i < selectedArrayLength;i++){
var fun = new Function("data","return data["+i+"]");
cellfuncs = cellfuncs.concat(fun);
}

2010年7月9日星期五

java.lang.StackOverflowError

java.lang.StackOverflowError
堆栈溢出错误。当一个应用递归调用的层次太深而导致堆栈溢出时抛出该错误。

99%递归没有出口,查吧

2010年6月30日星期三

用dom4j生成xml


01 import java.io.File;
02 import java.io.FileOutputStream;
03 import java.io.IOException;
04
05 import org.dom4j.Document;
06 import org.dom4j.DocumentHelper;
07 import org.dom4j.Element;
08 import org.dom4j.io.OutputFormat;
09 import org.dom4j.io.XMLWriter;
10
11
12 public class SoaToXML {
13
14   
15     public static void execute(int userType,int bianhao){
16         Document document = DocumentHelper.createDocument();
17         document.setXMLEncoding("utf-8");
18         Element root = document.addElement("condition");
19         root.addElement("type").setText(String.valueOf(userType));
20         root.addElement("bianhao").setText(String.valueOf(bianhao));
21         String text = document.asXML();
22         printTest(text);
23         String path="soa_to_xml.xml";
24         if(writeFile(document, path)){
25             printTest("生成xml成功");
26         }else{
27             printTest("生成xml出错");
28         }
29     }
30     public static boolean writeFile(Document document, String fileName) {
31         try {
32
33             if (fileName == null || fileName.trim().equals("")) {
34                 return false;
35             }
36             String path = "f:/" + fileName;
37
38             OutputFormat format = OutputFormat.createPrettyPrint();
39             XMLWriter output = new XMLWriter(new FileOutputStream(
40                     new File(path)), format);
41
42
43             output.write(document);
44             output.close();
45             return true;
46         } catch (IOException e) {
47             e.printStackTrace();
48
49             return false;
50         }
51     }
52     public static void printTest(String content) {
53         System.out.println(content);
54
55     }
56     /**
57      * @param args
58      */
59     public static void main(String[] args) {
60         SoaToXML.execute(0, 1);
61
62     }
63
64 }