两个月没博了,马上回家了 How to use Screen on Linux
Nov 08

Getting Started
===============
1.首先下载程序包 eg:myblog-1.8-P1.war,下载后放到tomcat,resin的webapps目录下面启动tomcat,resin之后就可以体验myblog的功能了。
默认的用户名是admin,密码也是admin.注意这个时候您做的所有操作都是没有保存到数据的库的,是保存在内存中的.

2.接下来你应该配置myblog连接您的数据库。打开myblog的WEB-INF/classes/config.properties文件.找到您的数据库的相应配置.
比如如果您使用mysql5.x的数据库您的数据库配置应该看起来是这个样子的

hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
datasource.driverClassName=com.mysql.jdbc.Driver
datasource.url=jdbc:mysql://127.0.0.1:3306/myblog?useUnicode=true&characterEncoding=utf8
datasource.username=root
datasource.password=root

请注意修改成您的url,username和password.
如果您使用其它数据库请参考config.properties里面注释了的一些配置做相应修改即可.

3.关于后台登录帐号的配置,您需要修改
system.username=admin
system.password=admin
system.email=example@example.com
这三个配置。这里你可以修改后台登录用户的用户名,密码以及email地址。密码也可以安装后在后台管理里面修改.

4.关于javamail的配置,您需要修改
mail.host=localhost
mail.username=
mail.password=
mail.from=example@example.com
mail.personal=Example.com
这里是为评论邮件通告设置的。如果设置不正常,将不会出现评论的邮件通告.

5.启动tomcat,resin安装myblog.设置好上面的这些之后您可以再次启动tomcat,resin了。启动之后myblog就安装成功了。ok all done..

6.注意的问题
 (I)数据库编码的问题。比如采用mysql,应该使用utf-8编码.可能您安装mysql的时候默认的编码不是使用的utf-8编码,您建立好数据库之后请执行下面语句
 alter database myblog DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
 (II)url编码的问题。您会发现安装好之后中文的分类,和中文的标签都不能正常的取到日志.这是因为url的编码问题。如果您使用的是tomcat您应该修改处理请求的那个connector
 添加两个属性 URIEncoding="UTF-8" UseBodyEncodingForURI="true"
 <Connector port="8080" maxHttpHeaderSize="8192"
               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
               enableLookups="false" redirectPort="8443" acceptCount="100"
               connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="UTF-8" UseBodyEncodingForURI="true" />
  如果您使用的是apache和tomcat集成的方式,请不要忘了要在ajp的connector加上上面的两个属性.
  <!-- Define an AJP 1.3 Connector -->
    <Connector port="8009"
               enableLookups="false" redirectPort="8443" protocol="AJP/1.3" URIEncoding="UTF-8" UseBodyEncodingForURI="true" />
 
 (III)关于initialization参数,initialization参数是初始化的开关,第一次安装的时候是必须为true的.
  初始化之后这个参数也可以为true.Myblog会检查是否已经初始化安装过了.如果安装过了就不需要安装了.
  不过这个判断是在您每次重启Myblog的时候都会进行的。所以建议您安装成功之后将这个参数设置成false.

Upgrade from old versions
=========================
从1.5,1.6升级到1.8您需要做一下几个步骤.
1.首先请备份旧版本的myblog,以及您的数据库.停止您的Myblog
2.更新数据库结构,请执行一下数据库脚本
 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);
3.修改config.properties里面的initialization参数为true.
4.启动服务后,登录后台执行一下update. http://localhost:8080/myblog/admin/update.jspx,请替换成您的确切链接.
   比如jdkcn.com的update链接应该是这样的http://jdkcn.com/admin/update.jspx
 OK. all done.您可以将initialization参数修改回false了.
5.注意,升级的时候最好先删除原来的文件,保留WEB-INF/classes/config.properties和WEB-INF/classes/siteConfig.xml即可
 Good, luck. :)


有任何问题请到http://groups.google.com/group/myblogdev


Like others

