背景:eclipse中的java web project。使用了hibernate。

问题:在提交表单页面中输入中文汉字,存入数据库时变成了问号,比如输入“osgi管理层”,在取出显示为“osgi??”。

解决步骤:

1 将数据库当前表的编码和页面传值编码改为一致。如jsp页面是contentType="text/html; charset=UTF-8"  ,mysql中相关表是utf8_general_ci。如果还是不行,用第二种方式

2 在hibernate.cfg.xml(或修改相应properties文件),有以下2种途径,其中途径b较为推荐

a.为hibernate.connection.url属性添加characterEncoding参数,如"jdbc:mysql://localhost:3306/yhcmusic?useUnicode=true&characterEncoding=UTF-8" 

b.或者加入以下类似代码: Read the rest of this entry »

felix现在都有3.01的版本了,1.4实在太落后了,尤其是1.4不支持处理fragment bundle,这让我今天吃了个大鳖。但是我非常想用struts-osgi-plugin,以及一个struts-admin-bundle-2.1.8.1的官方示例bundle。但struts官网上这么说:

This plugin is only experimental and can change in the future.

刚开始我没看清,用得真起劲,遇到了一个bug:

类似下面这个小片段,实际上是好多好多。。。

Auto-properties start: org.osgi.framework.BundleException: Could not create bundle object.

ERROR: Error starting file:/F:/works2/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/wsnAdminWebapp/WEB-INF/classes/bundles/2/com.springsource.slf4j.api-1.5.6.jar (org.osgi.framework.BundleException: Unresolved constraint in bundle 5: package; (&(package=org.slf4j.impl)(version>=1.5.6)(!(version>=2.0.0))))

org.osgi.framework.BundleException: Unresolved constraint in bundle 5: package; (&(package=org.slf4j.impl)(version>=1.5.6)(!(version>=2.0.0)))

at org.apache.felix.framework.Felix._resolveBundle(Felix.java:1792)

at org.apache.felix.framework.Felix._startBundle(Felix.java:1652)

at org.apache.felix.framework.Felix.startBundle(Felix.java:1588)

at org.apache.felix.framework.Felix.setFrameworkStartLevel(Felix.java:1180)

at org.apache.felix.framework.StartLevelImpl.run(StartLevelImpl.java:265)

at java.lang.Thread.run(Thread.java:619)

这令我郁闷了一个下午(青春就是这么挥霍的)。我本以为是spring dm依赖的org.apache.commons.logging包没有,正如《OSGI中启动spring dm加载的commons-logging问题》中所述,但不管我我怎么调整lib下的jar包,都没找到原因。 Read the rest of this entry »

eclipse突然卡了起来,这是一件非常诡异的事情。

前几天我用自己手提写代码,发现eclipse越来越卡,只要一展开dynamic web project(点击项目图标前的加号),就会卡得“未响应”。未响应也就罢了,有时候直接关闭。我当时认为是自己的本本实在太慢了,于是换成实验室的台式机,但居然更卡。

我折腾了2天,做出以下尝试:

  1. 刚开始认为是原来本本上用惯的多插件3.5版本的eclipse出了问题,换了新下载的3.4,3.5,3.6版本,均无效
  2. 修改eclipse.ini多次,均无效
  3. 取消eclipse中文本编辑器对dtd的验证,无效
  4. 重装jdk,将6u21退到6u18,无效
  5. 重装tomcat,分别试了win32的Installer安装版,zip版,版本上试了6.0.24,6.0.29.7.0.0,均无效
  6. 想重装台式机的操作系统,但没光驱,未遂

于是只好放弃台式机,用本本拉到,谁知本本上的eclipse也卡得要死,还不如用台式机。

最后我懂了:运行eclipse,卡是必须的,出现“未响应”的时候,上一会儿网耐心等几分钟即可