Loading...

java .net

2009年10月17日

最近在学习如何使用maven,做了一个demo(基于S2S整合),总结一下与大家分享,期待与大家讨论以期快速进步。

一、maven介绍

1、maven是什么

http://maven.apache.org/
官方解释:Maven是一个项目管理工具,它包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。

2、使用maven有什么好处,解决什么问题

jar统一管理了:

如果建立了一个本地的jar仓库,那么所有人都是从仓库里面下载jar,拷贝项目时只需要copy几K的源码即可!其次,依然是仓库,使得每个人的jar版本都是一致的,不会出现因为版本不同,引起的莫名其妙的错误。
项目的自动化:

只需要mvn package命令,在eclipse里面,看run里面,只需要选择就行了!它会自动的从编译,测试开始,一直到打包,自动的运行,保证你的包没有问题。

我们在做多个不同的Java项目时,每个项目所用到的库文件基本都是大同小异的,通常的做法是每个项目下面都会复制一份这些库文件,甚至会把这些库文件都提交到vss上去,这样带来的问题不仅是增大了项目占用的硬盘空间,而且也使包管理很混乱。

我们可以这样查看jar包的依赖关系,是不是很爽?!
image

还可以单元测试覆盖率报表:

image

2、helloword

1、下载Maven 附件中的maven3.jar 解压到任意目录

2、安装eclipse插件m2eclipse

方式一:在线安装 更新地址是:http://m2eclipse.sonatype.org/sites/m2e
方式二:本地安装 help-->install new softeware-->add-->name填写maven-->archive..-->jar:file:/../m2e.zip!/-->ok
安装完成重启eclipse,在Window-->Preferences-->Maven下配置

image

禁用eclipse启动时更新maven index 主要是每次eclipse启动时都更新很烦人

image

添加自己的maven

3、新建maven项目

按照下图步骤

image

  • groupId定义了项目属于哪个组,这个组往往和项目所在的组织或公司存在关联。譬如在googlecode上建立了一个名为myapp的项目,那么groupId就应该是com.googlecode.myapp.
  • artifactId定义了当前Maven项目在组中唯一的ID,groupId为com.googlecode.myapp的例子中,你可能会为不同的子项目(模块)分配artifactId,如myapputil、myappdomain、myappweb等。
  • version指定了项目当前的版本——1.0SNAPSHOT。SNAPSHOT意为快照,说明该项目还处于开发中,是不稳定的版本。随着项目的发展,version会不断更新,如升级为1.0、1.1SNAPSHOT、1.1、2.0等。
  • name元素声明了一个对于用户更为友好的项目名称

点击Finish完成

4、maven项目结构

下图为基于maven项目结构,这里跟我们以前的项目结构很不一样,以前的项目结构约定俗成的只有两块 一个src 一个webRoot,当然这些都可以随意配置,比如WebRoot有的叫WebContent

image
这里maven倡导约定优于配置,maven的约定就是以下目录结构
src/main/java 下存放java类
src/main/webapp 下存放页面文件(需要手动创建)
src/main/resources 下存放资源文件
src/test/java 下存放单元测试代码
src/test/resources 下存放测试资源文件

5、添加jar包

只需维护pom.xml
比如添加struts2-core
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-core</artifactId>
<version>2.0.11.2</version>
</dependency>

我在172.20.66.230上部署了一个maven仓库,访问地址http://172.20.66.230:8081/nexus/

maven会根据pom.xml中的配置访问230的仓库下载对应的jar source 以及doc,下载到哪?这要看maven3/conf/settings.xml 55:

<localRepository>F:/Maven3/repository</localRepository>

6、编写代码

附件中有一个struts2+spring 的demo,解压然后import eclipse

在项目名上右键 run as -->Run Configurations

image

按图配置,点击Run即可。浏览器中访问http://localhost:8080/MavenSSH/

Maven运行的生命周期

  • 复制src/main/resources资源文件到输出目录

  • 编译src/main/java下的源代码

  • 复制src/test/resources下的测试用资源文件到测试输出目录

  • 编译src/test/java下的测试用例

  • 运行测试用例

  • 打包生成

