如何基于产品进行二次开发

我们的产品一般会打包成war包发布,在此文中将会介绍如何使用我们的ZCF开发工具和产品war包进行二次开发

1. 原理

  • 二次开发是在现有产品的功能基础上进行增加、扩展,或者改变部分功能的实现。

  • 产品已有的功能都是按照插件进行分类,单独打包成jar文件,然后再打包在war包中,war包一般是使用zip压缩算法打包,是servlet容器运行部署应用的一种方式,包含了整个应用程序运行所需要的已编译类、配置文件及资源,在部署运行时,servlet容器会自动解压war包,然后加载应用,再由我们框架的类加载器按照依赖顺序加载插件jar包

  • 在开发Servlet容器项目工程时,我们部署运行的程序与war包中的程序结构基本是一致的,所以我们可以将整个war包解压到我们的Servlet容器项目的部署目录中,在项目中就可已引用到war包中的资源和Java类

2. 操作步骤示例

2.1. 新建ZCF Web工程

  • 在ZCP选项卡中取消添加ZCP支持选项(图1)

  • 创建数据库、创建项目

新建ZCF Web工程 

Selection_082

图1. 创建项目、取消添加ZCP支持

创建完成的项目 

1473668076313

图2. 创建的项目结构


2.2. 将war包内容部署到项目目录中

  • 将产品war包解压(图3)

  • 打开项目所在目录(图4)

  • 删除项目目录UI文件夹中的所有文件(图5)

  • 将war解压的内容全部复制到项目目录UI中(图6)

  • 将WEB-INF/plugins/classes下的所有配置文件复制到项目目录JAVA中(图7)

  • 刷新工程(图8)

  • 调整项目的引用类库,将ZCF Preloader引用库删除,添加Web App Libraries,更新JRE引用库,将项目编译级别调整为1.6,然后清理并重新编译项目(图9. 图10)

war包解压目录 

1473672418059

图3. war包解压目录


1473671613421

图4. 项目所在目录

项目所在目录 

1473672554686

图5. 删除项目目录UI中的所有文件

删除项目目录UI中的所有文件 

1473672992716

图6. 将war解压的内容全部复制到项目目录UI中

将war解压的内容全部复制到项目目录UI中 

1473673080336

图7. 将WEB-INF/plugins/classes下的所有配置文件复制到项目目录JAVA中

将WEB-INF/plugins/classes下的所有配置文件复制到项目目录JAVA中刷新工程 

1473673463159

图8. 刷新工程


1473673623943


1473673795355

图9. 图10. 调整项目的引用类库,将ZCF Preloader引用库删除,添加Web App Libraries

调整项目的引用类库2 

2.3. 创建自己的项目插件

  • 创建项目插件,菜单:File -> New -> ZCF插件(图11. 图12) 
    如果提示目标路径不存在,则需要手动在JAVA目录中创建plugins目录

  • 添加插件依赖关系,从而可以在新建的插件中调用其他插件类(图13)

创建ZAS扩展插件 

download

图11. 创建我们的扩展插件,如果目录不存在则需要手动创建


1473674730480

图12. 创建扩展插件完成


1473675624542

图13. 添加依赖插件

添加依赖插件 

3.部署项目

  • 将项目部署到tomcat,在Servers选项卡中选择部署到的tomcat双击,在Modules选项卡中,点击Add External Web Module...按钮,Document base:指向项目的UI目录,Path为项目的访问路径(图14)

  • 如果项目启动时需要初始化表结构及数据需要将Java中的database.xml配置文件删除,然后刷新项目

  • 启动tomcat,通过浏览器访问部署地址(如: http://127.0.0.1:8080/demo/login.zhtml),如果删除了database.xml,则会进入初始化页面,在该页面可以配置数据库连接、初始化表结构及初始数据 如果选择初始化数据库,则该库原来的表被删除重建,所有数据将丢失!,初始化完成后页面会自动重定向到登录页面,这时请将项目目录文件(UI/WEB-INF/plugins/classes/database.xml)剪切回JAVA目录中并刷新项目(这样下次重新编译时database.xml文件不会被清理) (图15)

1473679211715将项目部署到tomcat 图14. 将项目部署到tomcat

数据初始化页面 

1473679734308

图15. 数据初始化页面如果选择初始化数据库,则该库原来的表被删除重建,所有数据将丢失!请慎重操作




hackIE