Code Monkey home page Code Monkey logo

jpress's Introduction

一个使用 Java 开发的、类似 WordPress 的产品,支持多站点、多语种自动切换等。(JPress 始于2015 年)

功能

文章模块

  • 文章管理
  • 文章分类
  • 文章标签
  • 文章搜索(支持 sql like、Lucene、es、OpenSearch)

页面模块

  • 页面管理
  • 页面分类
  • 页面评论

表单模块

  • 表单管理
  • 表单拖拽设计
  • 表单插入到文章
  • 表单数据收集
  • 表单数据统计

附件管理

  • 附件列表
  • 插入附件到文章、页面
  • 附件分类
  • 视频附件

用户相关

  • 用户管理
  • 权限管理

系统相关

  • 模板管理
  • 插件管理
  • 微信管理
  • 系统管理
  • 站点管理

特点

模板

  • 模板在线安装、卸载
  • 模板在线启用、切换
  • 在线编辑及实时生效
  • 模板模的块拖拽设计
  • 完善的模板开发文档
  • 极致的模板开发体验

插件

  • 插件在线安装、卸载
  • 插件在线启用、停止
  • 插件在线更新
  • 支持在插件里添加新的 Controller
  • 支持在插件里添加新的 Handler
  • 支持在插件里添加新的 Interceptor
  • 支持在插件里添加新的 Html、Css 和 Js
  • 支持在插件里创建新的数据库表以及对应的 Model
  • 支持在插件里链接不同的数据库
  • 支持通过插件动态扩展后台菜单和用户中心菜单
  • 插件扩展的菜单支持用户权限设置的管理
  • 插件被停止:该插件的所有Controller、Handler、Intercepter 自动被移除
  • 插件被卸载:该插件的所有资源全部被删除

用户

  • 独立登录、注册入口
  • 手机短信、邮箱激活功能
  • 用户中心(评论管理、个人资料管理等)
  • 微信浏览时,通过微信授权自动获取用户信息

角色和权限

  • 角色管理
  • 全自动、免维护的权限字典(自动发现后台路由、插件安装卸载自动分配对应)
  • 角色和权限的分配
  • 用户多角色功能
  • 超级管理员

微信

  • 微信公众号对接
  • 微信公众号关键字自动回复
  • 微信公众号菜单设置
  • 微信公众号运营插件
  • 通过运用插件灵活扩展各种微信营销功能
  • 微信小程序对接、和配置

多站点

  • 支持站点绑定独立域名
  • 支持站点绑定独立二级目录
  • 支持站点绑定不同地区语言
  • 支持访问主站是自动根据语言跳转到子站点

SEO

  • 每篇文章、页面和商品独立的SEO设置
  • Baidu API 的实时推送
  • Baidu 和 Google 的自动 Ping 提交
  • Sitemap 自动生成、后台支持自定义的开启和关闭
  • robots.txt 爬虫蜘蛛的支持
  • 整站伪静态支持,支持自定义开后缀

其他

  • WordPress、Hexo、Jekyll、微信公众号等文章一键导入
  • 编写文章随意切换 CKEditor 和 Markdown 编辑
  • 最大化、沉侵式的文章编写体验
  • Docker 一键部署
  • 阿里云、腾讯云 CDN 在线配置
  • 阿里云、腾讯云短信验证(用户注册手机验证)
  • 附件自动可配置自动同步阿里云 OSS
  • 完善的API接口配置管理
  • ... (更多等你发现)

交流

帮助文档

广告

运行JPress

在 Docker 上运行

curl -O https://gitee.com/JPressProjects/jpress/raw/master/docker-compose.yml && \
docker-compose up -d

在阿里云(或腾讯云)一键通过 80 端口安装运行

wget https://gitee.com/JPressProjects/jpress/raw/master/install.sh && \
bash install.sh 80

一键安装的视频教程:http://www.ketang8.com/course/study?chapterId=184

通过 Eclipse 或者 Idea 等开发工具运行

  • 1、在电脑安装好 Java、Maven 等开发环境
  • 2、将源码下载、并导入 eclipse 或者 idea
  • 3、在项目的根目录,执行 mvn clean package 命令进行编译
  • 4、在开发工具,右键运行 starter/src/main/java/io.jpress.Starter 下的 main 方法
  • 5、通过浏览器访问 http://127.0.0.1:8080,进行自动安装,安装的过程会自动建库建表

JPress下载、导入、运行视频教程,链接: https://pan.baidu.com/s/1bqbQ9_HjF95EW4qrQvOSag 提取码: 5jw8

注意!注意!注意!JPress 首次运行后,若再执行 mvn clean package 命令,JPress会重新走安装流程。

解决方案: JPress 在安装过程中,会在 starter/target/classes 目录下生成的 jboot.propertiesinstall.lock 两个文件, 我们需要把这两个文件复制到 starter/src/main/resource 目录。

原因是:JPress 是否安装,决定在这两个文件。有这两个文件,JPress 就不走安装流程,没有就走安装流程。 当我们执行 mvn clean 命令时, Maven 会清除 starter/target 目录下的所有文件,从而使这两个文件丢失, JPress 会再次走安装流程。 只有把这两个文件, 复制到 starter/src/main/resource 目录, 再次执行 mvn clean package 命令时,才能保证这两个文件不会丢失,不走安装流程。

JPress 交流群

  • QQ 群1:591396171
  • QQ 群2:288397536

微信交流群:

jpress's People

Contributors

alienjun avatar bakecool avatar bwcx-jzy avatar chencanit avatar dowiee avatar feipeng-yi avatar feitian124 avatar gavinlau avatar guohutiger avatar haicuan139 avatar haotian2546 avatar itsccn-sc avatar jpressprojects avatar limingwei avatar lsup avatar nanbeizzz avatar panfuy avatar ruibaby avatar souvckeji avatar wangtrr avatar whol avatar wuliupo avatar xhf6731202 avatar xiaopan-mr avatar xiasimaodelaoshu avatar yangfuhai avatar yousingit avatar zhanex avatar zjkanjie avatar zjwave avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

jpress's Issues

[建议]后台中页面管理

@JPressProjects 后台中的页面管理不知道你的业务设计意图,在我使用的过程中明显可以用文章管理来替代。现在发布入口有两个在使用很容易困惑。
猜测:页面管理主要是用来发布单独的不在任何分类,专题下的文章。使用时可以在编辑模板的地方加入相关的页面链接地址??

