前两天帮5iditu.com升级了一下,升级到最新版本了。他的主机是windows了。基本上没有太大的问题,不过lucene的索引问题搞不定,很是诡异,不知道为什么。不知道虚拟主机是如何配置的,今天又有一个网友问到如何升级,这都怪我没有在1.5发行版本里面加上升级的tutorial。
这里说一下如何升级,首先请备份1.0的所有文件,然就用1.5版本的文件替换原来的,建议先删除原来的文件,如果没有删除请记得覆盖之后删除lib文件下的freemarker2.3.3.jar,1.5版本升级了freemarker,如果不删除旧版可能会出现问题。
覆盖文件之后你需要将原来的siteConfig.xml覆盖回去,至于config.properties文件不要用原来的文件覆盖,请对照原来文件修改数据库连接,email配置。
然后启动服务器。服务器启动之后你会发现首页没有文章了。因为1.5版本修改了数据结构,添加了字段,你需要执行一下的sql语句。
mysql> update MYBLOG_ENTRY set entryStatus='publish';
mysql> update MYBLOG_ENTRY set type='post';
mysql> update MYBLOG_COMMENT set status='approved';
mysql> alter table MYBLOG_ENTRY drop draft;
这样就可以了,再reload一下,或者重启服务就ok了。这次你可以添加自己的页面了。它将会出现在你的菜单上。
ps: Myblog1.5下载 http://myblog.googlecode.com/files/myblog-1.5P1.war
Like others