===========================

  • 以上是一个简单的例子,只是用它获取依赖的jar包 。maven还有很多诸如项目管理方面的功能,比如文档编制、发布管理、配置管理...

  • 第一个次运行项目会比较慢,因为要下载jar包。

  • MavenSSH.rar是一个struts2与spring集成的例子,页面用到了sitemesh div+css 也值得学习

  • 项目debug是运行在jetty(类似于tomcat的容器)中。

posted @ 2011-04-18 16:09 猪 阅读(1321) | 评论 (5)编辑 收藏

如果部署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...

posted @ 2010-11-15 09:55 猪 阅读(420) | 评论 (0)编辑 收藏

在网上无意搜到一个用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>
posted @ 2010-10-21 11:33 猪 阅读(737) | 评论 (0)编辑 收藏
posted @ 2010-06-13 09:54 猪 阅读(429) | 评论 (0)编辑 收藏
     摘要: 01 var $j = jQuery.noConflict(); 02 //使用此方法验证所有text textarea 是否含有非法字符 03 $j(document).ready(function(){ 04    $j("input[type='text']").each(functio...  阅读全文
posted @ 2010-06-13 09:53 猪 阅读(2042) | 评论 (1)编辑 收藏
一个喜欢coding的程序员,工作在北京,从事java web 开发,喜欢JavaScript,平时关注技术新闻,试用各种新框架、新语言,学海无涯,有时也迷茫
平时没事翻翻编程思想、浏览各位同行的blog,将各种实际中的技巧、方法拿来养眼,并用到自己的项目中感受快乐
头儿的评价:不管遇到什么难题,都会钻窟窿盗洞把它解决掉

求职简历
posted @ 2010-05-19 14:58 猪 阅读(278) | 评论 (0)编辑 收藏
Compiling module com.capinfo.cdss.gwt.olap.Olap
Compiling 12 permutations
Compiling permutation 0...
Compiling permutation 1...
Compiling permutation 2...
Compiling permutation 3...
Compiling permutation 4...
Compiling permutation 5...
Compiling permutation 6...
Compiling permutation 7...
Compiling permutation 8...
Compiling permutation 9...
Compiling permutation 10...
Compiling permutation 11...
Compile of permutations succeeded
Linking into D:\spring\workspace\fusionchart\war\olap.
Link succeeded
Compilation succeeded -- 291.925s