404错误处理的bug

首先,当请求路径为:www.YOURDOMAIN/abc ,而abc没有配置的时候会进入404.html。
但是,当请求:www.YOURDOMAIN/abc.html 的时候,就会显示tomcat的404错误页面。
不知道这种情况怎么处理?
谢谢

DOC.md说的打包方式不正确

在DOC.md中提到了需要在jpress-web中运行maven的打包,但是实际运行不是这样的,需要在jpress目录运行,望修改

tomcat 运行报错

BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2.137 s
[INFO] Finished at: 2016-10-20T11:39:21+08:00
[INFO] Final Memory: 11M/27M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-war-plugin:2.4:war (default-war) on project jpress-web: Error unpacking file [E:\webspace1\jpress\jpress\jpress-web-front\target\classes]to [E:\webspace1\jpress\jpress\jpress-web\target\war\work\io.jpress\jpress-web-front]: The source must not be a directory. -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException

怎么升级

这个东西怎么升级啊,?新的war包部署之后又得重新安装,?那之前的文章怎么办

用户登录入口找不到

默认模板中没有提供普通用户登录入口,我试着直接访问报404错误,请问访问方式是什么?

文章编辑之后标签丢失

当文章被编辑的时候,对应的标签没有读入编辑页面,保存的时候,如果没有写标签就会被冲掉原先添加的标签

第一次下载运行

按照说明文档上说的在maven打包的时候出现问题,出现问题:

E:\E Jpress Workspace\jpress\jpress-web>mvn package
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building jpress-web 1.0
[INFO] ------------------------------------------------------------------------
[WARNING] The POM for io.jpress:jpress-utils:jar:1.0 is missing, no dependency information available
[WARNING] The POM for io.jpress:jpress-db-api:jar:1.0 is missing, no dependency information available
[WARNING] The POM for io.jpress:jpress-db-mysql:jar:1.0 is missing, no dependency information available
[WARNING] The POM for io.jpress:jpress-oauth2:jar:1.0 is missing, no dependency information available
[WARNING] The POM for io.jpress:jpress-message:jar:1.0 is missing, no dependency information available
[WARNING] The POM for io.jpress:jpress-search-api:jar:1.0 is missing, no dependency information available
[WARNING] The POM for io.jpress:jpress-search-dbsimple:jar:1.0 is missing, no dependency information available
[WARNING] The POM for io.jpress:jpress-consts:jar:1.0 is missing, no dependency information available
[WARNING] The POM for io.jpress:jpress-model:jar:1.0 is missing, no dependency information available
[WARNING] The POM for io.jpress:jpress-web-core:jar:1.0 is missing, no dependency information available
[WARNING] The POM for io.jpress:jpress-web-template-jblog:war:1.0 is missing, no dependency information available
[WARNING] The POM for io.jpress:jpress-web-template-the3:war:1.0 is missing, no dependency information available
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.636 s
[INFO] Finished at: 2016-09-13T12:55:21+08:00
[INFO] Final Memory: 7M/108M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal on project jpress-web: Could not resolve dependencies for project io.jpress:jpress-web:war:1.0: The following artifacts could not be resolved: io.jpress:jpress-utils:jar:1.0, io.jpress:jpress-db-api:jar:1.0, io.jpress:jpress-db-mysql:jar:1.0, io.jpress:jpress-oauth2:jar:1.0, io.jpress:jpress-message:jar:1.0, io.jpress:jpress-search-api:jar:1.0, io.jpress:jpress-search-dbsimple:jar:1.0, io.jpress:jpress-consts:jar:1.0, io.jpress:jpress-model:jar:1.0, io.jpress:jpress-web-core:jar:1.0, io.jpress:jpress-web-template-jblog:war:1.0, io.jpress:jpress-web-template-the3:war:1.0: Failure to find io.jpress:jpress-utils:jar:1.0 in http://uk.maven.org/maven2 was cached in the local repository, resolution will not be reattempted until the update interval of UK has elapsed or updates are forced -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/DependencyResolutionException

然后将项目在eclipse中打开,tomcat:run正常,但是访问http://localhost:8080/jpress-web/install报500错误,后台报nullpointexception,如下:

2016-09-13 12:24:04
[ERROR]-[Thread: http-8080-1]-[com.jfinal.core.ActionHandler.handle()]: /install
java.lang.NullPointerException
    at io.jpress.model.core.JModel.getTableName(JModel.java:164)
    at io.jpress.model.core.JModel.createSelectSql(JModel.java:55)
    at io.jpress.model.core.JModel.createSelectWhereSql(JModel.java:63)
    at io.jpress.model.core.JModel.doFindFirst(JModel.java:95)
    at io.jpress.model.query.OptionQuery$1.load(OptionQuery.java:37)
    at com.jfinal.plugin.ehcache.CacheKit.get(CacheKit.java:85)
    at io.jpress.model.query.OptionQuery.findValue(OptionQuery.java:34)
    at io.jpress.front.controller.IndexController.setGlobleAttrs(IndexController.java:83)
    at io.jpress.front.controller.IndexController.doRender(IndexController.java:47)
    at io.jpress.front.controller.IndexController.index(IndexController.java:39)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at com.jfinal.aop.Invocation.invoke(Invocation.java:73)
    at io.jpress.core.interceptor.HookInterceptor.intercept(HookInterceptor.java:34)
    at com.jfinal.aop.Invocation.invoke(Invocation.java:67)
    at io.jpress.interceptor.AdminInterceptor.intercept(AdminInterceptor.java:36)
    at com.jfinal.aop.Invocation.invoke(Invocation.java:67)
    at io.jpress.interceptor.GlobelInterceptor.intercept(GlobelInterceptor.java:33)
    at com.jfinal.aop.Invocation.invoke(Invocation.java:67)
    at io.jpress.core.interceptor.JI18nInterceptor.intercept(JI18nInterceptor.java:48)
    at com.jfinal.aop.Invocation.invoke(Invocation.java:67)
    at com.jfinal.core.ActionHandler.handle(ActionHandler.java:74)
    at io.jpress.core.MyDruidStatViewHandler.handle(MyDruidStatViewHandler.java:43)
    at io.jpress.core.cache.ActionCacheHandler.handle(ActionCacheHandler.java:84)
    at io.jpress.core.JHandler.handle(JHandler.java:81)
    at io.jpress.core.cache.ActionCacheHandler.handle(ActionCacheHandler.java:84)
    at com.jfinal.core.JFinalFilter.doFilter(JFinalFilter.java:72)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)

