解决Office 2007每次启动都要运行配置的问题

分类:Software | 作者:Shoopman | 发表于2010/07/15 没有评论  

像以往一样,用着之前的OFFICE_2007_SP2.isz来安装Office 2007 SP2,可这次安装后却不正常了:每次启动Word或Excel,都要运行Office的配置程序,一配置就是好几分钟,之后还要提示重新启动系统。虽然取消配置也可以正常使用,但每次都弹出那个配置窗口令我相当不爽。Google之,有如下答案,照做,成功了,不过依然不解原因。

打开“我的电脑” -> “C盘” -> “Program Files\Common Files\Microsoft Shared\OFFICE12\Office Setup Controller”——找到一个“SETUP.EXE”的文件,对此文件重命名,改成别的什么都行。

Tag:

删除Windows7桌面淘宝导航taobao.3608.com的图标

分类:Software | 作者:Shoopman | 发表于2010/07/15 没有评论  

安装了一个盗版的Windows7旗舰版,但桌面有一个淘宝导航的图标,指向taobao.3608.com,居然无法直接删除,Google之也未果,于是运行regedit在注册表里搜索“taobao.3608.com”,还真有结果:

tb

于是把这个键“HKEY_CLASSES_ROOT\CLSID\{00000100-1234-0010-8000-00AA006D2EA4}”删除,重启后,桌面的淘宝图标变成了一个白图标,可以直接删除了。

Tag:

eWebEditor不支持IE8/IE7的解决方法

分类:Tech | 作者:Shoopman | 发表于2009/10/12 5条评论 

在修改一个项目的老缺陷,使用了eWebEditor,没看出是哪个版本,但是在点击编辑器按钮时就报错:缺少对象,editor.js,行171。

editor.js中171行的代码是

 if (element.YUSERONCLICK) {
  eval(element.YUSERONCLICK + “anonymous()”);
 }
 

在网上搜索了一下,最简单的办法是将上面的代码替换为下面的,暂时没发现不良影响。

 if(navigator.appVersion.match(/MSIE (7|8)\./i)!=null){
     if (element.YUSERONCLICK) eval(element.YUSERONCLICK + “onclick(event)”); 
 }else{
     if (element.YUSERONCLICK) eval(element.YUSERONCLICK + “anonymous()”);
 }

为XFire生成的WebService客户端设置连接超时参数

分类:Tech | 作者:Shoopman | 发表于2009/09/09 2条评论 

由于要从另一个系统的WebService读取大量的数据,因此要修改连接WebService的超时参数。WebService的客户端代码是通过XFire的Ant任务生成的。Google一下,没找到答案,但最后还是在XFire官方找到了答案。

假设生成的客户端代码中的服务接口和Client的类分别为TestService和TestServiceClient,修改连接超时参数代码如下:

//创建Service对象
 
TestServiceClient testClient = new TestServiceClient();

TestService testService = testClient.getTestServicePort();

//设置连接参数
 
HttpClientParams params = new HttpClientParams();

params.setParameter(HttpClientParams.USE_EXPECT_CONTINUE, Boolean.FALSE);

params.setParameter(HttpClientParams.CONNECTION_MANAGER_TIMEOUT, setting.getTimeout() * 1000);//单位是毫秒

Client client = Client.getInstance(testService);

client.setProperty(CommonsHttpMessageSender.HTTP_CLIENT_PARAMS, params);

XFire是基于ApacheHttpClient,所以实际上连接超时的参数是就是设置在HttpClient上的。

通过ODBC连接MySql

分类:Tech | 作者:Shoopman | 发表于2009/08/27 没有评论  

由于需要共享EA项目,而暂时发现EA仅支持ODBC连接数据库,所以要解决通过ODBC连接MySql的问题了。

Windows默认是没有MySql的ODBC驱动的,首先要下载ODBC驱动。Google到MySql官网上有,但是需要注册,继续Google到一个下载镜像:http://mirror.cogentco.com/pub/mysql/Connector-ODBC/5.1/,选择了Windows x64的MSI版本下载,因为我的系统是Windows7 x64。下载下来才发现,x64的版本里还包含了x32的。

安装驱动后,在ODBC数据源管理里的“用户DNS”或“系统DNS”点击“Add”按钮,就可以看到了:
 