在#.gwt.xml中添加支持Firefox
<!-- User Agent -->
<set-property name="user.agent" value="gecko1_8" /> 
编译的确变得很快,但IE中果真不好使
posted @ 2010-05-19 10:19 猪 阅读(1154) | 评论 (1)编辑 收藏
GWT设置UncaughtExceptionHandler 以捕获为捕捉的异常,这gwt在host mode编译后的JavaScript如果出现错误,No errors in Hosted Mode and Compiled localy, but deployed to tomcat yields in errors
这是恼人,加上UncaughtExceptionHandler起码有一丝线索
GWT.setUncaughtExceptionHandler(new GWT.UncaughtExceptionHandler() {
    public void onUncaughtException(Throwable throwable{
        String text = "Uncaught exception: ";
        while (throwable != null{
            StackTraceElement[] stackTraceElements = throwable
                    .getStackTrace();
            text += throwable.toString() + "\n";
            for (int i = 0i < stackTraceElements.lengthi++) {
                text += "    at " + stackTraceElements[i] + "\n";
            }
            throwable = throwable.getCause();
            if (throwable != null{
                text += "Caused by: ";
            }
        }
        System.err.print(text);
        text = text.replaceAll(" ", " ");
        Window.alert("系统错误:"+text);
    }
});
posted @ 2010-05-19 10:18 猪 阅读(363) | 评论 (0)编辑 收藏
java.lang.IllegalStateException:Should only call onDetach when the widget is attached to the browser's document

这个异常是在com.google.gwt.user.client.ui.Widget protected void onDetach() 方法抛出的
当页面重新加载或离开页面时会执行这个方法
如果系统没有正常初始化,会有这个异常
郁闷的是No errors in Dev Mode but Compiled localy and deployed to tomcat in errors
posted @ 2010-05-19 10:18 猪 阅读(503) | 评论 (0)编辑 收藏

private void showWaitMess(Frame window){
    final MessageBox box = MessageBox.wait("等待", "正在查询数据,请稍后...", "查询中...");
    final Element frame = window.getElement();
    final Timer t = new Timer() {
        @Override
        public void run() {
            if (ready(frame)) {
                this.cancel();
                box.close();
            }
        }
    };
    t.scheduleRepeating(100);
}
private native boolean ready(Element frame)/*-{
    return frame.contentWindow.document.readyState=="complete";
}-*/;
posted @ 2010-05-19 10:15 猪 阅读(290) | 评论 (0)编辑 收藏
又涨见识了
IE8报下面错误,而且是我的机器不报,同事的机器报,试了4台,两个报,两个不报,IE版本都一样,没想明白
解决:1、查看是否有未关闭的html标签,比如<table>而没有</table> (我就是这个原因)
2、是否在页面未加载完前js代码操作了body里的元素,将相关js代码移到</body>后面



网页错误详细信息

用户代理: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)
时间戳: Wed, 14 Apr 2010 08:33:56 UTC


消息: HTML Parsing Error: Unable to modify the parent container element before the child element is closed (KB927917)
行: 0
字符: 0
代码: 0
URI:  


http://support.microsoft.com/kb/927917
posted @ 2010-05-19 10:11 猪 阅读(1847) | 评论 (0)编辑 收藏

       本来系统是由JSP+润乾报表做的,做出一版来给人家客户演示,人家觉得体验不够,也没不够绚丽,要求回去返工,主要是因为他们看过他们兄弟部门的一个类似系统,要求向那个系统靠拢,可殊不知人家那是.net做的C/S,交互体验当然好了。

      面临一个抉择,换.net平台做winform,然后用sql server Analysis Services 的现成组件,这要技术上肯定可行,但是需要购买一堆微软的东西,钱啊。

      正好以前看过一些GWT的资料,以及基于GWT的开源框架,它的界面效果倒是可以满足客户的要求,遂毛遂自荐,想试试用GXT实验是否能实现要求的功能和效果,同时也有其他同事考察了SAP的BI,水晶E表,IBM的Cognos,结果因功能实现不够或者商务问题搁浅

      好像春节后没多久就开始搞GWT,现在终于实现了(或是变相实现了)要求的功能、满足了客户的意见,很有成就感,期间经历了两次重构,现在采用的GXT提供的MVC模型,底层数据访问是通过调用润乾报表API,将润乾报表运算结果转化为一个List,然后交给GXT在页面展现。

      页面功能上,GXT挺全面,Grid列排序,隐藏显示特定列,树形展开收缩,用open chart封装的统计图表,数据钻取,列标题分组,拖拽形式动态设置列维度、行维度以实现灵活查询,将灵活查询行列维度保存起来供以后随时打开,将结果到处Excel、PDF、Word,动态设置查询条件的显示隐藏,动态的进度条提示等等

      接下来还要融入GIS,实现报表到地图,地图到报表。

      值得注意的是所有这些功能都是在一个窗口中完成的,实现了菜单、维度定义、报表、统计图功能的融合,不用客户点来点去,一步了然。

posted @ 2010-05-19 10:11 猪 阅读(450) | 评论 (0)编辑 收藏

OLAP(On_line Analytical Processing联机分析处理) 和 OLTP(On_line Transaction Processing联机事务处理)

OLTP:On_line Transaction Processing 联机事务处理 ,以业务处理为主

OLAP:On_line Analytical Processing     联机分析处理,则是专门为支持复杂的分析操作而设计的,侧重于对决策人员和高层管理人员的决策支持

posted @ 2010-05-19 10:05 猪 阅读(310) | 评论 (0)编辑 收藏
因为客户不满意界面设计,人家看中了兄弟单位用的系统的样子,可他却不知那时cs程序,要想用bs做成那样的效果还是先天不足,就这样开始了GWT GXT的探索,一边摸索一边用GXT重写这个系统
现在想想 经历了三个阶段
刚开始是demo阶段,因为不知道路走不走的通,全面摸索GXT能实现的效果,也没注意模块的规划,甚至就一个类
而后发现还是能走通的,就开始添砖加瓦,发现代码越加越乱,决心重构,定义了多个包,多个类负责不同的功能模块,定义了一些Panel,一下子清晰多了,也遇到了不同模块间互相调用的问题,自己想当然的办法就是在一个类中声明每个模块作为属性,就像一个总管,每个屋子的钥匙我都有了,也认识到了这样的缺点,一些模块中的事件不等不在这个主管中定义
现在Now,用一天时间再次改写,仿照Gxt中的例子Explorer
1、将各个模块定义成com.extjs.gxt.ui.client.mvc.View,View中必须实现方法handleEvent(AppEvent event),负责处理发给自己的事件
2、为每个View定义com.extjs.gxt.ui.client.mvc.Controller,每个Controller中包含View,在这里定义View要处理的事件
3、在Dispatcher中注册每个Controller

这样,每个View各司其职,他们各自有各自的功能,会接收为他们定义的所有事件并处理,发送事件Dispatcher.forwardEvent(appEvent);

感觉这次改写后 速度还没有改写前的快,现在每次操作url会自动添加Hash,想把它去掉,一直没找到根结
posted @ 2010-05-19 09:55 猪 阅读(603) | 评论 (0)编辑 收藏
Gwt中调用panel的setUrl方法嵌入一个网页
在网页加载过程中加入wait
在页面中加入javascript
var ready = false; 
$j(document).ready(function(){
ready = true; 
});//这里用了jquery

然后再java中声明
public native boolean ready(Element frame)/*-{
return frame.contentWindow.ready?true:false;
}-*/;

然后在设置Frame的url时
olapFrame = centerCp.setUrl(GWT.getHostPageBaseURL()
+ com.google.gwt.http.client.URL.encode("jsp/showOlap.jsp?dim="
+ dims + "&dimname=" + colLabels + ""));
final MessageBox box = MessageBox.wait("等待", "正在查询数据,请稍后...", "查询中...");
final Element frame = olapFrame.getElement();
final Timer t = new Timer() {
@Override
public void run() {
if (ready(frame)) {
this.cancel();
box.close();
}
}
};
t.scheduleRepeating(100);
posted @ 2010-05-19 09:54 猪 阅读(476) | 评论 (0)编辑 收藏
organize imports应该是ctrl+shift+o的操作
add import导入指定的类
organize imports导入所有需要导入的类,并且如果有些import是没用的,那么eclipse会自动删除
posted @ 2010-03-03 22:07 猪 阅读(1283) | 评论 (0)编辑 收藏
Gwt中调用panel的setUrl方法嵌入一个网页
在网页加载过程中加入wait
在页面中加入javascript
var ready = false;
$j(document).ready(function(){
ready = true;
});//这里用了jquery

然后再java中声明
public native boolean ready(Element frame)/*-{
return frame.contentWindow.ready?true:false;
}-*/;

然后在设置Frame的url时
olapFrame = centerCp.setUrl(GWT.getHostPageBaseURL()
+ com.google.gwt.http.client.URL.encode("jsp/showOlap.jsp?dim="
+ dims + "&dimname=" + colLabels + ""));
final MessageBox box = MessageBox.wait("等待", "正在查询数据,请稍后...", "查询中...");
final Element frame = olapFrame.getElement();
final Timer t = new Timer() {
@Override
public void run() {
if (ready(frame)) {
this.cancel();
box.close();
}
}
};
t.scheduleRepeating(100);
posted @ 2010-03-03 22:07 猪 阅读(221) | 评论 (0)编辑 收藏
javascript 调用java代码
//调用JAVA静态方法
//规则: @全路径类名::静态方法名(方法签名)(传入参数)
//@com.capinfo.cdss.gwt.olap.client.ui.PartOlapCenterTab::saveOlapState

(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava

/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)

(saveName,dims,rowDims,colDims,sql,colLabels,expandInfo,hideInfo,exp,field,remark);
//调用JAVA非静态方法
//规则:实例对象.@全路径类名::方法名(方法签名)(传入参数)
//this.@com.capinfo.cdss.gwt.olap.client.ui.PartOlapCenterTab::saveOlapState

(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava

/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)

(saveName,dims,rowDims,colDims,sql,colLabels,expandInfo,hideInfo,exp,field,remark);


//调用JAVA的非静态属性
//规则:实例对象.@全路径类名::属性名
//var field=this.@com.capinfo.cdss.gwt.olap.client.ui.PartOlapCenterTab::field;

参考:http://java.sun.com/j2se/1.4.2/docs/guide/jni/spec/types.html#wp16432
http://yonglin4605.javaeye.com/blog/568045
http://yonglin4605.javaeye.com/blog/564829
posted @ 2010-03-03 22:06 猪 阅读(649) | 评论 (0)编辑 收藏
在*.gwt.xml中加入 显示中文
<inherits name="com.google.gwt.i18n.I18N"/>
<extend-property name="locale" values="zh" />
在页面中加入
<meta name="gwt:property" content="locale=zh" >
posted @ 2010-03-03 21:44 猪 阅读(513) | 评论 (0)编辑 收藏
调用panel的setUrl方法嵌入一个网页
要访问这个网页中的js变量 var abc
setUrl返回一个Frame

public native void jsGetVar(Element element)/*-{
var abc = element.contentWindow.abc;
//element.contentWindow.document.getElementById("name");访问element
}-*/;

调用 jsGetVar(frame.getElement());

参考:http://tailorcai.javaeye.com/blog/186897
posted @ 2010-03-03 21:44 猪 阅读(394) | 评论 (0)编辑 收藏
在网上搜索了很多部署gwt到tomcat的blog,吸取了大家的经验,又发现一些问题,总结一下
我是用的Google Plugin for Eclipse ,跟用gwt的sdk编译有点点不一样
1、在gwt项目右键Google > GWT Compile,就会在项目中的war中得到编译后的文件
To run the application as JavaScript in what GWT calls "production mode", compile the application by right-

clicking the project and choosing Google > GWT Compile.
参考:http://code.google.com/webtoolkit/usingeclipse.html#compiling
2、将war中这些文件复制到tomcat webapp/应用 目录下
看一下WEB-INF\classes是不是有相应的class文件,要是没有用eclipse编译后复制过来
3、这样就需要gwt-user.jar了
url中也不需要?gwt.codesvr=172.20.66.140:9997这样的参数了
4、打开tomcat访问相应html可能什么都出不来,或者访问数据库时出错,查看gwt编译时控制台输出,是不是跟web.xml中配的

Servlet mapping是不是对应,
比如
Linking into D:\spring\workspace\fusionchart\war\olap.
Link succeeded
Compilation succeeded -- 92.640s
我的web.xml原来是
<servlet-mapping>
<servlet-name>olap</servlet-name>
<url-pattern>/com.capinfo.cdss.gwt.olap.Olap/olap</url-pattern>
</servlet-mapping>
要改成
<servlet-mapping>
<servlet-name>olap</servlet-name>
<url-pattern>/olap/olap</url-pattern>
</servlet-mapping>
相应html中原来是
<script type="text/javascript" language="javascript" src="com.capinfo.cdss.gwt.olap.Olap/com.capinfo.cdss.gwt.olap.Olap.nocache.js"></script>
改成
<script type="text/javascript" language="javascript" src="olap/olap.nocache.js"></script>
还没闹清楚为什么会这样
跟eclipse自动编译有关?高人告知啊
posted @ 2010-03-03 21:43 猪 阅读(673) | 评论 (1)编辑 收藏
ext-gwt 设置日期格式

DateField date = new DateField();
date.setPropertyEditor(new DateTimePropertyEditor("yyyy-MM-dd"));
posted @ 2010-03-03 21:43 猪 阅读(570) | 评论 (0)编辑 收藏
如果要去掉此提示,打开SQL 2008 在最上面 工具-〉选项-〉左侧有个 设计器-〉表设计器和数据库设计器 -> 阻止保存要求重新创建表的更改(右侧) 把钩去即可

参考:http://www.cnblogs.com/ajayumi/archive/2009/04/08/1431429.html
posted @ 2010-03-03 21:42 猪 阅读(735) | 评论 (0)编辑 收藏
连接Sql Azure
微软早就公布Sql Azure可以使用了,今天切身体验了一下,方法看下面链接
http://blogs.msdn.com/sqlcrd/archive/2009/12/28/sql-azure.aspx

测试asp.net连接时,启动项目报错:
Windows Azure Tools: Failed to initialize the Development Storage service. Unable to start Development Storage.

Failed to start Development Storage: the SQL Server instance ‘localhost\SQLExpress’ could not be found.   Please configure the SQL Server instance for Development Storage using the ‘DSInit’ utility in the Windows Azure SDK.
解决方法:
go to the "Windows Azure SDK Command Prompt"
执行:
DSInit /sqlInstance:. /forceCreate

再次重新启动,惊喜,报一堆这样的错误:

命名空间“http://schemas.microsoft.com/developer/msbuild/2003”中的“PropertyGroup”。 的子元素
命名空间“http://schemas.microsoft.com/developer/msbuild/2003”中的“ServiceHostingSDKInstallDir”。
无效。应为可能元素的列表: 命名空间“http://schemas.microsoft.com/developer/msbuild/2003”中的“Property”。。   

C:\Program Files\MSBuild\Microsoft\Cloud Service\v1.0\Microsoft.CloudService.targets    9    6    杂项文件

闹了半天是因为刚才
开着"Windows Azure SDK Command Prompt"
关了就OK了
posted @ 2010-03-03 21:42 猪 阅读(342) | 评论 (0)编辑 收藏
今天上班发现访问公司局域网里的计算机共享不好使了,输入正确的用户名密码,也提示不正确,差点就还原系统了,最后Google到了方法: WIN7电脑上开始 search 输入sec , 打开local security policy, 找到security settings\local policies\Network Security: LAN Manager authentication level, the default vaule 是 not defined. 改为"Send NTLM response only"后即可. 参考:http://bbs.pcbeta.com/thread-511161-1-1.html
posted @ 2010-03-03 21:41 猪 阅读(1716) | 评论 (0)编辑 收藏
http://www.infzm.com/content/39708 一直比较喜欢南方周末,不像一些报纸媒体报喜不报忧,想南方为追求事实真相的记者致敬!!! 另发句牢骚:对北京的除雪工作甚是不满,要政府干啥吃的
posted @ 2010-01-08 11:32 猪 阅读(229) | 评论 (0)编辑 收藏
余年已七十有余,一朝怛化,揆诸生寄 死归之理,一切无所 萦怀,惟我瞻四方,蹙国万里,民穷财尽,实所痛心,生平不喜多言,往日曲突徒薪之谋,国人或不尽省记,今则本识途之验,为将死之鸣,愿我国人静听而力行 焉!则余生虽死犹生,九原瞑目矣。国虽微弱,必有复兴直道,亦至简单。 勿因我见而轻起政争,勿尚空谈而不顾实践,勿兴不急之务而浪用民财,勿信过激言行之说而自摇邦本。讲外交者,勿忘巩固国防;司教育者,勿忘 保存国粹;治家者,勿弃国有之礼教;求学者,勿鹜时尚之纷华。 本此八勿,以应万有,所谓自力更生者在此,转弱为强者亦在此矣。余生平不事生产,后人宜体我乐道安贫之意,丧葬力崇节简,殓以居士服,毋以荤腥馈祭。
好一个 勿兴不急之务而浪用民财

引自:时寒冰 -- 腾讯博客 http://shihanbing.qzone.qq.com
posted @ 2010-01-08 11:31 猪 阅读(236) | 评论 (0)编辑 收藏

java.lang.InstantiationException

在Struts creating form bean的时候遇到这个异常

在form bean 中加一个无参的构造函数就Ok了

posted @ 2009-12-29 12:19 猪 阅读(616) | 评论 (0)编辑 收藏

惊闻诸如赶集网\263这类网站上的租房信息都被中介代理买断了,只有他们能看到,天理何在阿
在这发一个,气死我了

自己的房子出租

房屋信息:出租西三旗桥东南角常秀家园南北通透三居住房一套,面积80平米,6层的6层。三室为正规三室无隔断,主卧朝阳20平左右,有阳台,2次卧朝北面积10平左右。
房屋装修为中装,新刷白墙,房间整洁干净,设施齐全。天然气入户,电热水器,上网方便。
房屋周边信息:小区周边交通设施方便,有二十几趟公交车,下楼小区门口就有运通103、运通109、运通118三趟公交始发。
离小区步行5分钟的公交站有919、307、315、345、379、393、398、407、618、625、670、629、753、810、819、运通117等N趟四通八达
的公交车,其中的919大站快车,919区间等八达岭高速的直达车,在上班高峰时间直达三环马甸只需不到半小时时间。919大站
快车一站直达起家豁子(换乘10号线地铁)3站德胜门站(换乘地铁2号线)。小区离13号线城铁龙泽站仅2站地公交。周边商业圈发达并正在迅速崛起中,购物及吃饭都很方便
,京客隆、超市发、肯德基、烤鸭店、老家肉饼、苏宁电器、购物中心、24小时药店……环绕周边应有尽有。
出租条件:房屋觅有正当职业,无不良嗜好的有为青年出租,希望生活习惯良好,收入稳定,长期出租,可整租也可单租,全天看房。中介勿扰,谢谢~
联系方式:13810428318 QQ 122088025

做编程的劳苦兄弟优惠


这有图
http://beijing.koubei.com/fang/detail-rent-r38c4e1aede9546588a7150079255ec2d.html
posted @ 2009-12-02 14:15 猪 阅读(201) | 评论 (0)编辑 收藏

request.getInputStream() 和 request.getReader()不能同时调用,否则会引发java.lang.IllegalStateException异常。

API中有写:

getInputStream

public ServletInputStream getInputStream()
throws java.io.IOException
Retrieves the body of the request as binary data using a ServletInputStream. Either this method or getReader() may be called to read the body, not both.
Returns:
a ServletInputStream object containing the body of the request
Throws:
java.lang.IllegalStateException - if the getReader() method has already been called for this request
java.io.IOException - if an input or output exception occurred
posted @ 2009-10-19 13:48 猪 阅读(3041) | 评论 (0)编辑 收藏

eclipse中如果选中一个变量,则在本源文件中高亮显示相同的变量

Window->Preferences,在type filter text 中输入Mark Occurrences

在Java-Editor-Mark Occurrences中将Mark occurrences of the selected element in the current file.选中OK即可

posted @ 2009-10-17 20:41 猪 阅读(1333) | 评论 (0)编辑 收藏
下午头儿出去了,这周一口气粘帖复制了14个Action20个jsp,没什么技术含量,完全是粘帖复制,我在等待什么?
posted @ 2009-10-17 20:40 猪 阅读(195) | 评论 (0)编辑 收藏

工作快三年了,一直没有用到spring,做的几个项目全部基于struts+hibernate,昨天忙完手头的活儿,自己建了个struts+spring+hibernate的demo,能用MyEclipse自动生成的全部自动生成,表映射、pojo、SessionFactory、applicationContext.xml、struts-config.xml都自动生成了,弄了两个jsp,一个add,一个view

运行发现,spring未被加载,原因找来找去找不到,最后还是看了以前写的一篇blog,可能存在重复jar包,有冲突,确实发现Myeclipse自动键入的jar包好多好多,而且有的有重复,捣鼓出以前做的例子,复制lib里面的jar包,果然OK了,实现了增查。

spring确实是个好东西,强大、强大。

Google SSH整合的例子,发现都是Struts2SpringHibernate了,俺还struts1呢,out了

posted @ 2009-10-17 20:39 猪 阅读(304) | 评论 (0)编辑 收藏

公告

希望有一天

我能用鼠标双击我的钱包

然后选中一张100元

按住“ctrl+c”

接着不停的“ctrl+v”

嘻嘻~~~笑醒~~~



导航

<2009年10月>
27282930123
45678910
11121314151617
18192021222324
25262728293031
1234567

统计

常用链接

留言簿(6)

随笔分类(102)

随笔档案(398)

文章分类

文章档案(10)

有趣网络

搜索

积分与排名

最新评论

阅读排行榜

评论排行榜