简书 Wwwwei
转载请注明原创出处,谢谢!
前言
学习编程的过程中,阅读源码和进行二次开发是一个非常不错的途径,我们能够学习到很多优秀的技巧和规范。
本文将会介绍一下如何搭建著名开源论坛JForum的二次开发环境。利用JForum我们可以快速搭建一个论坛,并且根据需求进行相应二次开发。
关于JForum
JForum是著名的开源论坛,支持多达数十种的多国语言,其中包括简体中文(管理界面没有完全汉化)。JForum功能强大,界面美观,加上代码结构清晰,而且采用的是BSD授权,不必担心不必要的版权纠纷,是论坛二次开发的绝佳选择。
JForum采用的是自己的MVC框架。
一些准备工作
所用环境
1.JDK:1.8
2.数据库:MySQL 5.7.16
3.服务器:Tomcat 8.5
4.IDE:Eclipse(本文用于举例说明,其余IDE情况类似)
搭建JForum的二次开发环境
一.下载JForum的源码
1.访问JForum官网下载页面(http://jforum.net/download.jsp),下载JForum源码(即Download jforum source code),这里我们选择了2.1.9稳定版本用于说明。
2.将下载的压缩比解压备用。
二.JForum源码导入工程
1.Eclipse中新建一个Dynamic Web Project 项目,File->New->Dynamic Web Project。
2.复制之前解压的源码中src下的net文件夹,粘贴到web项目的src目录下。你会看到很多错误提示,这是缺少依赖的jar文件。
3.开始导入jar相关。复制WEB-INF下的文件,粘贴到web项目的WEB-INF目录下。你会看到原来的错误提示都消失了。
4.接下来导入模板文件夹。复制templates文件夹到web项目的WebContent下,或许你的是叫WebRoot。你会看到有错误提示,不用管它。
5.接下来把install.jsp复制到web项目的WebContent下。整个目录结构就清楚了。目录如下图所示:
三.创建数据库
1.导入完成后,接下来需要创建一个数据库,我们使用mysql作为示例数据库,这里便于说明我创建了一个名称为jforum_db的数据库。
2.创建好数据库之后,我们需要导入jForum的表结构了。它的表结构在WEB-INF下的config文件夹下的database文件夹下,有多种数据库支持,我们使用mysql的,打开mysql文件夹。mysql.properties是程序与数据库连接的一些信息配置;mysql_db_struct.sql这个sql文件是数据库表结构,mysql_data_dump.sql这个sql文件是初始数据;我们在mysql中依次执行mysql_db_struct.sql和mysql_data_dump.sql这2个脚本。
如果运行脚本出现错误,请参考文章下述的 几个注意的地方 章节的第一点。
四.配置文件
1.数据导入成功之后,我们需要配置JForum的数据库连接信息。修改myql.properties文件,修改如图所示的几个地方,数据库连接用户名密码以及数据库名字等。
此外,为了解决中文乱码问题需要在database.connection.string后加入&useUnicode=true&characterEncoding=utf8
2.配置好数据库连接信息以后,我们再修改一下访问路径。右键项目选择Properties,再选择Web Project Settings,修改Context root为jforum,点击Apply后OK。
3.现在我们将项目在Tomcat上运行,进行下一步的配置。访问http://localhost:8080/jforum/install.jsp,你将看到如下页面,将所需内容填写后点击下一步,确认输入的信息无误后,点击开始安装,页面会提示安装成功。
4.这时我们点击进入主页以后会发现还是404页面,因为我们缺少一个首页。
在WebContent下新建一个index.jsp,插入如下内容:
<%
response.setStatus(301);
response.sendRedirect("forums/list.page");
%>
将web.xml中
<welcome-file-list></welcome-file-list>
部分按照如下代码修改:
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
5.停止服务器运行后,删除install.jsp,重新启动项目,再次访问首页。
6.到这里,开源论坛JForum的二次开发环境搭建完成。
几个注意的地方
1.执行脚本的时候发生错误时:将其中的“TYPE=InnoDB”替换为“ENGINE=InnoDB”,然后再执行上面的SQL脚本,就可以正确执行了。
2.语言本地化:将WEB-INF/config/SystemGlobals.properties中
i18n.board.default = zh_CN
3.解决论坛上没有发帖等按钮:将templates/gpl_icons/zh_CN文件夹拷贝至templates/defualt/images下