Saturday, September 08, 2007, 01:25:54 AM (CST)
呵呵 莫多!真的很快哦~!
Thursday, September 13, 2007, 03:41:54 AM (CST)
好象没找到源码的下载地址~但我是从www.open-open.com过来的,怎么感觉不象个开源项目呢?
Thursday, September 13, 2007, 03:45:30 AM (CST)
这个blog确实是开源的。open-open上面也给出了地址的,这个是myblog作者的blog,也是myblog的演示站点。
项目地址是:http://code.google.com/p/myblog
Friday, September 14, 2007, 12:52:25 AM (CST)
您好,请教几个问题!
1·日志能够修改和删除吗?
2·有源代码吗?我买的虚拟主机jdk版本不一致,要重新编译
blog写的很不错,以后要向你多多学习!
非常感谢!!!laiqinyi@msn.com
Friday, September 14, 2007, 01:02:12 AM (CST)
1.日志可以修和删除。
2.有源代码的,http://myblog.googlecode.com/svn/branches/myblog-1.5/ 这个是1.5分支的代码。
Friday, September 14, 2007, 09:04:18 AM (CST)
有多用户版吗?这个好象只是个人的博客……
Friday, September 14, 2007, 09:05:37 AM (CST)
天...我的gmail收到一堆回复的spam...请把我之前的邮箱从邮件列表删除吧
Friday, September 14, 2007, 09:18:39 AM (CST)
是的。现在还只是个人blog,
刚才有人狂发spam。晕死了。
Saturday, September 15, 2007, 03:46:20 PM (CST)
呵呵,不错,不错,有时间在模板上也下些功夫,就更牛了。
Saturday, September 15, 2007, 03:59:10 PM (CST)
这里的回复都是自动收到右键的吧?用户没法选择吧。
Sunday, September 16, 2007, 06:17:38 AM (CST)
有没有做成war包啊?想要自己的电脑上看一下效果。
Sunday, September 16, 2007, 06:25:18 AM (CST)
是的回复都是自动收到邮件的,设计的时候加了个是否订阅的字段,不过还没有实现.
to:kevinwu,你下载的就是war包.
Tuesday, September 18, 2007, 08:19:06 AM (CST)
请问一下你这个blog是基于appfuse的基础上开发的吗?
Tuesday, September 18, 2007, 08:20:33 AM (CST)
此blog是基于appfuse上开发的吗?
Tuesday, September 18, 2007, 09:17:59 AM (CST)
不是的。只是后台用的是appfuse里面的theme。
Wednesday, September 19, 2007, 12:48:02 AM (CST)
提一点小小的建议,可以不可以把这个就用myeclipse中的j2ee工程,不要用ant可能会更方便一些,跟ide结合的更好一些,现在的项目反正也不能用到其他的ide还不如刚脆用单纯的就可以了,另外blog的话少了流量这些统计总是不行吧
另外我在这里留言的时候好像也没有什么提示,有没有成功,在上面也看不到,好像存在延时的问题,是不是留言还要审核 ?
Wednesday, September 19, 2007, 01:01:49 AM (CST)
另外lucence的搜索分词还是不够
Wednesday, September 19, 2007, 01:12:36 AM (CST)
To jackdraw:
我们没有myeclipse的授权。
To jackdraw:
加上中文分词插件就好了。
Wednesday, September 19, 2007, 01:14:37 AM (CST)
这页评论的排序怎么回事?有2个一直占据最后。
Wednesday, September 19, 2007, 01:41:30 AM (CST)
to:jackdraw 你的留言已经显示了。一个小blog,我想还是不要用myeclipse这种牛刀。如果你check代码的话,什么插件都不需要的,只要运行test/java/com/jckcn/tomcat下的MyblogTomcatLauncher就启动内置的tomcat了,根本用不着发布。debug也非常的方便。用ant是为了发布的时候方便打包用的,还有就是ant来native2ascii中文。
你的留言已经在上面显示了,只是最后有两条比较诡异的评论一直在下面。这个我要查一下为什么。
总之非常感谢你的建议。 :)
Wednesday, September 19, 2007, 01:46:04 AM (CST)
To jackdraw:
流量其实有统计的。不过没有做分析。
呵呵。先把基本的功能做好了再说。
如果你有什么好的想法,还请告诉我,谢谢 。
Wednesday, September 19, 2007, 01:54:10 AM (CST)
查到诡异的原因了。算是个bug吧。忘了加上order by
Tuesday, October 09, 2007, 04:11:40 AM (CST)
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
javax.servlet.ServletException: get(name) failed on instance of com.jdkcn.domain.Entry$$EnhancerByCGLIB$$b2ed5012
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:408)
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:347)
javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
com.jdkcn.web.filter.MessageFilter.doFilter(Unknown Source)
org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:130)
org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:107)
org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:78)
org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:383)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:71)
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:75)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
org.tuckey.web.filters.urlrewrite.NormalRewrittenUrl.doRewrite(NormalRewrittenUrl.java:183)
org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:125)
org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:107)
org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:78)
org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:383)
com.jdkcn.web.filter.GZIPFilter.doFilterInternal(Unknown Source)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:174)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
com.opensymphony.oscache.web.filter.CacheFilter.doFilter(CacheFilter.java:163)
root cause
freemarker.template.TemplateModelException: get(name) failed on instance of com.jdkcn.domain.Entry$$EnhancerByCGLIB$$b2ed5012
freemarker.ext.beans.BeanModel.get(BeanModel.java:223)
freemarker.core.Dot._getAsTemplateModel(Dot.java:76)
freemarker.core.Expression.getAsTemplateModel(Expression.java:89)
freemarker.core.BuiltIn$existsBI._getAsTemplateModel(BuiltIn.java:636)
freemarker.core.BuiltIn$existsBI.isTrue(BuiltIn.java:647)
freemarker.core.IfBlock.accept(IfBlock.java:80)
freemarker.core.Environment.visit(Environment.java:196)
freemarker.core.MixedContent.accept(MixedContent.java:92)
freemarker.core.Environment.visit(Environment.java:196)
freemarker.core.IteratorBlock$Context.runLoop(IteratorBlock.java:172)
freemarker.core.Environment.visit(Environment.java:351)
freemarker.core.IteratorBlock.accept(IteratorBlock.java:95)
freemarker.core.Environment.visit(Environment.java:196)
freemarker.core.ConditionalBlock.accept(ConditionalBlock.java:79)
freemarker.core.Environment.visit(Environment.java:196)
freemarker.core.MixedContent.accept(MixedContent.java:92)
freemarker.core.Environment.visit(Environment.java:196)
freemarker.core.Macro$Context.runMacro(Macro.java:164)
freemarker.core.Environment.visit(Environment.java:537)
freemarker.core.UnifiedCall.accept(UnifiedCall.java:128)
freemarker.core.Environment.visit(Environment.java:196)
freemarker.core.MixedContent.accept(MixedContent.java:92)
freemarker.core.Environment.visit(Environment.java:196)
freemarker.core.Environment.process(Environment.java:176)
freemarker.template.Template.process(Template.java:232)
org.springframework.web.servlet.view.freemarker.FreeMarkerView.processTemplate(FreeMarkerView.java:269)
org.springframework.web.servlet.view.freemarker.FreeMarkerView.doRender(FreeMarkerView.java:222)
org.springframework.web.servlet.view.freemarker.FreeMarkerView.renderMergedTemplateModel(FreeMarkerView.java:181)
org.springframework.web.servlet.view.AbstractTemplateView.renderMergedOutputModel(AbstractTemplateView.java:160)
org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:250)
org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:961)
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:738)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:658)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:392)
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:347)
javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
com.jdkcn.web.filter.MessageFilter.doFilter(Unknown Source)
org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:130)
org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:107)
org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:78)
org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:383)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:71)
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:75)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
org.tuckey.web.filters.urlrewrite.NormalRewrittenUrl.doRewrite(NormalRewrittenUrl.java:183)
org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:125)
org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:107)
org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:78)
org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:383)
com.jdkcn.web.filter.GZIPFilter.doFilterInternal(Unknown Source)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:174)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
com.opensymphony.oscache.web.filter.CacheFilter.doFilter(CacheFilter.java:163)
root cause
Tuesday, October 09, 2007, 04:14:05 AM (CST)
1.5或1.6版只要增、删文章以后,一旦重启tomcat就全出现上面的错误.!!! 用的mysql数据库.数据库已经连接成功.
Tuesday, October 09, 2007, 04:16:39 AM (CST)
每次重启都会出现这个错误么?
jdkcn.com也是用的tomcat.好像没有这个问题。
请给出你的jdk,tomcat,os版本。
Tuesday, October 09, 2007, 06:46:21 AM (CST)
jdk1.5.0 tomcat6.0 windows xp ,谢谢莫多.
Tuesday, October 09, 2007, 08:46:09 AM (CST)
是免费的吗?
Tuesday, October 09, 2007, 09:11:10 AM (CST)
to abear: 是免费的。
to daniel:你的情况是只要添加的新日志。第一次重启tomcat就会出这个错误么?还没有在tomcat6上试过。回去试试。
我的开发环境是 xubuntu7.04 + jdk1.5.0_11 + mysql5.0.38-Ubuntu_0ubuntu1-log+embeded tomcat5.5
Tuesday, October 09, 2007, 09:20:27 AM (CST)
如果不增加新日志,不删除日志,重启是不会出现这个错误,一旦有增删日志就会.我试过1.5和1.6版的都是如此.
Tuesday, October 09, 2007, 09:26:28 AM (CST)
就是像我上面说的。只要有添加删除。第一次重启tomcat就会出现这个错误。对吧?难道是 tomcat 的persistence session的问题么?
你试试,重启tomcat之后关掉IE,新开IE来浏览试试。
这样的话persistence的session 应该变掉了。
Tuesday, October 09, 2007, 11:21:56 AM (CST)
就是像我上面说的。只要有添加删除。第一次重启tomcat就会出现这个错误。对吧?
有添加删除就会出错,不仅是第一次会出现,每次都是这样,页面无法显示!!!
新开IE来浏览是不行的,错误还是一样.重启过电脑都不行. ... 不知道是怎么回事...
Tuesday, October 09, 2007, 01:24:33 PM (CST)
这个问题还真奇怪了。
我这里是没有这个错误的啊。在开发的时候有出现过这个错误,不过重启tomcat就好了。
我再我的winxp机器上试试。谢谢你
Wednesday, October 10, 2007, 12:59:37 AM (CST)
麻烦泡泡写一个到1.6升级的说明呗~
Wednesday, October 10, 2007, 08:22:19 AM (CST)
后台管理是正常的,就是前台打不开。我运行其它基于 spring struts1/2 hibernate的系统都正常的。应该与系统平台没关系的.
Saturday, October 20, 2007, 10:15:45 AM (CST)
研究myblog好几天,觉得莫多的工作非常出色,这个系统架够比较清晰,基本我需要的功能都有了.
昨天正式采用myblog 1.6 中秋节版搭建了我的blog:www.gmessage.cn 是专讲鬼故事的,胆小者慎进.
这里提几个1.6中秋节版的几个bug:
1.配好MYSQL数据库后,在管理页面,删除一开始安装时就有的日志出错,好象是外键约束.
2.对于中文的category和tag不支持.不出错,但是找不文章.
3.生成的文章的全文页面keyword标签,不应该是标题,而应该是tags比较好.
对于第二点,可能和中文URL有关,不过在jdkcn中,我发现也有中文的category,比如生活,却工作正常.不知道是什么原因,难道是1.6版本才有的bug?
对于category,我用创建英文名字,中文描述的category,并将模板文件中的表示的地方用category.description的方式解决了,tags怎么解决我还不知道.望莫多能考虑考虑这个问题
Wednesday, October 24, 2007, 12:20:59 PM (CST)
说一个问题,关于1.8版的
我昨天晚上下了最新的代码,在我的机器上编译跑了下,还挺顺利的,没什么问题,于是就想把新编译的文件都拷到服务器上去部署了.结果发现服务器上点登陆时,死活都报tomcat的404错误,
因为在本地是好的,我一直以为是我部署错了,少拷了文件什么的.结果检查来检查去都没问题
后来发现在本地不部署成http://localhost/myblog,换成和服务器一样的域名指向就会出错,即在tomcat的server.xml中,这样的部署都有问题:
<Host name="www.XXXX.cn" debug="0" appBase="C:\XXXX\myblog"
unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
<Context path="/" docBase="" debug="0" />
</Host >
经过调试和调查,发现是www.XXXX.com/admin/*.* 这样的路径有问题.
因为tomcat经过配置可以用http://hostname/admin/index.jsp进入tomcat的admin页面,所以以上的URL根本不会被tomcat转发到myblog的servlet中来,在测试中也发现在类UserLoginController设了断点根本跑不进来.如果有配置tomcat的管理.则会转到tomcat的管理登陆页面,否则则直接抛tomcat的404错误
在admin-servlet.xml中修改
<prop key="/admin/login.jspx">userLoginController</prop>
为
<prop key="/blogadmin/login.jspx">userLoginController</prop>
则可以顺利转到登陆页面
<prop key="/blogadmin/login.jspx">userLoginController</prop>
以上的信息,请莫多和其它开发人员确认一下
Wednesday, October 24, 2007, 02:58:36 PM (CST)
下面的连接可以看到上文提到的错误
http://www.gmessage.cn/admin/login.jspx
我也懒的恢复到之前的版本了,等着你们最新版出来吧.
Wednesday, October 24, 2007, 04:37:11 PM (CST)
谢谢你的支持。1.8改动比较多。所以还没有发布。不过也差不多可以发布了。
你的这个问题应该是你部署了 admin的原因。我没有部署admin是没有问题的。我想你可以把tomcat部署的admin程序部署到其他的context path目录下面。
这个是我的网站的tomcat配置。
<Host name="www.jdkcn.com" appBase="/usr/local/www/jdkcn.com/www/" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
<Alias>jdkcn.com</Alias>
<Context path="" docBase="/usr/local/www/jdkcn.com/www/">
</Context>
</Host>
Thursday, October 25, 2007, 02:03:11 PM (CST)
我也没有部署admin.
我的配置和你差不多
<Host name="www.gmessage.cn" debug="0" appBase="****\gmessagecn"
unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
<Alias>gmessage.cn</Alias>
<Context path="/" docBase="" debug="0" />
<Logger className="org.apache.catalina.logger.FileLogger" directory="logs" prefix="localhost_log." suffix=".txt" timestamp="true" />
</Host>
之前的版本我今天试了一下,不存在这个问题,看来不是我之前的推测的原因
但是最新版确实会弹tomcat的404白页面.莫多有空试试把1.8这样部署一下看看吧.
另外,我发现把1.8版下的web的admin目录改名,也不出错了
Friday, October 26, 2007, 03:03:23 PM (CST)
这个问题解决了。过几天就发布1.8
Tuesday, October 30, 2007, 05:11:06 AM (CST)
下来最新版跑不起来啊,抱下面的错误
The problematic instruction:
----------
==> include siteConfig.theme + "/index.ftl" [on line 1, column 1 in index.ftl]
----------
Java backtrace for programmers:
----------
freemarker.core.InvalidReferenceException: Expression siteConfig is undefined on line 1, column 11 in index.ftl.
at freemarker.core.TemplateObject.assertNonNull(TemplateObject.java:124)
at freemarker.core.TemplateObject.invalidTypeException(TemplateObject.java:134)
at freemarker.core.Dot._getAsTemplateModel(Dot.java:78)
at freemarker.core.Expression.getAsTemplateModel(Expression.java:89)
at freemarker.core.AddConcatExpression._getAsTemplateModel(AddConcatExpression.java:77)
at freemarker.core.Expression.getAsTemplateModel(Expression.java:89)
at freemarker.core.Expression.getStringValue(Expression.java:93)
at freemarker.core.Include.accept(Include.java:110)
at freemarker.core.Environment.visit(Environment.java:196)
at freemarker.core.Environment.process(Environment.java:176)
at freemarker.template.Template.process(Template.java:232)
Tuesday, October 30, 2007, 05:30:01 AM (CST)
你check最新的branches/myblog-1.8下面的代码么?
这个要先把initialization改成true.还要更新一下数据库。
update `MYBLOG_TAG` tag set `count` = (select count(1) from MYBLOG_ENTRY_TAGS where tagId=tag.id)
update `MYBLOG_CATEGORY` category set `count` = (select count(1) from MYBLOG_ENTRY_CATEGORY where categoryId=category.id)
谢谢支持哦。
Friday, October 17, 2008, 04:25:07 PM (CST)
我下了一个1.8版本的,我想下其他的版本看看,是否google上也提供呢?
还有我下了以后,部署到tomcat里(还没设置数据库),登陆的时候问题出现了,总是验证码有问题,尝试了多次,还是。服务器重启了还不行,想找到验证码的源码没找到,这个是不是一个问题啊。。。。。。