选中“MySql DOBC 5.1 Driver”,点击“Finish”,就可以添加一个MySql数据源了:
 

填完各输入框点“OK”,在列表里就可以看到刚才添加的数据源了:
 

 

Tag:

只谈技术,莫谈国是?

分类:Internet, Tech | 作者:Shoopman | 发表于2009/08/24 没有评论  

JavaEye发布的信息:http://www.javaeye.com/news/9991-protect-javaeye

今天下午JavaEye网站被和谐了,原因是多次出现“有害”信息!如果再次出现“有害”信息,我们可能会被和谐很长时间。
在这个特殊的时期,为了保护JavaEye网站还能够继续“存在”下去,为了大家还能有一个高质量的交流场所,我们呼吁每个JavaEye会员:
1、只谈技术,莫谈国是!
2、凡是发现涉及社会敏感事件的热点话题,政治话题,军事话题,请立刻在JavaEye站务论坛向我们举报!
3、请自律自己的行为,只要我们发现任何人发布任何政治话题和敏感事件的文章,帖子,博客,评论,甚至闲聊,统统直接删除用户ID和用户所有JavaEye资料,不给任何通知和解释。

能怪JavaEye不?

不能!

该怪JavaEye不?

该!

无语……

Tag:

把MyEclipse项目转为WTP项目

分类:Tech | 作者:Shoopman | 发表于2009/08/20 没有评论  

马上要进入另一个项目组了,新项目所用的IDE是MyEclipse。我已不习惯了庞大的MyEclipse,而习惯了WTP并且想试验一下新的Eclipse3.5,因此需要把MyEclipse项目转换为WTP项目。(PS:不遵守团队开发规范是不正确的行为!)

1.在Eclipse里导入MyEclipse项目到工作空间。

2.编辑.project文件,在<natures></natures>中加入

              <nature>org.eclipse.wst.common.project.facet.core.nature</nature>
              <nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
              <nature>org.eclipse.jem.workbench.JavaEMFNature</nature>

在<buildSpec></buildSpec>节点加入

              <buildCommand>
                     <name>org.eclipse.wst.common.project.facet.core.builder</name>
                     <arguments>
                     </arguments>
              </buildCommand>
              <buildCommand>
                     <name>org.eclipse.wst.validation.validationbuilder</name>
                     <arguments>
                     </arguments>
              </buildCommand>

3.在Eclipse中刷新项目。

4.右击项目–>Properties—>Project Facets,在右边勾选Java与Dynamic Web Module,应用。

5.如果你的项目源代码文件夹不是WTP默认的src,则需要到Java Build Path中去添加相应源代码文件夹。

6.如果你的项目Web文件夹不是WTP默认的WebContent,则需要文件文件 <项目目录>/.settings/org.eclipse.wst.common.component,找到

<wb-resource deploy-path="/" source-path="/WebContent"/>

并修改,如

<wb-resource deploy-path="/" source-path="/webapp"/>

当BeanUtils的拷贝遇上java.util.Date

分类:Tech | 作者:Shoopman | 发表于2009/08/16 没有评论  

BeanUtilsapache基金会下的一个开源项目,主要用于对Java Bean的操作。在一个项目中,经常要用到Bean属性拷贝,使用了org.apache.commons.beanutils.BeanUtils.copyProperties(dest, orgi)。由于此方法声明了抛出异常,在项目中为了方便,便对此作了简单封装,把异常处理了:

public static void copy(Object dest, Object orgi) {
    try {
        BeanUtils.copyProperties(dest, orgi);
    } catch (Exception e) {
        log.error("Bean属性拷贝出错。", e);
    }
}

后来却发现,当源对象orgi中某个java.util.Date类型的属性为null时,copy会失败(虽然异常被处理了),目标对象dest中部分非Date类型的属性也为空,虽然源对象中这些属性是有值。原因就是上BeanUtils在处理属性值为null的Date类型时出错了,便抛出了异常,后面的属性便不会再复制。

后来在JavaEye搜到了答案:为BeanUtils注册一个日期类型转换器:使用org.apache.commons.beanutils.ConvertUtils,注册org.apache.commons.beanutils.converters.DateConverter。下面的代码是放在copy方法所在的类:

static{
    ConvertUtils.register(new DateConverter(), Date.class);
}