内容页图片路径问题

首先我的项目是tomcat的webapps下的blog文件夹,
项目部署到tomcat后,必须配置tomcat的主页为这个项目,才能在内容页正确显示上传的头像
查看网页源码可以看到图片路径是web容器根目录+attachment......,显然中间没有blog这个项目文件夹名,当我把tomcat的主页配置成这个项目时,图片就正常显示了。这应该是个小BUG吧

后台管理系统出错

  1. 环境-WIN10(64)-JDK7
  2. 版本-最新版本
  3. 问题-登录后台后点击[撰写文章]及其它二级栏目都报错,错误如下:

2016-09-01 00:43:55
[ERROR]-[Thread: btpool0-4]-[freemarker.log._Log4jLoggerFactory$Log4jLogger.error()]: Error executing FreeMarker template
FreeMarker template error:
For "." left-hand operand: Expected a hash, but this has evaluated to a directive (wrapper: io.jpress.ui.freemarker.tag.ContentTag):
==> content [in template "WEB-INF/admin/content/_edit_default_include.html" at line 7, column 70]
FTL stack trace ("~" means nesting-related):
- Failed at: ${(content.module)!m!} [in template "WEB-INF/admin/content/_edit_default_include.html" at line 7, column 67]
- Reached through: #include include [in template "WEB-INF/admin/content/edit.html" at line 195, column 1]
~ Reached through: #nested [in template "WEB-INF/admin/_inc/_layout.html" in macro "layout" at line 46, column 9]

~ Reached through: @layout active_id=p child_active_id=c [in template "WEB-INF/admin/content/edit.html" at line 194, column 1]

Java stack trace (for programmers):

freemarker.core.NonHashException: [... Exception message was already printed; see it above ...]
at freemarker.core.Dot._eval(Dot.java:45)
at freemarker.core.Expression.eval(Expression.java:78)
at freemarker.core.ParentheticalExpression._eval(ParentheticalExpression.java:44)
at freemarker.core.Expression.eval(Expression.java:78)
at freemarker.core.DefaultToExpression._eval(DefaultToExpression.java:73)
at freemarker.core.Expression.eval(Expression.java:78)
at freemarker.core.Expression.evalAndCoerceToString(Expression.java:82)
at freemarker.core.DollarVariable.accept(DollarVariable.java:41)
at freemarker.core.Environment.visit(Environment.java:324)
at freemarker.core.MixedContent.accept(MixedContent.java:54)
at freemarker.core.Environment.visit(Environment.java:324)
at freemarker.core.Environment.include(Environment.java:2072)
at freemarker.core.Include.accept(Include.java:167)
at freemarker.core.Environment.visit(Environment.java:324)
at freemarker.core.Environment.invokeNestedContent(Environment.java:546)
at freemarker.core.BodyInstruction.accept(BodyInstruction.java:56)
at freemarker.core.Environment.visit(Environment.java:324)
at freemarker.core.MixedContent.accept(MixedContent.java:54)
at freemarker.core.Environment.visit(Environment.java:324)
at freemarker.core.Macro$Context.runMacro(Macro.java:184)
at freemarker.core.Environment.invoke(Environment.java:701)
at freemarker.core.UnifiedCall.accept(UnifiedCall.java:84)
at freemarker.core.Environment.visit(Environment.java:324)
at freemarker.core.MixedContent.accept(MixedContent.java:54)
at freemarker.core.Environment.visit(Environment.java:324)
at freemarker.core.Environment.process(Environment.java:302)
at freemarker.template.Template.process(Template.java:325)
at com.jfinal.render.FreeMarkerRender.render(FreeMarkerRender.java:145)
at io.jpress.core.render.JFreemarkerRender.render(JFreemarkerRender.java:54)
at com.jfinal.core.ActionHandler.handle(ActionHandler.java:97)
at io.jpress.core.MyDruidStatViewHandler.handle(MyDruidStatViewHandler.java:43)
at io.jpress.core.cache.ActionCacheHandler.handle(ActionCacheHandler.java:49)
at io.jpress.core.JHandler.handle(JHandler.java:81)
at io.jpress.core.cache.ActionCacheHandler.handle(ActionCacheHandler.java:49)
at com.jfinal.core.JFinalFilter.doFilter(JFinalFilter.java:72)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)
at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:726)
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:206)
at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at org.mortbay.jetty.Server.handle(Server.java:324)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505)
at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:829)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:514)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)
at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395)
at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:488)

2016-09-01 00:43:55
[ERROR]-[Thread: btpool0-4]-[com.jfinal.core.ActionHandler.handle()]: /admin/content/edit?m=article&p=article&c=edit
com.jfinal.render.RenderException: freemarker.core.NonHashException: For "." left-hand operand: Expected a hash, but this has evaluated to a directive (wrapper: io.jpress.ui.freemarker.tag.ContentTag):
==> content [in template "WEB-INF/admin/content/_edit_default_include.html" at line 7, column 70]


FTL stack trace ("~" means nesting-related):
- Failed at: ${(content.module)!m!} [in template "WEB-INF/admin/content/_edit_default_include.html" at line 7, column 67]
- Reached through: #include include [in template "WEB-INF/admin/content/edit.html" at line 195, column 1]
~ Reached through: #nested [in template "WEB-INF/admin/_inc/_layout.html" in macro "layout" at line 46, column 9]

~ Reached through: @layout active_id=p child_active_id=c [in template "WEB-INF/admin/content/edit.html" at line 194, column 1]