138 Responses to “Myblog 1.8 安装升级文档”

  1. 新聊斋 Says:

    莫多辛苦了,
    从1.6更新到1.8的话,如果手动更新数据库表结构是不是只要往MYBLOG_TAG和MYBLOG_CATEGORY这两个表里分别添加count字段,然后再执行

    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);

    是不是就可以了啊?

    重键表结构还要导数据,如果只加了这两个字段的话我就手动更新好了.
    莫多请抽空回答下,先谢了

  2. 莫多(somebody) Says:

    你只要先更新程序。重启服务后字段就建立了。然后再执行上面的两个update语句就ok了。手动添加后update应该也是可以的。
    一定要下载最新的 myblog1.8 光棍节补丁版哦。修正了很多bug.

    http://myblog.googlecode.com/files/myblog-1.8-P1.war

    谢谢支持。
    如果升级有什么问题可以用 im联系我 msn: somebody618[at] hotmail [dot] com
    gtalk: rory.cn[at] gmail [dot] com

  3. 新聊斋 Says:

    谢谢,按照你说的步骤更新好了.
    但是有个小问题,就是站点配置里面的设置显示文章摘要字数的那个设置好象无效了,不管设置多少字数,所有的文章都只显示标题.

    是我更新有什么问题吗?

  4. 莫多(somebody) Says:

    没有看仔细吧。
    4.启动服务后,登录后台执行一下update. http://localhost:8080/myblog/admin/update.jspx,请替换成您的确切链接.
       比如jdkcn.com的update链接应该是这样的http://jdkcn.com/admin/update.jspx

    这一步你没有做。做了就有了。

  5. 哀伤血舞 Says:

    莫莫,你的网站很漂亮,很想学你的这个技术,我下了最新版本,想往电脑上装,可是我装了MYSQL,怎么建数据库啊

  6. 莫多(somebody) Says:

    你按照这个说明文档安装有什么问题么?这个文档也是用mysql做说明的啊。

  7. 哀伤血舞 Says:

    嗯,是我水平太次了,呵呵,没看懂,好好学习,现在搭起来了已经

  8. 哀伤血舞 Says:

    我还想问一个问题哈,你的网站很漂亮,我想用现在的版本做一个个人博客,然后放到外网上,会不会有什么版权问题呢?我有什么需要注意的地方吗?麻烦莫莫告诉我哈

  9. 莫多(somebody) Says:

    这个本来就是开源的。
    你可以部署自己使用。
    谢谢支持

  10. 哀伤血舞 Says:

    谢谢了,以前我都都用webwork和hibernate写程序,你用的技术都是我想学习的,呵呵,以后就照着你的学习了

  11. 哀伤血舞 Says:

    2007-11-21 22:05:01 StandardWrapperValve[admin]: Servlet.service() for servlet admin threw exception
    java.net.UnknownHostException: jdkcn.com
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:177)
    at java.net.Socket.connect(Socket.java:507)
    at java.net.Socket.connect(Socket.java:457)
    at sun.net.NetworkClient.doConnect(NetworkClient.java:157)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:365)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:477)
    at sun.net.www.http.HttpClient.<init>(HttpClient.java:214)
    at sun.net.www.http.HttpClient.New(HttpClient.java:287)
    at sun.net.www.http.HttpClient.New(HttpClient.java:299)
    at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:784)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:736)
    at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:661)
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:905)
    at com.jdkcn.web.CheckUpdateController.handleRequestInternal(Unknown Source)
    at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:139)
    at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:44)
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:717)
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:658)
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:392)
    at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:347)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
    at com.jdkcn.web.filter.MessageFilter.doFilter(Unknown Source)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
    at org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:130)
    at org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:107)
    at org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:78)
    at org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:383)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
    at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:174)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
    at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:75)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
    at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:535)
    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
    at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
    at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
    at java.lang.Thread.run(Thread.java:595)

    2007-11-21 22:05:28 StandardWrapperValve[admin]: Servlet.service() for servlet admin threw exception
    java.lang.OutOfMemoryError: PermGen space


    这个内存溢出了。。。是什么错误啊

  12. 莫多(somebody) Says:

    你是在后台管理页面出错的么?
    你的部署环境是不是不能访问网络啊。
    在后台登陆成功的时候会去jdkcn.com 访问看程序是否有更新。

  13. 哀伤血舞 Says:

    哦,我再看看吧,我先等等它,看看再溢出是什么情况。。。呵呵

  14. 刹那 Says:

    感谢作者的blog。。这里出了点问题,帮我看下,谢谢^_^
    http://groups.google.com/group/myblogdev/browse_thread/thread/6c8801b06d3c2849

  15. boddi Says:

    网站很漂亮 啊,特别是右边那些小模块

  16. 莫多(somebody) Says:

    这个也不是我自己做的。是直接用的wordpress的itheme.皮肤。

  17. 哀伤血舞 Says:

    莫莫,你有没有发现一个问题啊,就是每篇文章的下面,有个也许也喜欢的连接,可是下面的东西连的还是本页子啊,并没有连到它那个标题所在的文章的页子,呵呵,不知道我说清楚了没。。。这是怎么回事啊

  18. 哀伤血舞 Says:

    boddi Says: 

    星期一, 十一月 26, 2007, 04:23:17 下午 (CST) 
    网站很漂亮 啊,特别是右边那些小模块

    莫多(somebody) Says: 

    星期一, 十一月 26, 2007, 04:25:32 下午 (CST) 
    这个也不是我自己做的。是直接用的wordpress的itheme



    强烈抗议,你们俩说话咋把你们的话都发我邮箱里了。。。郁闷

  19. 哀伤血舞 Says:

    莫多(somebody) Says: 

    星期四, 十一月 22, 2007, 04:58:45 下午 (CST) 
    你是在后台管理页面出错的么? 
    你的部署环境是不是不能访问网络啊。 
    在后台登陆成功的时候会去jdkcn.com 访问看程序是否有更新。

    你说的是不是这个啊
    <script type="text/javascript">
    window.onload = function (){
       var url = 'up.jspx';
    var pars = 'up=1';
    var target = 'check_up';
    var myAjax = new Ajax.Updater(target, url, {method: 'get', parameters: pars, evalScripts: 'yes'});
    }
    </script>

    如果我不想让它检查更新是不是把它去了呢?去了它会有什么严重后果?呵呵


  20. 莫多(somebody) Says:

    也许也喜欢是调用的相关的日志,应该没有什么问题的吧。
    你看看这篇日志的也许也喜欢就明白了。
    默认的会订阅日志的回复。如果你不想收到回复你可以点一下邮件里面的退订链接。
    你可以去掉程序新版本的检查,没有什么严重的后果的。这个只是为了让你在发布新版本之后第一时间收到消息。

  21. 哀伤血舞 Says:

    哦,第二个问题和第三个问题清楚了,第一个还不是很清楚,举个例子,就是本页子吧,他的连接是http://www.jdkcn.com/entry/how-to-install-update-myblog-18.html,下面的
    如何将Myblog1.0升级到Myblog1.5 
    Myblog1.5七夕版截图(ScreenShots) 
    Myblog1.5七夕版发布了 
    Freebsd6.2升级Subversion1.4.3到Subversion1.4.4 
    Freebsd6.2下Trac10.4插件trac-webadmin安装 
    Myblog1.0GA安装文档 
    Myblog1.0GA(端午节)发布 
    ubuntu6.1升级openoffice2.0到openoffice2.2 
    myblog 1.0 RC2 发布 


    这些相关日志,点这些相关的连接还是回到http://www.jdkcn.com/entry/how-to-install-update-myblog-18.html这个连接上,并不是去了他们各自的文章。。。难道你那里点的不是这样的吗?

  22. 哀伤血舞 Says:

    都睡了?
    还有一个问题哦,我新加一个类别,比如爪哇,想弄中文的类别,又不想在server配置文件里加URIEncoding="UTF-8"这个一句话,是不是没办法啊,因为加了这么一句话,我app下的其他site传参数的时候好像会出现乱码。。。。晕死

  23. 莫多(somebody) Says:

    看来被你发现了个bug.一直都没有注意呢。
    看来你自己的app去自己去转编码了吧。
    这个可以给category加个字段来处理。不过中文的tag可能就不是那么好处理了。

  24. 哀伤血舞 Says:

    呵呵,我也是用着学习,好多技术都不清楚,研究学习你的代码。呵呵

  25. 哀伤血舞 Says:

    BUG怎么修改的???我看见你的站点已经改好了。。。

  26. 莫多(somebody) Says:

    我已经修改好了。提交到svn上去了。就修改了ftl文件。
    你可以update一下代码就知道了。谢谢你的测试哦。:)

  27. qinizme Says:

    你好,很高兴能看到这样的网站
    最近自己也在勇JAVA写BLOG,基本写完了
    现在我需要个支持SPRING,HIBERNATE,MYSQL的空间~

    不知道你这个空间是你自己架的还是从公司买的
    能否推荐一下阿
    谢谢了:)

  28. Sutra Says:

    To qinizme: 你可以去http://www.mybrand.com.cn 看看。

  29. 莫多(somebody) Says:

    是的你可以去mybrand看看。
    我的空间是在国外买的。
    比较贵,速度也不是那么快。
    是在hub.org买的。

  30. 秦歌 Says:

    哈哈,不错,不错,支持支持啊。

  31. start Says:

    有个老问题,一直没有说,后台登录后如果不点击其他的menu链接,鼠标移动到menu名称上面不出相应的下拉。  呵呵

  32. 莫多(somebody) Says:

    谢谢start,发现个bug,这个是IE下才出现的,我一直用firefox,所以没有发现这个问题。 
    你可以用
    http://myblog.googlecode.com/svn/branches/myblog-1.8/web/WEB-INF/views/admin/index.ftl
    覆盖WEB-INF/views/admin下的index.ftl

    这样就可以了。

    非常感谢

  33. start Says:

    和上个问题同样的性质,ie中进入管理页面之后,点击内容管理下的站点配置,添加日志,添加页面的时候,menu就消失了。  

  34. 莫多(somebody) Says:

    这个问题是菜单和fckeditor两个有冲突的问题。我还不知道怎么解决。如果start有什么好的解决方法可以发邮件给我。谢谢。

  35. start Says:

    具体我没有细调,不过我在站点配置功能里面 把"站点详细简介"和"站点简介" 的  class="editor"  去掉之后menu随即显示了,不过没有出相应的下拉。但我想会不会和css有关。 只是时间有限没有细调。

  36. NicholasRen Says:

    很不错的博客啊,谢谢你能拿出来分享,看了你的成果,我也有了继续写下去的动力:-)

  37. 莫多(somebody) Says:

    不知道 NicholasRen 在写什么呢?也让大家分享一下?

  38. NicholasRen Says:

    呵呵,不敢当啊,刚开始不久,仅仅是为了学习SSH,在和同事合作写一个博客系统。搞好了与大家分享

  39. kevinwu Says:

    莫多,你在上面提到,你的空间是在hub.org购买的,是VPS吧?我最近也很想购买一个支持java的虚拟主机或VPS,不知还有没有其他的推荐?

    我在http://www.mybrand.com.cn上看了一下,好像他们只提供支持PHP与CGI的虚拟主机。

  40. usersname Says:

    where is the ajax function? seems this is a very simple blog without java function, quite misleading :(

  41. 莫多(somebody) Says:

    The ajax function is in the administration page,and the entry page's refer also a ajax function.

    this is a real java blog, you can download the war package and put it in Tomcat's webapp directory. then you'll find the answer.

    tks.

  42. minmin Says:

    怎么拿到myblog-1.8-P1.war的源文件。。。我安装了显示还是有些问题,而且导航不知道怎么改。。。

  43. super Says:

    myblog做的还不错,昨天载了1.8的,在本机上安装成功了,我用admin可以登陆,但如果我要注册一个新用户呢?我怎么一直找不到?难到这个系统只能一个人使用?还是我不知道在哪弄?请指教,谢谢!

  44. 莫多(somebody) Says:

    to:minmin 源文件在myblog-1.8-P1.war里面有的。你解压缩就可以看到。导航是读的分类和页面。你可以在后台添加修改。

    to:super 现在myblog还只是单用户的,所以没有注册用户。我们正在添加多用户。
    http://code.google.com/p/myblog/issues/detail?id=11
    敬请期待。

  45. minmin Says:

    哈哈,我建议一种多用户模式,是我们想用的!我们小组希望建一个小组的工作日志,大家都可以来写新日志,首页就是显示的是所有成员写的日志提要。日志显示作者、上传时间等--点击作者可以看到改用户所有上传的日志,相当于他自己blog。

  46. 莫多(somebody) Says:

    第一个你可以在数据库里添加用户。这样大家都可以发表日志了。
    不过只是没有权限的区别。
    第二个还没有实现。这个也可以简单的添加一个查询来实现。

    谢谢支持。

  47. super Says:

    这几天因为要给一个局域网架设一个多用户的博客,找了好多开源的博客,如果myblog是多用户的就刚好满足我们的需求了,blojsom 采用的是有一个管理员可以新增博客,生成一个url,通过这个url就可以访问到不同的博客,不过这套感觉用起来不怎么方便,而且不是采用注册式的,要手工分配,很麻烦,而且不知道咋的都不能回复日志,有用过blojsom的 给点意见,还有个问题,为什么我每次第一次在myblog回帖的时候总是提示验证码错误,总要输两次,是不是一个bug?

  48. 莫多(somebody) Says:

    不是吧。你在这里回复也是这样么?我回复没有问题的啊。

  49. super Says:

    我碰到了几次了,在这里也会,我自己安装的那套也会

  50. 莫多(somebody) Says:

    不是吧,是你的浏览器缓存了?你回复之前点一下那个图片呢?
    你用的什么浏览器。

  51. super Says:

    我用IE6啊,可能我一直把1和L混淆了吧,不好意思

  52. super Says:

    这周找了将近10套的开源博客,符合我们公司环境和需求的更少,要不就是有严重bug或是配不起来,后来弄了apache 的roller,感觉还不错,就是汉化做的不够,建议楼主参考一下roller的多用户模式,期待myblog更加完善!myblog在用户操作性上还是不错的!

  53. fred Says:

    界面越来越好看了~

  54. Nicholas Ren Says:

    界面好漂亮,莫多,这些都是你设计的吗?我现在也在做一个博客,对于设计用户界面感觉很痛苦,毕竟这个不是本行,有没有一些比较好的开源的Theme可以用的?谢谢

  55. 莫多(somebody) Says:

    我用的是wordpress的模板。你可以找到相当多wordpress的模板。随便找几百个好看的还是不成问题的。
    ^_^

  56. 心酸果冻 Says:

    您好,我下载的是这个版本,但是怎么没有发现数据库呢?
    我找遍了,没有啊,请发我份,谢谢
    zhdqCN@gmail.com

  57. Sutra Says:

    数据库是运行时产生的。

  58. 心酸果冻 Says:

    恩,是的,看到了,但是页面有错误啊,请您看下
    org.apache.jasper.JasperException: Exception in JSP: /index.jsp:1

    1: <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><jsp:include page="index.jhtml"></jsp:include>


    Stacktrace:
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:451)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:355)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
    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)
    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.jdkcn.web.filter.RequestCounterFilter.doFilterInternal(Unknown Source)
    org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
    org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:75)
    org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)


    root cause 

    javax.servlet.ServletException: Expression siteConfig is undefined on line 1, column 11 in index.ftl.
    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)
    org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:965)
    org.apache.jsp.index_jsp._jspService(index_jsp.java:42)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
    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)
    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.jdkcn.web.filter.RequestCounterFilter.doFilterInternal(Unknown Source)
    org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
    org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:75)
    org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)


    root cause 

    freemarker.core.InvalidReferenceException: Expression siteConfig is undefined on line 1, column 11 in index.ftl.
    freemarker.core.TemplateObject.assertNonNull(TemplateObject.java:124)
    freemarker.core.TemplateObject.invalidTypeException(TemplateObject.java:134)
    freemarker.core.Dot._getAsTemplateModel(Dot.java:78)
    freemarker.core.Expression.getAsTemplateModel(Expression.java:89)
    freemarker.core.AddConcatExpression._getAsTemplateModel(AddConcatExpression.java:77)
    freemarker.core.Expression.getAsTemplateModel(Expression.java:89)
    freemarker.core.Expression.getStringValue(Expression.java:93)
    freemarker.core.Include.accept(Include.java:110)
    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)
    org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:965)
    org.apache.jsp.index_jsp._jspService(index_jsp.java:42)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
    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)
    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.jdkcn.web.filter.RequestCounterFilter.doFilterInternal(Unknown Source)
    org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
    org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:75)
    org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)

  59. 心酸果冻 Says:

    呵呵,谢谢,问题解决了
    主要就是这个开关的问题,
    initialization=true,这样就没问题了

  60. minmin Says:

    莫多,你好!
    我又遇到问题了,解压缩了这个myblog-1.8-P1.war以后,我在tomcat的server.xml文件里配置了一个目录
    <Context path="/abcd" reloadable="true" docBase="F:\\blog\\myblog" workDir="F:\\blog\\myblog\\work" />。
    今天重启tomcat后,就一直报这样的错:
    严重: Error filterStart
    2008-1-23 15:33:06 org.apache.catalina.core.StandardContext start
    严重: Context [/abcd] startup failed due to previous errors。

    这个目录下的页面也一直找不到。

    我在网上查了一下,好像是因为这个包里WEB-INF下的web.xml中的
    <listener>
    <listener-class>
    org.springframework.web.context.ContextLoaderListener
    </listener-class>
    </listener>
         
        <listener>
            <listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>
        </listener>

    造成的。
    参考网上的修改意见(http://hi.baidu.com/273921843/blog/item/6cfc96d5d701aac751da4b1f.html)
    要把这一段改成

    <servlet>
         <servlet-name>SpringContextServlet</servlet-name>
         <servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class>
         <load-on-startup>1</load-on-startup>
    </servlet>


    没有说原因。
    更可怕的是,我改完还是一样,继续报这个错。。。

  61. 莫多(somebody) Says:

    这个问题应该不是这么解决的。
    你可以先把log4j.properties里面加上spring的debug

    log4j.logger.org.springframework = debug

    这样就可以看到spring在加载那个类的时候出错了。

  62. minmin Says:

    你说的log4j.properties,是src\main\resources下面的么?
    还是应该放到classes下面的哪个目录呢?

  63. 莫多(somebody) Says:

    应该是在你的
    F:/blog/myblog/WEB-INF/classes/log4j.properties

    在最后加上一行
    log4j.logger.org.springframework = debug 
    就可以看到错误了。

  64. minmin Says:

    我知道怎么错了。。。我每次都是压缩你的包以后,在Eclipse里建一个项目,这么一建,就把classes下面的文件搞没了。。。所以错误百出。直接解压缩,配置server.xml就ok了。
    莫莫真是好人啊!

  65. 莫多(somebody) Says:

    如果你自己check了代码。做了修改的话,你可以运行ant来重新打包。
    ant package
    就可以打成war包了

  66. minmin Says:

    不好意思,我又來了,我這次把它放在了另一台服務器上,重啟tomcat的時候就出現這樣的問題:停在這里一直不動了,服務器也啟動不起來。。。

    18:38:34,857 DEBUG BlogFacadeImpl:? - [myblog]:clear cached links...
    18:38:34,859 DEBUG BlogFacadeImpl:? - [myblog]:clear recommend cached links...
    18:38:34,863  INFO InitDataManager:? - com.jdkcn.domain.Link@86a58a


  67. 莫多(somebody) Says:

    你确认新的服务器能连上你的数据库么?
    你把initialization改成false试试

    initialization=false

  68. minmin Says:

    不是开始不设置数据库的时候也可以临时使用的么~“注意这个时候您做的所有操作都是没有保存到数据的库的,是保存在内存中的.”

  69. 莫多(somebody) Says:

    这个是可以的啊。不过前提是你没有修改过config.properties文件的内容。如果你修改过了就要保证你的服务器可以链接到你配置的数据库。

  70. minmin Says:

    我什么都没改...就解压缩了放上去的,tomcat就是起不来...

    我是放在/usr/local/tomcat/webapps/blog/下面的

    15:43:51,959  INFO InitDataManager:? - [myblog]init database:
    15:43:52,182  INFO InitDataManager:? - [myblog]copy the xml config to database.
    15:43:54,308 DEBUG BlogFacadeImpl:? - [myblog]:clear cached siteconfig...
    java.lang.reflect.InvocationTargetException


    不解压缩更可怕...tomcat就像没检测到那些文件,启倒是起来了,直接找不到页面.

  71. thirteener Says:

    莫多,你好!
    我很喜欢你做的网站,你可以把你源码发给我看看吗?
    我想自己也学习学习。
    先在这里谢谢了。

  72. 莫多(somebody) Says:

    源代码就在这里:
    http://code.google.com/p/myblog/source

    你可以自己checkout.

  73. thirteener Says:

    谢谢莫多。
    我想要的是Myblog打war包之前的Web应用程序源代码。
    就是像可以编辑的jsp代码一样。
    不知道有没有。

    我们可以交个朋友吗?
    很高兴和你交流,你是一个热情的人,让人感觉快乐。

    我也是学软件的。
    现在在学习j2ee,很想可以提高一下自己的能力。
    你是不是也是搞java的啊?

  74. Sutra Says:

    请 thirteener 仔细阅读 72 楼的回复!

  75. thirteener Says:

    谢谢!

  76. 可贝贝 Says:

    请问如何建用户啊?

  77. Sutra Says:

    To 可贝贝:
    该博客系统目前是单用户的。

  78. java_lear Says:


    ///////////////////////////第一种实现方式
    public Entry getPreviousEntry(final String id) {
    List entries = getHibernateTemplate().executeFind(new HibernateCallback(){
    public Object doInHibernate(Session session) throws HibernateException, SQLException {
    Query query = session.createQuery("from Entry entry where entry.postTime>(select current.postTime from Entry current where current.id=:id) and entry.entryStatus=:entryStatus and entry.type=:type order by entry.postTime asc");
    query.setParameter("id", id);
    query.setParameter("entryStatus", Entry.EntryStatus.PUBLISH);
    query.setParameter("type", Entry.Type.POST);
    query.setMaxResults(1);
    return query.list();
    }});
    if(entries.isEmpty())
    return null;
    else
    return (Entry)entries.get(0);
    }

    ///////////////////////////第二种实现方式
    public Entry getPreviousEntry(final String id) {
    Query query = session.createQuery("from Entry entry where entry.postTime>(select current.postTime from Entry current where current.id=:id) and entry.entryStatus=:entryStatus and entry.type=:type order by entry.postTime asc");
    query.setParameter("id", id);
    query.setParameter("entryStatus", Entry.EntryStatus.PUBLISH);
    query.setParameter("type", Entry.Type.POST);
    query.setMaxResults(1);
    Entry entry=null;
    if(query1.iterate().hasNext())
    entry=(Entry)query.iterate().next()
        return entry;
    }

    这两种实现方式都能取得Entry ,第一种用了回调函数,第二种没有用,它们在功能和效率上有什么区别?哪个更好?
    补充:
    ///////////////////////////第三种实现方式
    public Entry getEntryByName(String name) {
    DetachedCriteria criteria = DetachedCriteria.forClass(Entry.class);
    criteria.add(Restrictions.eq("name", name));
    List result = getHibernateTemplate().findByCriteria(criteria);
    if(result.isEmpty())
    return null;
    else{
    return (Entry)result.get(0);
    }
    }

    这在效率和功能上又体现在哪?
    上面三种,各有什么不同,哪一种实现方式更好,好在哪里?
    很是困惑,请莫多泡泡帮助我
    除了这两种实现方式,还有

  79. 莫多(somebody) Says:

    第一种和第二种实现是一致的。这两种的区别仅仅在于第一种是通过spring对hibernate的封装HibernateTemplate来调用而已。
    在我看来这三种方式没有区别的。这个在于你对那个api的熟悉程度。如果你对hibernate本身的api非常熟悉。你完全可以不用spring对hibernate的封装。或者所有查询都用HibernateCallback的方式。

  80. albert Says:

    不好意思,我为什么没有找到数据库文件呢?

  81. yuul Says:

    请问,有能导入MYECLIPSE的MYBLOG版本吗?
    .classpath
    .project
    缺少这两个文件

  82. 莫多(somebody) Says:

    请看这里 
    http://code.google.com/p/myblog/source/checkout

    svn checkout到的代码就是eclipse项目。可以直接导入的。

  83. Says:

    请问哪里有源码下载

  84. 莫多(somebody) Says:

    燧:
    请看82楼的回复。谢谢。
    使用subversion下载源代码。
    http://subversion.tigris.org

  85. 仵子 Says:

    我的中文分类,显示是正常的,但点了之后没有内容,关联不到文章。
    我看你的没有问题,你是怎么做的?

  86. 莫多(somebody) Says:

    to:仵子
    你应该是第6点没有做,或者没有生效。修改了请重启一下tomcat

  87. 仵子 Says:

    我如何才能删除myblog这个tag?
    另外怎么我加的友情链接出不来,图片不能显示

  88. 仵子 Says:

    中文分类,好了
    没有好好看文档,谢谢你

  89. 莫多(somebody) Says:

    友情链接要推荐到首页才显示在右面。不然就只在links.html里显示。
    现在没有tag管理的功能。看来你只有从数据库中删除这个tag了。

  90. young Says:

    莫多你好,我第一次配置完登录的时候,总是提示我验证码错误,为什么呢.另:我是菜鸟级

  91. 仵子 Says:

    我发现一个问题,在修改友情链接的时候,会显示这样的提示。
    --------------------------
    您好!

    正在进行系统升级或者更新,网络服务暂时停止使用,请稍候继续访问,对您造成不便敬请谅解。您可以报告问题Jdkcn.com Service给站长,

    ooops!!,server error, may by updating.if any questions report to Jdkcn.com Service
    ------------

  92. 五子 Says:

    web.xml中那些filter的作用能说说吗,我是初练,帮帮忙!!

  93. 郝乐 Says:

    莫多您好,我在本机部署了myblog应用,在后台发布文章时没有看到多媒体编辑器,不能贴图片,不知道问题出在了那里,希望得到指点,感谢。

  94. 莫多(somebody) Says:

    to:郝乐
    后台是用的fckeditor.如果部署成功了。应该是可以看到的。请检查一下你浏览器的设置。是不是禁用了js

  95. Sutra Says:

    看到传说中的spam了。

  96. 莫多(somebody) Says:

    准备换个验证码,kaptcha不错。

  97. cpyjy Says:

    也许也喜欢下面的url链接有问题,都是相同的一个...

  98. 莫多(somebody) Says:

    非常感谢 cpyjy 发现这个bug,这个bug是模板的问题。
    正在fix.

  99. 莫多(somebody) Says:

    现在正常了。在svn(r300)中已经修复。
    再次感谢cpyjy

  100. wangguochen Says:

    请问您的pojo与数据库的映射文件在哪里啊.我在bean sessionFactory中只看到

    <property name="mappingDirectoryLocations">
             <list>
    <value>classpath:com/jdkcn/dao/hibernate3</value>
            </list>
    </property>
    可是com/jdkcn/dao/hibernate3这下面有没有映射文件啊.您是怎么做的?

  101. zhangxin Says:

    我全新安装的1.8,为什么后台管理界面没有分类的管理?而且首页的布局有问题,右面菜单部分的(就是“关于”,“最新日志”,“最新评论”那块)那块内容都跑到下方去了,没有和左面日志部分的内容并排?

  102. 莫多(somebody) Says:

    to:wangguochen
    请看这里。
    http://myblog.googlecode.com/svn/trunk/myblog/src/main/resources/com/jdkcn/dao/hibernate3/

    是在src/main/resources下面。而不是src/main/java下面。

    to:zhangxin
    不知道你看本站有没有你说的这种情况。关于后台请用firefox登录。试试是不是没有问题。

    多谢支持

  103. mac Says:

    想学习下你的代码!可我是菜鸟...
    那些数据表怎么生成啊?

    有sql文件吗?
    我怎么没找到?

  104. 莫多(somebody) Says:

    to:mac
    你下载安装成功之后就可以生成表了。

    数据库表是hibernate自动创建的。所以没有sql文件。

  105. newflypig Says:

    我刚使用这套系统,成功配置了,但是我只熟悉基本的JSP和Servlet,一些常用的框架没有接触过,只是以前看过hibernet的介绍,您有QQ或者GTalk吗,想请教一些问题。谢了

  106. newflypig Says:

    index.jhtml 到底在哪儿啊,呵呵,我只看得懂index.jsp,那个jhtml是servlet吗,我在web.xml中又没有发现它的map,到底在哪儿啊

  107. somebody(莫多) Says:

    我已经加了你的gtalk。
    newflydd
    似乎没有反应。
    index.jhtml在WEB-INF/myblog-servlet.xml里面定义的。

  108. 王磊 Says:

    你好!我是第一次看到,很崇拜你,我下载了你的 1.8 但是数据库在那里下载到?或者有别的途径设置?我只是在本机上运行这个程序的。谢谢

  109. 王磊 Says:

    你好 能具体说一下怎么导出工程吗?上面的恢复我都看了,我也去了那两个网站可是不知道怎么导出工程,谢谢

  110. 王磊 Says:

    再次打扰以下, 是不是我在本机需要安装svn才能导出工程?

  111. 莫多(somebody) Says:

    to:王磊,你从googlecode下载的文件里面就有源代码。如果你要下载完整的工程文件和源代码。请安装subversion,然后checkout 
    http://myblog.googlecode.com/svn/trunk/myblog/
    谢谢。

  112. 王磊 Says:

    莫多 http://www.svnhost.cn 这是一个免费的托管网站

  113. ChenWeiDi Says:

    莫多你好,非常感谢能回复我的问题.
       
         做天的那个404错误,基本已经解决,原因是Tomcat版本太低了,换了个5.5.26可以体验myblog的功能了,但今天修改config.properties之后又出现了这个404问题,把config.properties文件改成初始配置就没事,不知道是
    什么个原因..
    mysql版本是5.0,已经在mysql里建立了myblog数据库.

  114. 莫多(somebody) Says:

    你看一下你的tomcat日志。logs/catalina.out
    可能你的数据库用户没有配置对。
    是不是没有把其他的相关配置去掉。

  115. ChenWeiDi Says:

    莫多你好,
                还是那个问题,您提出的"可能你的数据库用户没有配置对。"我想不太可能,因为在myblog的数据库里已经把表的创建进去了.
                关于您提出的"是不是没有把其他的相关配置去掉。"这个我不太清楚,但我是按照要求把配置弄好了,该注释的已经注释了.只是没去掉.

  116. hali Says:

    和22楼一样。
    1.我加了个中文的类别:"奥运",
    2.然后添加了一篇文章,类别选了"奥运",
    3.在首页点"奥运"这个类别
    结果会报"No entry found!",我改成英文就Ok了,看来是编码问题,不知道怎么解决,我没看懂23楼的意思。谢谢~!

  117. somebody(莫多) Says:

    to:hali
    请看第6点注意问题。
    里面就是说这个的。
    也许我应该改掉这个问题。不要把utf-8编码强加给别人。
    Orz

  118. hali Says:

    十分感谢,问题解决了。Orz

    还有一个问题,如果我想把首页的'About'移到最后得改什么文件哦。谢谢

  119. somebody(莫多) Says:

    to:hali

    你需要修改对应模板下的myblog.ftl文件。

    WEB-INF/views/xxx/inc/myblog

    xxx 是你后台设置的模板名称。

  120. hali Says:

    谢谢,真是一个热心人

  121. ChenWeiDi Says:

    期待Myblog2.0呀,
    希望能够尽快出来.

  122. Gerry Says:

    为什么我直接下的1.8版本的,tomcat起来后,访问首页老报404错误,找不到index.jhtml。(我用的tomcat是jbuilder的第三方插件里的tomcat5.0)

  123. somebody(莫多) Says:

    to Gerry
    报404错误就因为服务没有起来。出错了。你看一下控制台。或者tomcat的log文件。

  124. Gerry Says:

    tomcat我确认起来了!另外一个项目都可以正常运行。而myblog报错。日志如下:2008-08-20 09:13:38 StandardContext[/myblog]: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener
    java.lang.UnsupportedClassVersionError: com/jdkcn/BlogFacadeImpl (Unsupported major.minor version 49.0)
    at java.lang.ClassLoader.defineClass0(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:537)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:123)
    at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1679)
    at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:968)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1409)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1289)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:219)
    at org.springframework.util.ClassUtils.forName(ClassUtils.java:108)
    at org.springframework.beans.factory.support.BeanDefinitionReaderUtils.createBeanDefinition(BeanDefinitionReaderUtils.java:65)
    at org.springframework.beans.factory.xml.DefaultXmlBeanDefinitionParser.parseBeanDefinitionElement(DefaultXmlBeanDefinitionParser.java:426)
    at org.springframework.beans.factory.xml.DefaultXmlBeanDefinitionParser.parseBeanDefinitionElement(DefaultXmlBeanDefinitionParser.java:392)
    at org.springframework.beans.factory.xml.DefaultXmlBeanDefinitionParser.parsePropertySubElement(DefaultXmlBeanDefinitionParser.java:724)
    at org.springframework.beans.factory.xml.DefaultXmlBeanDefinitionParser.parsePropertyValue(DefaultXmlBeanDefinitionParser.java:714)
    at org.springframework.beans.factory.xml.DefaultXmlBeanDefinitionParser.parsePropertyElement(DefaultXmlBeanDefinitionParser.java:657)
    at org.springframework.beans.factory.xml.DefaultXmlBeanDefinitionParser.parsePropertyElements(DefaultXmlBeanDefinitionParser.java:556)
    at org.springframework.beans.factory.xml.DefaultXmlBeanDefinitionParser.parseBeanDefinitionElement(DefaultXmlBeanDefinitionParser.java:424)
    at org.springframework.beans.factory.xml.DefaultXmlBeanDefinitionParser.parseBeanDefinitionElement(DefaultXmlBeanDefinitionParser.java:392)
    at org.springframework.beans.factory.xml.DefaultXmlBeanDefinitionParser.parseBeanDefinitions(DefaultXmlBeanDefinitionParser.java:307)
    at org.springframework.beans.factory.xml.DefaultXmlBeanDefinitionParser.registerBeanDefinitions(DefaultXmlBeanDefinitionParser.java:191)
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:295)
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:223)
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:173)
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:148)
    at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:126)
    at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:142)
    at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:126)
    at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:94)
    at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:89)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:269)
    at org.springframework.web.context.support.AbstractRefreshableWebApplicationContext.refresh(AbstractRefreshableWebApplicationContext.java:134)
    at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:246)
    at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:184)
    at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:49)
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3276)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:3618)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:821)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:807)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:595)
    at org.apache.catalina.core.StandardHostDeployer.install(StandardHostDeployer.java:307)
    at org.apache.catalina.core.StandardHost.install(StandardHost.java:788)
    at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:492)
    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:400)
    at org.apache.catalina.startup.HostConfig.start(HostConfig.java:718)
    at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:358)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:166)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1196)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:754)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1188)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:363)
    at org.apache.catalina.core.StandardService.start(StandardService.java:497)
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:2190)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:512)
    at org.apache.catalina.startup.Catalina.execute(Catalina.java:400)
    at org.apache.catalina.startup.Catalina.process(Catalina.java:180)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:324)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:203)

    2008-08-20 09:13:38 StandardContext[/myblog]: Context startup failed due to previous errors
    2008-08-20 09:13:38 Closing Spring root WebApplicationContext

  125. somebody(莫多) Says:

    to:Gerry

    请使用1.5+版本的jdk。
    不支持jdk1.4

  126. jack Says:

    莫多你好
    测试你blog的时候发现在个问题.我是在GOOGLE SVN上面下的1.8的一个版本.
    等都部署好的时候出现了一个问题.在后台添加日志的时候.出现了FCK不显示的问题.还有就<textarea>那里也显示错误信息.不知道是否是版本问题.还是那里错出错了.
      <li>
            <label for="cates" class="desc"><@spring.message "entry.category"/> <span class="req">*</span></label>
            <#list categories as category>
            <input type="checkbox" name="cates"<#if cates?exists&&(cates?seq_contains(category.id))> checked="checked"</#if> value="${category.id}"/>${category.name} <#if ((category_index+1)%6==0)><br/></#if>
            </#list>
        </li>

    在日志分类这里也只有checkbox一个选择项.就算没有fck编辑器,等保存好日志后,日志成了草稿,不能在前台显示,能否指明下?有时间能否回下邮件.

  127. blurm Says:

    莫多真是热心人啊,赞一个
    自己也想写一个blog练练手,学习一下

  128. longlemon Says:

    我的是1.8版本的,但是,我在添加分类的时候,并且添加日志并到该分类下时出现问题,查看相应分类下的日志时,no entry的情况。
    这个对中文的支持不是很好吧。。。。。还是,有其他的设置?

  129. 莫多(somebody) Says:

    请认真阅读完本文。在注意的问题部分里有明确说明的。

  130. 换个ID Says:

    能不能把这个博客的设计文档给发一份,学习一下。

  131. hi Says:

    请问,1.8版本中,我需要自己创建数据库的表吗,没有看到建表语句啊。

  132. 莫多(somebody) Says:

    把要连接的数据库设置好,然后war文件放到服务器上,启动服务器后会自动创建表,并将默认数据插入到数据库中。
    sorrymodu

  133. gpx2016 Says:

    不好意思,google那里没有资格留言,所以在这里请教莫多个问题:
    myblog-servlet.xml:
    <bean id="urlMapping" 
     <ref bean="noCacheHeaderINterceptor"/>
    这里拦截所有的请求交给 noCacheHeaderINterceptor 处理,那么 web.xml 里面的
     <filter>
            <filter-name>cacheFilter</filter-name>
            <filter-class>com.opensymphony.oscache.web.filter.CacheFilter</filter-class>
        </filter>
    这个过滤器还有作用吗? 谢谢!

  134. 莫多(somebody) Says:

    在高并发的时候能看到效果。没有高并发的话就没有做用了。

    你可以自己试试。用apache 里的 ap 发很多请求过来。可以看到有效果。

    不过这个地方做得确实还不是很好。

    ps:现在你可以在googlecode发言了。我批准了。

  135. zhou Says:

    能否把myblog的设计文档给发一份,学习一下!!
    感谢

  136. gpx2016 Says:

    to zhou:
       呵呵,很奇怪,上面的留言直接到我的email去了。我可以发给你的,但是你的email?

  137. 莫多(somebody) Says:

    to:zhou

    现在没有完整详细的设计文档。本身就很简单的。

    to:gpx2016

    你可以退订的。在邮件里面有链接的。谢谢支持。

  138. znj Says:

    想做成多用户的,但是好像每个表都要加个UserID
    每个dao都要改,要改很多啊,有没有好的方法啊?

Leave a Reply

Identifying Code