2010年12月3日星期五

Unable to read TLD "META-INF/c.tld" from JAR file

Unable to read TLD "META-INF/c.tld" from JAR file


failed to load or instantiate taglibraryvalidator class: org.apache.taglibs.standard.tlv.jstlcoretlv

网上搜了很多,说的最多的原因是缺少standard.jar jstl.jar

但我的lib里面有这两个jar

而后发现删除javax.servlet.jar javax.servlet.jsp.jar 就不报错了

参考:http://ilinux.javaeye.com/blog/245380

另外这个错误出现在Tomcat5.5中

而在Tomcat5.0中确不报错


2010年11月15日星期一

部署到GAE时中途退出后引起的问题

如果部署GAE时正在upload files时退出,下次部署时会报错

Another transaction by user is already in progress for this app and major version. That user can undo the transaction with appcfg.py's "rollback" command

 

找到eclipse中的GAE SDK目录

如:D:\eclipse\plugins\com.google.appengine.eclipse.sdkbundle.1.3.8_1.3.8.v201010161055\appengine-java-sdk-1.3.8\bin

 

执行命令

appcfg.cmd rollback 后面跟gae项目war所在目录 

如 appcfg.cmd rollback D:/spring/eclipse_workspace/taobaoke/war

 

执行:

********************************************************
Warning: Future versions of the Dev App Server will require Java 1.6 or later. P
lease upgrade your JRE.
********************************************************
Reading application configuration data...
2010-11-15 9:34:23 com.google.apphosting.utils.config.AppEngineWebXmlReader read
AppEngineWebXml
信息: Successfully processed D:/spring/eclipse_workspace/taobaoke/war\WEB-INF/ap
pengine-web.xml
2010-11-15 9:34:23 com.google.apphosting.utils.config.AbstractConfigXmlReader re
adConfigXml
信息: Successfully processed D:/spring/eclipse_workspace/taobaoke/war\WEB-INF/we
b.xml
2010-11-15 9:34:23 com.google.apphosting.utils.config.AbstractConfigXmlReader re
adConfigXml
信息: Successfully processed D:/spring/eclipse_workspace/taobaoke/war\WEB-INF/cr
on.xml
Beginning server interaction for taokeapp...
0% Rolling back the update.
Success.
Cleaning up temporary files...

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%递归没有出口,查吧