Tag:

基于注解与自动扫描的某些实体没被映射的原因之一

分类:Tech | 作者:Shoopman | 发表于2009/07/16 2条评论 

    在尝试修改基于SpringSide 3.1.3的mini-web过程中,又遇到了一个奇怪的问题。一个hql如下:

StringBuilder hql = new StringBuilder();
hql.append("SELECT new ");
hql.append(CommentBean.class.getName());
hql.append(" (o,u.name,u.image) ");
hql.append(" FROM ");
hql.append(Comment.class.getSimpleName()).append(" o, ");
hql.append(User.class.getSimpleName()).append(" u ");
hql.append(" WHERE o.userId=u.id AND o.infoId=? ");
hql.append(" ORDER BY o.commentTime DESC");

Comment这个实体类的全限定名是:org.shoopman.entity.Comment

但在运行时却报错:

Comment is not mapped [SELECT new org.shoopman.service.dto.CommentBean (o,u.name,u.image)  FROM Comment o, org.shoopman.entity.user.User u  WHERE o.userId=u.id AND o.infoId=?  ORDER BY o.commentTime DESC]
org.hibernate.hql.ast.QuerySyntaxException: Comment is not mapped [SELECT new org.shoopman.service.dto.CommentBean (o,u.name,u.image)  FROM Comment o, org.shoopman.entity.user.User u  WHERE o.userId=u.id AND o.infoId=?  ORDER BY o.commentTime DESC]
        at org.hibernate.hql.ast.util.SessionFactoryHelper.requireClassPersister(SessionFactoryHelper.java:181)
        at org.hibernate.hql.ast.tree.FromElementFactory.addFromElement(FromElementFactory.java:110)
        at org.hibernate.hql.ast.tree.FromClause.addFromElement(FromClause.java:93)
        at org.hibernate.hql.ast.HqlSqlWalker.createFromElement(HqlSqlWalker.java:277)

 

而其他实体的查询却没有问题。先看一下spring的applicationContext.xml关于Hibernate的配置:

<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
    <property name="dataSource" ref="dataSource" />
    <property name="namingStrategy">
        <bean class="org.hibernate.cfg.ImprovedNamingStrategy" />
    </property>
    <property name="hibernateProperties">
        <props>
            <prop key="hibernate.dialect">${hibernate.dialect}</prop>
            <prop key="hibernate.show_sql">${hibernate.show_sql}</prop>
            <prop key="hibernate.format_sql">${hibernate.format_sql}</prop>
            <prop key="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider
            </prop>
            <prop key="hibernate.cache.provider_configuration_file_resource_path">${hibernate.ehcache_config_file}</prop>
        </props>
    </property>
    <property name="packagesToScan" value="org.shoopman.entity.*" />
</bean>

    问题就在这个自动描述packagesToScan的配置上。如上的配置,Spring只会扫描到org.shoopman.entity这个包下的子包里的实体类,而直接放在这个包下的实体却没有描述。

    无奈,只好在新建一个org.shoopman.entity.common包,把Comment移到此包下。到此,问题解决。

 

    题外话:看上面的hql生成过程,在使用User这个实体类时,我用的是User.class.getSimpleName(),为什么Hibernate在生成hql却是全限定名。当把Comment移到common包下,控制台里打印出来的hql又是SimpleName。这是Hibernate的一个容错处理吗?

Tag:

GFW又K了一个ghs的IP?

分类:Internet | 作者:Shoopman | 发表于2009/07/16 没有评论  

    下午还能通过blog.shoopman.org来访问我的博客,刚才通过Windows Live Write来发表文章,却不成功。现在只能通过shoopmanlog.appspot.com来访问了。看一下友情连接里的GAE伙伴们,徐明的挂了,Keengle的也挂了,Qing的还没有。这样还好,不用费那么多事去找新的ghs IP了。

    5月26日左右,ghs挂了一个IP;6月15日左右,又挂了一个;今天,7月16日,再一个。看来,在GFW的驱动下,广大中国的GAE Blogger们都要习惯每月一次的修改域名A记录或者类似的事情了。

    已在GoDaddy修改了域名的A记录,看多久后才能生效吧。现在,只有等待并且忍受,等哪天实在忍受不了了,就去给美国增加一点儿GDP吧。

Tag: