scourgen

13十二/090

解决ofbiz在MAC下出现Keystore密码错误的问题

报错信息:

2009-12-13 13:55:01,489 (main) [            SSLImpl.java:63 :ERROR]
---- exception report ----------------------------------------------------------
Exception: java.io.IOException
Message: Keystore was tampered with, or password was incorrect
---- cause ---------------------------------------------------------------------
Exception: java.security.UnrecoverableKeyException
Message: Password verification failed
---- stack trace ---------------------------------------------------------------
java.security.UnrecoverableKeyException: Password verification failed
sun.security.provider.JavaKeyStore.engineLoad(JavaKeyStore.java:769)
sun.security.provider.JavaKeyStore$JKS.engineLoad(JavaKeyStore.java:38)
java.security.KeyStore.load(KeyStore.java:1185)
org.ofbiz.base.util.KeyStoreUtil.getSystemTrustStore(KeyStoreUtil.java:110)
org.ofbiz.base.util.SSLUtil.getTrustManagers(SSLUtil.java:106)
org.ofbiz.catalina.container.SSLImpl$AllowTrustManager.<init>(SSLImpl.java:61)
org.ofbiz.catalina.container.SSLImpl.<init>(SSLImpl.java:46)
sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
java.lang.reflect.Constructor.newInstance(Constructor.java:513)
java.lang.Class.newInstance0(Class.java:355)
java.lang.Class.newInstance(Class.java:308)
org.apache.tomcat.util.net.SSLImplementation.getInstance(SSLImplementation.java:75)
org.apache.coyote.http11.Http11Protocol.init(Http11Protocol.java:152)
org.apache.catalina.connector.Connector.initialize(Connector.java:1058)
org.apache.catalina.core.StandardService.initialize(StandardService.java:677)
org.ofbiz.catalina.container.CatalinaContainer.init(CatalinaContainer.java:218)
org.ofbiz.base.container.ContainerLoader.loadContainer(ContainerLoader.java:188)
org.ofbiz.base.container.ContainerLoader.load(ContainerLoader.java:65)
org.ofbiz.base.start.Start.initStartLoaders(Start.java:259)
org.ofbiz.base.start.Start.init(Start.java:96)
org.ofbiz.base.start.Start.main(Start.java:410)
--------------------------------------------------------------------------------

其实是因为在mac下,java 1.6的cacerts默认密码从以前的"changeit"变成了"changeme"

可以用如下办法恢复密码:

cd  #cd ~
#keytool -importkeystore -srckeystore /System/Library/Frameworks/JavaVM.framework/Versions/A/Resources/Deploy.bundle/Contents/Home/lib/security/cacerts -destkeystore newcacerts
Enter destination keystore password: changeit
Re-enter new password: changeit
Enter source keystore password:              #直接回车,留空
#sudo mv newcacerts /System/Library/Frameworks/JavaVM.framework/Versions/A/Resources/Deploy.bundle/Contents/Home/lib/security
#sudo mv cacerts oldcacerts
#sudo mv newcacerts cacerts

就ok啦

分类: Java 没有评论
3十二/090

一个改进网上花店的构思

我有几个朋友经常在网上买花送人,一为方面,二为价格便宜,在网上多逛逛总能找到中意的花店.可是多半花店最终送的花却和照片效果千差万别.

而现在网上花店大概分两种,

  1. 独立的网上商店,使用ecshop或shopx之类的开店软件,花被当成了普通商品一样进行出售.
  2. 在B2C网站上开店,例如淘宝和易趣.

而一般网上送花的流程如下:

  1. 在网站上按照图片选花(用户A:)
  2. 付费(用户A)
  3. 约定送花时间和收花人(用户A,网站)
  4. 到约定日期,包装花朵,送花(网站)
  5. 签收(用户B)
  6. 对商品进行评价(用户A,用户B)

花并不是纯粹意义上的商品,花代表了一种感情.如果在买花的过程中发生质量问题,将会非常大的影响到用户体验.试想一下如果送花给情人或老婆,花了大价钱最终她却得到的是几朵快要凋谢的玫瑰,可能两人感情都会受此印象而降低几分.