at com.jfinal.render.FreeMarkerRender.render(FreeMarkerRender.java:147)
at io.jpress.core.render.JFreemarkerRender.render(JFreemarkerRender.java:54)
at com.jfinal.core.ActionHandler.handle(ActionHandler.java:97)
at io.jpress.core.MyDruidStatViewHandler.handle(MyDruidStatViewHandler.java:43)
at io.jpress.core.cache.ActionCacheHandler.handle(ActionCacheHandler.java:49)
at io.jpress.core.JHandler.handle(JHandler.java:81)
at io.jpress.core.cache.ActionCacheHandler.handle(ActionCacheHandler.java:49)
at com.jfinal.core.JFinalFilter.doFilter(JFinalFilter.java:72)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)
at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:726)
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:206)
at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at org.mortbay.jetty.Server.handle(Server.java:324)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505)
at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:829)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:514)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)
at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395)
at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:488)

Caused by: freemarker.core.NonHashException: For "." left-hand operand: Expected a hash, but this has evaluated to a directive (wrapper: io.jpress.ui.freemarker.tag.ContentTag):
==> content [in template "WEB-INF/admin/content/_edit_default_include.html" at line 7, column 70]


FTL stack trace ("~" means nesting-related):
- Failed at: ${(content.module)!m!} [in template "WEB-INF/admin/content/_edit_default_include.html" at line 7, column 67]
- Reached through: #include include [in template "WEB-INF/admin/content/edit.html" at line 195, column 1]
~ Reached through: #nested [in template "WEB-INF/admin/_inc/_layout.html" in macro "layout" at line 46, column 9]

~ Reached through: @layout active_id=p child_active_id=c [in template "WEB-INF/admin/content/edit.html" at line 194, column 1]

at freemarker.core.Dot._eval(Dot.java:45)
at freemarker.core.Expression.eval(Expression.java:78)
at freemarker.core.ParentheticalExpression._eval(ParentheticalExpression.java:44)
at freemarker.core.Expression.eval(Expression.java:78)
at freemarker.core.DefaultToExpression._eval(DefaultToExpression.java:73)
at freemarker.core.Expression.eval(Expression.java:78)
at freemarker.core.Expression.evalAndCoerceToString(Expression.java:82)
at freemarker.core.DollarVariable.accept(DollarVariable.java:41)
at freemarker.core.Environment.visit(Environment.java:324)
at freemarker.core.MixedContent.accept(MixedContent.java:54)
at freemarker.core.Environment.visit(Environment.java:324)
at freemarker.core.Environment.include(Environment.java:2072)
at freemarker.core.Include.accept(Include.java:167)
at freemarker.core.Environment.visit(Environment.java:324)
at freemarker.core.Environment.invokeNestedContent(Environment.java:546)
at freemarker.core.BodyInstruction.accept(BodyInstruction.java:56)
at freemarker.core.Environment.visit(Environment.java:324)
at freemarker.core.MixedContent.accept(MixedContent.java:54)
at freemarker.core.Environment.visit(Environment.java:324)
at freemarker.core.Macro$Context.runMacro(Macro.java:184)
at freemarker.core.Environment.invoke(Environment.java:701)
at freemarker.core.UnifiedCall.accept(UnifiedCall.java:84)
at freemarker.core.Environment.visit(Environment.java:324)
at freemarker.core.MixedContent.accept(MixedContent.java:54)
at freemarker.core.Environment.visit(Environment.java:324)
at freemarker.core.Environment.process(Environment.java:302)
at freemarker.template.Template.process(Template.java:325)
at com.jfinal.render.FreeMarkerRender.render(FreeMarkerRender.java:145)
... 24 more

大家运行后有没有不能使用数据库的问题,具体如下

