【JPress】简介、Linux部署与项目分析

2021SC@SDUSC


目录

一、简介

二、部署

1.安装环境

2.部署步骤

3.解决错误

三、项目分析

1.目录结构

2.jpress架构

3.团队分析与分工


一、简介

JPress 是一个使用 Java 开发的、开源免费的建站神器,灵感来源于 WordPress,目前已经有超过 10w+ 的网站使用 JPress 搭建,其中包括多个政府机构,200+上市公司,中科院、红十字会等。


二、部署

1.安装环境

  • 阿里云学生机

  • 操作系统Ubuntu 20.04.2 LTS x86_64(Py3.7.9)

  • Java环境,JDK 1.8

  • Apache Maven 3.8.2

  • MySQL 5.7.34

  • apache-tomcat-9.0.53

2.部署步骤

  1. 首先保证以上环境都配置好,可以正常运行。

  2. 下载jpress官方的war包,将其放置在tomcat的webapps下,并命名为jpress。可直接放war包,tomcat会帮你解压。

       
  3. 在服务器上启动tomcat,此时访问 ip:8080 ,访问成功,说明tomcat启动成功。  

  4. 继续访问 ip:8080/jpress ,访问成功。  

3.解决错误

但是访问 ip:8080/jpress/admin/login 的时候,出现错误——jpress后台管理系统的验证码显示不出来。 (注意:以下配图是已修复错误的截图,未修复之前验证码无法正常显示)

排错步骤如下:

  • F12,捉个包,发现有一个 captcha包 是500错误,报错信息为

    java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11Graphi

    这应该是初始化Java的一个图形界面包失败,导致二维码显示不出来。

  • 修改步骤如下:

    • 打开tomcat的配置文件 ./bin/catalina.sh,修改里面的数据。

    • 找到如下的代码

      "$_RUNJAVA" $JAVA_OPTS $CATALINA_OPTS \
      -Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" -classpath "$CLASSPATH" \
      -Djava.security.manager \
      -Djava.security.policy=="$CATALINA_BASE"/conf/catalina.policy \
      -Dcatalina.base="$CATALINA_BASE" \
      -Dcatalina.home="$CATALINA_HOME" \
      -Djava.io.tmpdir="$CATALINA_TMPDIR" \
    • 在如上代码后面添加以下

      -Djava.awt.headless=true \

      意思大概是手动配置初始化这个图形界面包

    • 重新启动tomcat。

  • 打开 ip:8080/jpress/admin/login ,查看配置是否生效。  

  • 项目二维码正常显示,成功!捉包时也没有500错误了。于是顺利登录jpress后台管理界面,开始jpress之旅。

三、项目分析

1.目录结构

目录备注
codegen代码生成器,开发的时候用与生成maven模块代码,运行时用不到该模块
doc文档存放目录
jpress-commons工具类和公用代码
jpress-coreJPress的核心代码
jpress-modelJPress非业务实体类
jpress-serviceJPress非业务 service 接口定义
jpress-service-providerJPress非业务 service 接口实现
jpress-templateJPress的html模板
jpress-webJPress非业务的web处理代码,包含了 Controller、指令等
module-article文章模块代码
module-page页面模块代码
starterundertow启动模块,开发的时候可以运行里面的 Starter.java 的main方法,编译的时候会 jpress 可执行程序
starter-tomcattomcat 启动模块,编译的时候回生成 war 包,用于放在tomcat部署

2.jpress架构

img

3.团队分析与分工

由于 JPress 是基于 JFinal 和 Jboot 开发的,,在分析 JPress 之前,有必要了解下 JFinal 和 Jboot,特别是 JFinal。Jboot对Jfinal进行了封装,并且增加了很多,通用默认组件配置:数据库、代码生成与封装、微信调用、配置类、定时任务、服务容器等。

团队在Jpress目录总结了以下四个主要核心模块:

  • jpress-core,jpress的核心模块框架

  • module-article:文章模块代码

  • module-page:页面模块代码

  • module-product:产品模块代码

以上四个模块,团队一人负责主要分析一个模块。而这四个模块之外的代码,不是不重要,而是那些东西估计大家都会涉及到(比如common包,估计每个人都要分析一遍),所以剩下的部分就是大家可以一起分析的代码。

除了以上的代码分工,队伍还规定每周进行一次每周线下分享、总结,在团队内部分享自己的成果,让其他模块的同学能了解其他模块,从而更好地认识整个系统。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值