而目前这样的商业流程其实有2个问题,那就是

  1. 用户在选购的时候有一定的盲目性,只能按照图片的样子,或是销量,或是价格来选花.
  2. 花不像一般商品通过流水线制造出来,有一定的保修期,即使坏了或质量不满意可以退换.花在递送给收货人后,也就是消费过程结束后,买家才能得到产品质量的反馈,而在此之前,没有人能够保证花的质量,用户在选购花的时候也没有办法知道将要送的花会是什么样子的.

如果店家能够将每次成功交易并要送的花在送之前拍照,并上传到网站上,同时写上买花人和送花人的关系,送花致词等等信息作为其他用户选购的参考,则可以很简单的解决这个问题.

如果有了这个功能,其他买家就可以通过送花记录查看花以前被送的样子,通过各种买花人与送花人的关系,致词作为参考来挑选自己喜欢的花,各位花痴也能够从送花记录了解到哪些花适合用来送给那类人,把玫瑰送给老师的故事就再也不会发生了.

而如果对这个功能稍加改进,则可以将其做成一个web2.0风格的留言系统,买花人可以在这个页面上留下自己的文字,想说的话,甚至视频,而收花人收到花后通过特定的网址进入网站,可以一边捧着花一边享受这感人的时刻.这时花才真正完成了他的使命.

分类: Idea 没有评论
3十二/090

什么是ViViPOS

ViViPOS是一个价格低但功能强大的POS收银机.

ViViPOS的目标市场是中低端价格,但是功能强大的收银机.它的中低端价格体现在:将条码打印机,收银软件,收银硬件(主机),钱箱这收银四大件作为一体化解决方案打包出售,免费的收银软件和一体化的嵌入式硬件设计将它的成本控制在了较低的水平.
而较低的成本在ViViPOS上却不代表功能的缺乏,ViViPOS以Ubuntu作为操作平台,使用XULRunner作为应用程序开发平台,使用SQLite数据库,配合ViViPOS上的专有开发SDK,在达到完全面License费用的同时,提供了强大的应用程序开发和扩展能力.
ViViPOS主要特色

ViViPOS是一个智能终端

ViViPOS并不是单一的收银软件,在现有的ViViPOS扩展中,不但包含各种扩展插件,例如跑马灯公告,网络设置,打印发票模板,虚拟键盘等等,在外部扩展上更已经可以支持CakePHP,WebService.

  • 通过CakePHP强大的Scaffolding脚手架功能,使得通过远程维护ViViPOS数据库变为可能,老板们可以在家中修改ViViPOS的商品价格,或统计销售信息.
  • 通过WebService接口,使得多台ViViPOS"协同作战"变为可能,例如可以在开机后自动访问总部的WebService进行数据下载,又例如A机打印纸用完后,自动通过WebService将需要打印的内容传输给离他最近的一台ViViPOS上的打印机进行打印,并提醒售货员

ViViPOS界面

ViViPOS给予XULRunner平台

什么是XULRunner? XULRunner是一种跨平台的应用开发程序框架,它使用JavaScript作为开发语言,XUL或HTML加上CSS作为构建UI的工具,使得Web开发人员运用现有的技术,快速构建功能强大的应用程序变为可能,著名的Firefox浏览器便是构建在这一平台上的.
Screen shot 2009-11-30 at 上午01.50.47

ViViPOS使用Javascript作为开发语言

可以毫不留情地说,JavaScript是Web2.0时代程序员的必会语言,没有之一.几乎每一个程序员或多或少都会对JavaScript有着丰富的认识,而使用JavaScript作为主要编程语言,使得ViViPOS的学习难度变得很低,可以说只要会进行网页编程的程序员,经过几天的培训后都能轻而易举的写出ViViPOS的扩展程序.
Screen shot 2009-12-03 at 下午09.05.10

ViViPOS的扩展性

既然ViViPOS和Firefox都是同宗同源,那么起强大的扩展能力是无庸置疑的.ViViPOS使用与Firefox完全一样的插件安装系统,使得企业在使用插件提供的功能时能享受到自动升级,自动兼容,自动整合的优势.
Screen shot 2009-12-03 at 下午09.02.42