/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/bin/java "-javaagent:/Applications/IntelliJ IDEA.app/Contents/lib/idea_rt.jar=55694:/Applications/IntelliJ IDEA.app/Contents/bin" -Dfile.encoding=UTF-8 -classpath /Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/charsets.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/deploy.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/ext/cldrdata.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/ext/dnsns.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/ext/jaccess.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/ext/jfxrt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/ext/localedata.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/ext/nashorn.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/ext/sunec.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/ext/sunjce_provider.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/ext/sunpkcs11.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/ext/zipfs.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/javaws.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/jce.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/jfr.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/jfxswt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/jsse.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/management-agent.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/plugin.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/resources.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/rt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/lib/ant-javafx.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/lib/dt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/lib/javafx-mx.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/lib/jconsole.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/lib/packager.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/lib/sa-jdi.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/lib/tools.jar:/Users/xingxing/Downloads/jpress-master-2/target/classes:/Users/xingxing/maven/maven_repo/io/jboot/jboot/1.0-beta5/jboot-1.0-beta5.jar:/Users/xingxing/maven/maven_repo/com/jfinal/cos/2017.5/cos-2017.5.jar:/Users/xingxing/maven/maven_repo/com/jfinal/jfinal-weixin/1.9/jfinal-weixin-1.9.jar:/Users/xingxing/maven/maven_repo/com/zaxxer/HikariCP/2.6.3/HikariCP-2.6.3.jar:/Users/xingxing/maven/maven_repo/mysql/mysql-connector-java/5.1.42/mysql-connector-java-5.1.42.jar:/Users/xingxing/maven/maven_repo/javax/servlet/javax.servlet-api/3.1.0/javax.servlet-api-3.1.0.jar:/Users/xingxing/maven/maven_repo/io/undertow/undertow-core/1.4.18.Final/undertow-core-1.4.18.Final.jar:/Users/xingxing/maven/maven_repo/org/jboss/logging/jboss-logging/3.2.1.Final/jboss-logging-3.2.1.Final.jar:/Users/xingxing/maven/maven_repo/org/jboss/xnio/xnio-api/3.3.8.Final/xnio-api-3.3.8.Final.jar:/Users/xingxing/maven/maven_repo/org/jboss/xnio/xnio-nio/3.3.8.Final/xnio-nio-3.3.8.Final.jar:/Users/xingxing/maven/maven_repo/io/undertow/undertow-servlet/1.4.18.Final/undertow-servlet-1.4.18.Final.jar:/Users/xingxing/maven/maven_repo/org/jboss/spec/javax/servlet/jboss-servlet-api_3.1_spec/1.0.0.Final/jboss-servlet-api_3.1_spec-1.0.0.Final.jar:/Users/xingxing/maven/maven_repo/org/jboss/spec/javax/annotation/jboss-annotations-api_1.2_spec/1.0.0.Final/jboss-annotations-api_1.2_spec-1.0.0.Final.jar:/Users/xingxing/maven/maven_repo/com/weibo/motan-core/0.3.1/motan-core-0.3.1.jar:/Users/xingxing/maven/maven_repo/commons-pool/commons-pool/1.6/commons-pool-1.6.jar:/Users/xingxing/maven/maven_repo/com/codahale/metrics/metrics-core/3.0.1/metrics-core-3.0.1.jar:/Users/xingxing/maven/maven_repo/com/google/guava/guava/18.0/guava-18.0.jar:/Users/xingxing/maven/maven_repo/com/squareup/javapoet/1.8.0/javapoet-1.8.0.jar:/Users/xingxing/maven/maven_repo/org/apache/commons/commons-lang3/3.1/commons-lang3-3.1.jar:/Users/xingxing/maven/maven_repo/commons-codec/commons-codec/1.4/commons-codec-1.4.jar:/Users/xingxing/maven/maven_repo/com/weibo/motan-transport-netty/0.3.1/motan-transport-netty-0.3.1.jar:/Users/xingxing/maven/maven_repo/org/jboss/netty/netty/3.2.5.Final/netty-3.2.5.Final.jar:/Users/xingxing/maven/maven_repo/com/weibo/motan-registry-consul/0.3.1/motan-registry-consul-0.3.1.jar:/Users/xingxing/maven/maven_repo/com/ecwid/consul/consul-api/1.2.1/consul-api-1.2.1.jar:/Users/xingxing/maven/maven_repo/com/google/code/gson/gson/2.3/gson-2.3.jar:/Users/xingxing/maven/maven_repo/org/apache/httpcomponents/httpcore/4.4.5/httpcore-4.4.5.jar:/Users/xingxing/maven/maven_repo/org/apache/httpcomponents/httpclient/4.5.2/httpclient-4.5.2.jar:/Users/xingxing/maven/maven_repo/commons-logging/commons-logging/1.2/commons-logging-1.2.jar:/Users/xingxing/maven/maven_repo/org/slf4j/slf4j-api/1.7.25/slf4j-api-1.7.25.jar:/Users/xingxing/maven/maven_repo/com/alibaba/fastjson/1.2.36/fastjson-1.2.36.jar:/Users/xingxing/maven/maven_repo/redis/clients/jedis/2.9.0/jedis-2.9.0.jar:/Users/xingxing/maven/maven_repo/org/apache/commons/commons-pool2/2.4.2/commons-pool2-2.4.2.jar:/Users/xingxing/maven/maven_repo/de/ruedigermoeller/fst/2.52/fst-2.52.jar:/Users/xingxing/maven/maven_repo/com/fasterxml/jackson/core/jackson-core/2.8.8/jackson-core-2.8.8.jar:/Users/xingxing/maven/maven_repo/org/javassist/javassist/3.21.0-GA/javassist-3.21.0-GA.jar:/Users/xingxing/maven/maven_repo/org/objenesis/objenesis/2.5.1/objenesis-2.5.1.jar:/Users/xingxing/maven/maven_repo/org/jsoup/jsoup/1.10.3/jsoup-1.10.3.jar:/Users/xingxing/maven/maven_repo/net/sf/ehcache/ehcache/2.10.4/ehcache-2.10.4.jar:/Users/xingxing/maven/maven_repo/com/netflix/hystrix/hystrix-core/1.5.12/hystrix-core-1.5.12.jar:/Users/xingxing/maven/maven_repo/com/netflix/archaius/archaius-core/0.4.1/archaius-core-0.4.1.jar:/Users/xingxing/maven/maven_repo/commons-configuration/commons-configuration/1.8/commons-configuration-1.8.jar:/Users/xingxing/maven/maven_repo/commons-lang/commons-lang/2.6/commons-lang-2.6.jar:/Users/xingxing/maven/maven_repo/io/reactivex/rxjava/1.2.0/rxjava-1.2.0.jar:/Users/xingxing/maven/maven_repo/org/hdrhistogram/HdrHistogram/2.1.9/HdrHistogram-2.1.9.jar:/Users/xingxing/maven/maven_repo/com/netflix/hystrix/hystrix-metrics-event-stream/1.5.12/hystrix-metrics-event-stream-1.5.12.jar:/Users/xingxing/maven/maven_repo/com/netflix/hystrix/hystrix-serialization/1.5.12/hystrix-serialization-1.5.12.jar:/Users/xingxing/maven/maven_repo/com/fasterxml/jackson/module/jackson-module-afterburner/2.7.5/jackson-module-afterburner-2.7.5.jar:/Users/xingxing/maven/maven_repo/com/fasterxml/jackson/core/jackson-annotations/2.7.5/jackson-annotations-2.7.5.jar:/Users/xingxing/maven/maven_repo/com/netflix/hystrix/hystrix-codahale-metrics-publisher/1.5.12/hystrix-codahale-metrics-publisher-1.5.12.jar:/Users/xingxing/maven/maven_repo/io/dropwizard/metrics/metrics-core/3.2.2/metrics-core-3.2.2.jar:/Users/xingxing/maven/maven_repo/io/dropwizard/metrics/metrics-servlets/3.2.2/metrics-servlets-3.2.2.jar:/Users/xingxing/maven/maven_repo/io/dropwizard/metrics/metrics-healthchecks/3.2.2/metrics-healthchecks-3.2.2.jar:/Users/xingxing/maven/maven_repo/io/dropwizard/metrics/metrics-json/3.2.2/metrics-json-3.2.2.jar:/Users/xingxing/maven/maven_repo/io/dropwizard/metrics/metrics-jvm/3.2.2/metrics-jvm-3.2.2.jar:/Users/xingxing/maven/maven_repo/com/papertrail/profiler/1.0.2/profiler-1.0.2.jar:/Users/xingxing/maven/maven_repo/joda-time/joda-time/2.9.1/joda-time-2.9.1.jar:/Users/xingxing/maven/maven_repo/com/fasterxml/jackson/core/jackson-databind/2.6.6/jackson-databind-2.6.6.jar:/Users/xingxing/maven/maven_repo/com/google/inject/guice/4.1.0/guice-4.1.0.jar:/Users/xingxing/maven/maven_repo/javax/inject/javax.inject/1/javax.inject-1.jar:/Users/xingxing/maven/maven_repo/aopalliance/aopalliance/1.0/aopalliance-1.0.jar:/Users/xingxing/maven/maven_repo/org/apache/shiro/shiro-core/1.3.2/shiro-core-1.3.2.jar:/Users/xingxing/maven/maven_repo/commons-beanutils/commons-beanutils/1.8.3/commons-beanutils-1.8.3.jar:/Users/xingxing/maven/maven_repo/org/apache/shiro/shiro-web/1.3.2/shiro-web-1.3.2.jar:/Users/xingxing/maven/maven_repo/cglib/cglib-nodep/3.2.5/cglib-nodep-3.2.5.jar:/Users/xingxing/maven/maven_repo/ch/qos/logback/logback-core/1.1.11/logback-core-1.1.11.jar:/Users/xingxing/maven/maven_repo/ch/qos/logback/logback-classic/1.1.11/logback-classic-1.1.11.jar io.jpress.Starter
objc[1685]: Class JavaLaunchHelper is implemented in both /Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/bin/java (0x10b4614c0) and /Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/libinstrument.dylib (0x10b53d4e0). One of the two will be used. Which one is undefined.


| || \ / \ / \ | |
|__ || o )| || || |
| || || O || O ||| ||
/ | || O || || | | |
\ ` || || || | | |
_
||| _/ _/ |__|

JbootConfig {mode='dev', bannerEnable='true', bannerFile='banner.txt', cron4jEnable='true', cron4jFile='cron4j.properties', jfinalConfig='io.jboot.web.JbootAppConfig', serializer='fst2'}
JbootServerConfig {type='undertow', host='0.0.0.0', port='8090', contextPath='/'}
2017-08-16 15:08:34.067 INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
2017-08-16 15:08:37.135 INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed.
Can not create Table object, maybe the table mapping is not exists.
2017-08-16 15:08:37.270 ERROR com.jfinal.core.Config - Plugin start error: com.jfinal.plugin.activerecord.ActiveRecordPlugin.
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'jpress.mapping' doesn't exist
com.jfinal.plugin.activerecord.ActiveRecordException: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'jpress.mapping' doesn't exist
at com.jfinal.plugin.activerecord.TableBuilder.build(TableBuilder.java:55)
at com.jfinal.plugin.activerecord.ActiveRecordPlugin.start(ActiveRecordPlugin.java:226)
at com.jfinal.core.Config.startPlugins(Config.java:107)
at com.jfinal.core.Config.configJFinal(Config.java:53)
at com.jfinal.core.JFinal.init(JFinal.java:63)
at com.jfinal.core.JFinalFilter.init(JFinalFilter.java:49)
at io.undertow.servlet.core.LifecyleInterceptorInvocation.proceed(LifecyleInterceptorInvocation.java:111)
at io.undertow.servlet.core.ManagedFilter.createFilter(ManagedFilter.java:80)
at io.undertow.servlet.core.DeploymentManagerImpl$2.call(DeploymentManagerImpl.java:571)
at io.undertow.servlet.core.DeploymentManagerImpl$2.call(DeploymentManagerImpl.java:536)
at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:42)
at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
at io.undertow.servlet.core.DeploymentManagerImpl.start(DeploymentManagerImpl.java:578)
at io.jboot.server.undertow.UnderTowServer.initUndertowServer(UnderTowServer.java:89)
at io.jboot.server.undertow.UnderTowServer.start(UnderTowServer.java:202)
at io.jboot.Jboot.startServer(Jboot.java:170)
at io.jboot.Jboot.start(Jboot.java:142)
at io.jboot.Jboot.run(Jboot.java:88)
at io.jpress.Starter.main(Starter.java:11)
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'jpress.mapping' doesn't exist
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)
at com.mysql.jdbc.Util.getInstance(Util.java:408)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:943)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3973)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3909)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2527)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2680)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2486)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2444)
at com.mysql.jdbc.StatementImpl.executeQuery(StatementImpl.java:1381)
at com.zaxxer.hikari.pool.ProxyStatement.executeQuery(ProxyStatement.java:108)
at com.zaxxer.hikari.pool.HikariProxyStatement.executeQuery(HikariProxyStatement.java)
at com.jfinal.plugin.activerecord.TableBuilder.doBuild(TableBuilder.java:71)
at com.jfinal.plugin.activerecord.TableBuilder.build(TableBuilder.java:47)
... 18 common frames omitted
java.lang.RuntimeException: Plugin start error: com.jfinal.plugin.activerecord.ActiveRecordPlugin.
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'jpress.mapping' doesn't exist
at com.jfinal.core.Config.startPlugins(Config.java:116)
at com.jfinal.core.Config.configJFinal(Config.java:53)
at com.jfinal.core.JFinal.init(JFinal.java:63)
at com.jfinal.core.JFinalFilter.init(JFinalFilter.java:49)
at io.undertow.servlet.core.LifecyleInterceptorInvocation.proceed(LifecyleInterceptorInvocation.java:111)
at io.undertow.servlet.core.ManagedFilter.createFilter(ManagedFilter.java:80)
at io.undertow.servlet.core.DeploymentManagerImpl$2.call(DeploymentManagerImpl.java:571)
at io.undertow.servlet.core.DeploymentManagerImpl$2.call(DeploymentManagerImpl.java:536)
at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:42)
at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
at io.undertow.servlet.core.DeploymentManagerImpl.start(DeploymentManagerImpl.java:578)
at io.jboot.server.undertow.UnderTowServer.initUndertowServer(UnderTowServer.java:89)
at io.jboot.server.undertow.UnderTowServer.start(UnderTowServer.java:202)
at io.jboot.Jboot.startServer(Jboot.java:170)
at io.jboot.Jboot.start(Jboot.java:142)
at io.jboot.Jboot.run(Jboot.java:88)
at io.jpress.Starter.main(Starter.java:11)
Caused by: com.jfinal.plugin.activerecord.ActiveRecordException: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'jpress.mapping' doesn't exist
at com.jfinal.plugin.activerecord.TableBuilder.build(TableBuilder.java:55)
at com.jfinal.plugin.activerecord.ActiveRecordPlugin.start(ActiveRecordPlugin.java:226)
at com.jfinal.core.Config.startPlugins(Config.java:107)
... 16 more
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'jpress.mapping' doesn't exist
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)
at com.mysql.jdbc.Util.getInstance(Util.java:408)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:943)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3973)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3909)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2527)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2680)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2486)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2444)
at com.mysql.jdbc.StatementImpl.executeQuery(StatementImpl.java:1381)
at com.zaxxer.hikari.pool.ProxyStatement.executeQuery(ProxyStatement.java:108)
at com.zaxxer.hikari.pool.HikariProxyStatement.executeQuery(HikariProxyStatement.java)
at com.jfinal.plugin.activerecord.TableBuilder.doBuild(TableBuilder.java:71)
at com.jfinal.plugin.activerecord.TableBuilder.build(TableBuilder.java:47)
... 18 more
八月 16, 2017 3:08:37 下午 io.jboot.server.undertow.UnderTowServer error
严重: java.lang.IllegalArgumentException: UT000008: Handler cannot be null
java.lang.IllegalArgumentException: UT000008: Handler cannot be null
at io.undertow.Handlers.handlerNotNull(Handlers.java:583)
at io.undertow.server.handlers.PathHandler.addPrefixPath(PathHandler.java:131)
at io.jboot.server.undertow.UnderTowServer.initUndertowServer(UnderTowServer.java:97)
at io.jboot.server.undertow.UnderTowServer.start(UnderTowServer.java:202)
at io.jboot.Jboot.startServer(Jboot.java:170)
at io.jboot.Jboot.start(Jboot.java:142)
at io.jboot.Jboot.run(Jboot.java:88)
at io.jpress.Starter.main(Starter.java:11)

Exception in thread "main" java.lang.NullPointerException
at io.jboot.server.undertow.UnderTowServer.stop(UnderTowServer.java:228)
at io.jboot.server.undertow.UnderTowServer.start(UnderTowServer.java:206)
at io.jboot.Jboot.startServer(Jboot.java:170)
at io.jboot.Jboot.start(Jboot.java:142)
at io.jboot.Jboot.run(Jboot.java:88)
at io.jpress.Starter.main(Starter.java:11)

Process finished with exit code 1

我使用docker部署时候的问题

我使用docker部署每次重启之后都需要重新设置数据库,这个配置进去install页面是怎么配置的,为什么我每次都需要重配呢?

使用NextContentTag和PreviousContentTag标签的问题

<@jp.next>
下一篇:${content.title}
/@jp.next
<@jp.previous>
上一篇:${content.title}
/@jp.previous
按照DOC.md介绍的方式,直接将上面两段加入详细容详情页面(content.html的扩展页面content_XXX.html)。但是界面上显示的是【上一篇:<当前文章的标题>】【下一篇:<当前文章的标题>】,点击连接不管上篇下篇跳转的都是当前文章。

**请问:**是不是我的用法不对?这个地方(<@jp.next> 和<@jp.previous>)是不是还需要加入什么参数,我找了整个DOC.md没有找到相关的说明。

页面有特殊字符>时,显示不对

在页面中 输入 l >22 这个,在body 和meta之间有个这样的显示 “<body class="blog-body">22">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

当为普通文章输入 l >22 这个没问题。

image

maven compile 报错 Could not find artifact io.jboot:jboot:jar:1.0-beta5-SNAPSHOT

[INFO] [INFO] ------------------------------------------------------------------------ [INFO] Building io.jpress 1.0-SNAPSHOT [INFO] ------------------------------------------------------------------------ [WARNING] The POM for io.jboot:jboot:jar:1.0-beta5-SNAPSHOT is missing, no dependency information available [INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE [INFO] ------------------------------------------------------------------------ [INFO] Total time: 0.193 s [INFO] Finished at: 2017-08-13T14:54:52+08:00 [INFO] Final Memory: 7M/102M [INFO] ------------------------------------------------------------------------ [ERROR] Failed to execute goal on project io.jpress: Could not resolve dependencies for project jpress:io.jpress:jar:1.0-SNAPSHOT: Could not find artifact io.jboot:jboot:jar:1.0-beta5-SNAPSHOT -> [Help 1] [ERROR] [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. [ERROR] Re-run Maven using the -X switch to enable full debug logging. [ERROR] [ERROR] For more information about the errors and possible solutions, please read the following articles: [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/DependencyResolutionException
打包报错!!!!

mvn package error

[ERROR] Failed to execute goal on project jpress-web: Could not resolve dependencies for project io.jpress:jpress-web:war:1.0: The following artifacts could not be resolved: io.jpress:jpress-utils:jar:1.0, io.jpress:jpress-db-api:jar:1.0, io.jpress:jpress-db-mysql:jar:1.0, io.jpress:jpress-oauth2:jar:1.0, io.jpress:jpress-message:jar:1.0, io.jpress:jpress-search-api:jar:1.0, io.jpress:jpress-search-dbsimple:jar:1.0, io.jpress:jpress-consts:jar:1.0, io.jpress:jpress-model:jar: 0, io.jpress:jpress-addon:jar:1.0, io.jpress:jpress-web-template-jblog:war:1.0, io.jpress:jpress-web-template-the3:war:1.0: Could not find artifact io.jpress:jpress-utils:jar:1.0 in central (https://repo.maven.apache.org/maven2) -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/DependencyResolutionException

第三方QQ登录认证返回后拉取用户信息有错误

类io.jpress.oauth2.connector.QQConnector

78行代码
return httpString.substring(httpString.lastIndexOf(":") + 2, httpString.lastIndexOf("\"") - 1);
应改为
return httpString.substring(httpString.lastIndexOf(":") + 2, httpString.lastIndexOf("\""));

109行代码
user.setOpenId(json.getString("openid"));
应改为
user.setOpenId(openId);

消息驱动不能shutdown

每次通过tomcat shutdown.sh命令后,虽然tomcat服务不能正常访问了,但是ps -ef | grep java 后,发现tomcat对应的java进程未随web容器关闭而销毁,进而存在僵尸java进程。

后台模板切换错误

切换THE3模板以后,系统前台无法显示。错误如下:

render : template is "THE3",template html is "index.html"

JFinal action report -------- 2016-09-02 00:00:28 ------------------------------
Controller : io.jpress.front.controller.IndexController.(IndexController.java:1)
Method : index
Interceptor : io.jpress.core.interceptor.JI18nInterceptor.(JI18nInterceptor.java:1)
io.jpress.interceptor.AdminInterceptor.(AdminInterceptor.java:1)

io.jpress.core.interceptor.HookInterceptor.(HookInterceptor.java:1)

2016-09-02 00:00:28
[ERROR]-[Thread: btpool0-5]-[freemarker.log._Log4jLoggerFactory$Log4jLogger.error()]: Error executing FreeMarker template
FreeMarker template error:
The following has evaluated to null or missing:
==> menus [in template "templates/the3/_inc/_layout.html" at line 43, column 43]


Tip: If the failing expression is known to be legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??


FTL stack trace ("~" means nesting-related):
- Failed at: @menus [in template "templates/the3/_inc/_layout.html" in macro "layout" at line 43, column 41]

- Reached through: @layout [in template "templates/the3/index.html" at line 13, column 1]

Java stack trace (for programmers):

freemarker.core.InvalidReferenceException: [... Exception message was already printed; see it above ...]
at freemarker.core.InvalidReferenceException.getInstance(InvalidReferenceException.java:131)
at freemarker.core.UnifiedCall.accept(UnifiedCall.java:111)
at freemarker.core.Environment.visit(Environment.java:324)
at freemarker.core.MixedContent.accept(MixedContent.java:54)
at freemarker.core.Environment.visit(Environment.java:324)
at freemarker.core.Macro$Context.runMacro(Macro.java:184)
at freemarker.core.Environment.invoke(Environment.java:701)
at freemarker.core.UnifiedCall.accept(UnifiedCall.java:84)
at freemarker.core.Environment.visit(Environment.java:324)
at freemarker.core.MixedContent.accept(MixedContent.java:54)
at freemarker.core.Environment.visit(Environment.java:324)
at freemarker.core.Environment.process(Environment.java:302)
at freemarker.template.Template.process(Template.java:325)
at io.jpress.core.render.JFreemarkerRender.getHtmlContent(JFreemarkerRender.java:114)
at io.jpress.core.render.JFreemarkerRender.render(JFreemarkerRender.java:94)
at com.jfinal.core.ActionHandler.handle(ActionHandler.java:97)
at io.jpress.core.MyDruidStatViewHandler.handle(MyDruidStatViewHandler.java:43)
at io.jpress.core.cache.ActionCacheHandler.handle(ActionCacheHandler.java:86)
at io.jpress.core.JHandler.handle(JHandler.java:81)
at io.jpress.core.cache.ActionCacheHandler.handle(ActionCacheHandler.java:86)
at com.jfinal.core.JFinalFilter.doFilter(JFinalFilter.java:72)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)
at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:726)
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:206)
at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at org.mortbay.jetty.Server.handle(Server.java:324)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505)
at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:829)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:514)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)
at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395)
at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:488)

2016-09-02 00:00:28
[ERROR]-[Thread: btpool0-5]-[com.jfinal.core.ActionHandler.handle()]: /
com.jfinal.render.RenderException: com.jfinal.render.RenderException: freemarker.core.InvalidReferenceException: The following has evaluated to null or missing:
==> menus [in template "templates/the3/_inc/_layout.html" at line 43, column 43]


Tip: If the failing expression is known to be legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??


FTL stack trace ("~" means nesting-related):
- Failed at: @menus [in template "templates/the3/_inc/_layout.html" in macro "layout" at line 43, column 41]

- Reached through: @layout [in template "templates/the3/index.html" at line 13, column 1]

at io.jpress.core.render.JFreemarkerRender.render(JFreemarkerRender.java:101)
at com.jfinal.core.ActionHandler.handle(ActionHandler.java:97)
at io.jpress.core.MyDruidStatViewHandler.handle(MyDruidStatViewHandler.java:43)
at io.jpress.core.cache.ActionCacheHandler.handle(ActionCacheHandler.java:86)
at io.jpress.core.JHandler.handle(JHandler.java:81)
at io.jpress.core.cache.ActionCacheHandler.handle(ActionCacheHandler.java:86)
at com.jfinal.core.JFinalFilter.doFilter(JFinalFilter.java:72)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)
at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:726)
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:206)
at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at org.mortbay.jetty.Server.handle(Server.java:324)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505)
at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:829)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:514)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)
at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395)
at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:488)

Caused by: com.jfinal.render.RenderException: freemarker.core.InvalidReferenceException: The following has evaluated to null or missing:
==> menus [in template "templates/the3/_inc/_layout.html" at line 43, column 43]


Tip: If the failing expression is known to be legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??


FTL stack trace ("~" means nesting-related):
- Failed at: @menus [in template "templates/the3/_inc/_layout.html" in macro "layout" at line 43, column 41]

- Reached through: @layout [in template "templates/the3/index.html" at line 13, column 1]

at io.jpress.core.render.JFreemarkerRender.getHtmlContent(JFreemarkerRender.java:118)
at io.jpress.core.render.JFreemarkerRender.render(JFreemarkerRender.java:94)
... 23 more

Caused by: freemarker.core.InvalidReferenceException: The following has evaluated to null or missing:
==> menus [in template "templates/the3/_inc/_layout.html" at line 43, column 43]


Tip: If the failing expression is known to be legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??


FTL stack trace ("~" means nesting-related):
- Failed at: @menus [in template "templates/the3/_inc/_layout.html" in macro "layout" at line 43, column 41]

- Reached through: @layout [in template "templates/the3/index.html" at line 13, column 1]

at freemarker.core.InvalidReferenceException.getInstance(InvalidReferenceException.java:131)
at freemarker.core.UnifiedCall.accept(UnifiedCall.java:111)
at freemarker.core.Environment.visit(Environment.java:324)
at freemarker.core.MixedContent.accept(MixedContent.java:54)
at freemarker.core.Environment.visit(Environment.java:324)
at freemarker.core.Macro$Context.runMacro(Macro.java:184)
at freemarker.core.Environment.invoke(Environment.java:701)
at freemarker.core.UnifiedCall.accept(UnifiedCall.java:84)
at freemarker.core.Environment.visit(Environment.java:324)
at freemarker.core.MixedContent.accept(MixedContent.java:54)
at freemarker.core.Environment.visit(Environment.java:324)
at freemarker.core.Environment.process(Environment.java:302)
at freemarker.template.Template.process(Template.java:325)
at io.jpress.core.render.JFreemarkerRender.getHtmlContent(JFreemarkerRender.java:114)
... 24 more

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.