搭建XJAVA架构的WEB服务
步骤1:创建Web工程(可跳过)
在Eclipse中创建Web工程。对已有项目的改造可跳过此步骤。
菜单路径Eclipse -> File -> New -> Project…。具体就不细说了,相信大家都会。
目录结构如下图
步骤2:引用Jar包
全部引用的jar包可在xjava.jar/META-INF/maven/org/hy/common/xjava/pom.xml配置中找到,
下面罗列出核心引用包的列表。
名称 | 用途说明 | 必要? |
基础类库 | 是 | |
文件类库 | 是 | |
XJava核心类库 | 是 | |
关系型数据库的操作类库 | 数据库操作必要 | |
线程池、定时任务类库 | XSQL组功能必要 | |
云通讯类库 | 集群管理、云计算必要 | |
轻量高效的表达式计算引擎 | 数据库操作必要 | |
高性能的Json类库 | 是 |
其它相关包的依赖可在相关开源项目中找到。
将所需的jar包放在工程的lib目录下,或者创建路径引用方式引入到项目中。
步骤3:添加Xml配置文件
在WEB-INF目录下添加如下XML配置文件,配置文件名称可变,并不是内定的。列表中的XML配置是参考样例,具体工程应按自身情况制定。
名称 | 用途说明 | 必要? |
整个工程的配置参数。用户自行定义的。 | 否 | |
启动加载XML列表的配置。 | 是 | |
数据库连接池配置。 | 数据库操作必要 | |
定时任务配置。 | 否 |
步骤4:添加Js类库(管理、部署、监控、分析时可选)
在WEB-INF目录下添加如下diff、jquery、jsoneditor-3.1.2三个目录,它们可在下面的地址中下载:
https://github.com/HY-ZhengWei/XJava
添加上面三个Js类库后,XJava构架下的Web服务将有能力启动如下功能:
1. XML配置热加载、
2. 重建数据库对象、
3. 集群部署、
4. XSQL运行监控(包括异常SQL)、
5. 多线程运行监控、
6. 主机服务CPU、内存监控、
7. 定时任务监控、
8. 数据库连接池组控制、
9. XJava对象及缓存数据分析、
10. Web资源管理器。
上面功能将依赖Js类库。
配置成功后可通过地址http://IP:端口/Web服务名称/analyses打开管理页面。步骤4还没有配置完成呢。
步骤5:添加初始化Listener类
在项目合适的包中添加InitConfig.jara类,它的名称可变,不是内定的。用于Web项目启动时初始所有XML配置,构建XJava对象池、数据库连接池等。
点击InitConfig.java类名称下载。其Java代码可自行调整,此处只是参考样例。
步骤6:添加Web.xml启动配置
在WEB-INF/web.xml中添加如下内容。
1. <!-- 系统初始化信息 -->
2. <listener>
3. <listener-class>步骤5中InitConfig包路径。如org.hy.InitConfig</listener-class>
4. </listener>
5.
6. <servlet>
7. <servlet-name>AppBaseServlet</servlet-name>
8. <servlet-class>org.hy.common.xml.plugins.AppBaseServlet</servlet-class>
9. </servlet>
10. <servlet-mapping>
11. <servlet-name>AppBaseServlet</servlet-name>
12. <url-pattern>/app</url-pattern>
13. </servlet-mapping>
14.
15. <servlet>
16. <servlet-name>AnalysesServlet</servlet-name>
17. <servlet-class>org.hy.common.xml.plugins.analyse.AnalysesServlet</servlet-class>
18. </servlet>
19. <servlet-mapping>
20. <servlet-name>AnalysesServlet</servlet-name>
21. <url-pattern>/analyses</url-pattern>
22. </servlet-mapping>
23.
24. <servlet>
25. <servlet-name>AnalyseServerServlet</servlet-name>
26. <servlet-class>org.hy.common.xml.plugins.analyse.AnalyseServerServlet</servlet-class>
27. </servlet>
28. <servlet-mapping>
29. <servlet-name>AnalyseServerServlet</servlet-name>
30. <url-pattern>/analyses/analyseDB</url-pattern>
31. </servlet-mapping>
32.
33. <!-- 管理密码。可通过StringHelp.md5("**" ,StringHelp.$MD5_Type_Hex)重新生成 -->
34. <servlet>
35. <servlet-name>AnalyseObjectServlet</servlet-name>
36. <servlet-class>org.hy.common.xml.plugins.analyse.AnalyseObjectServlet</servlet-class>
37. <init-param>
38. <param-name>password</param-name>
39. <param-value>3958D700BA10B12321294C7B314630CB</param-value>
40. </init-param>
41. </servlet>
42. <servlet-mapping>
43. <servlet-name>AnalyseObjectServlet</servlet-name>
44. <url-pattern>/analyses/analyseObject</url-pattern>
45. </servlet-mapping>
参考样例见
https://github.com/HY-ZhengWei/XFlowWeb/blob/master/WebRoot/WEB-INF/web.xml
步骤7:启动验证
到此即配置完成。启动输出如下绿色文字的日志内容(内容仅限参考,每个项目均不一样),并且不报错,即为搭建XJava架构成功。
1. 五月 18, 2018 4:07:20 下午 org.apache.catalina.core.AprLifecycleListener init
2. 信息: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: D:\Software\Java\jdk1.7.0_55\bin;C:\windows\Sun\Java\bin;C:\windows\system32;C:\windows;D:\Software\Java\jdk1.7.0_55\jre\bin;D:/Software/Java/jdk1.7.0_55/bin/../jre/bin/server;D:/Software/Java/jdk1.7.0_55/bin/../jre/bin;D:/Software/Java/jdk1.7.0_55/bin/../jre/lib/amd64;D:\Software\oracle\product\11.2.0\dbhome_1\bin;.;D:\Software\Java\jdk1.7.0_55\bin;C:\windows\system32;C:\windows;D:\Software\OpenSSH\bin;C:\windows\system32\wbem;D:\Software\Microsoft SQL Server Share\100\Tools\Binn\;D:\Software\Microsoft SQL Server\100\Tools\Binn\;D:\Software\Microsoft SQL Server\100\DTS\Binn\;D:\Software\Microsoft SQL Server Share\100\Tools\Binn\VSShell\Common7\IDE\;C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\PrivateAssemblies\;D:\Software\Microsoft SQL Server Share\100\DTS\Binn\;C:\windows\system32\config\systemprofile\.dnx\bin;C:\Program Files\Microsoft DNX\Dnvm\;C:\Program Files\MIT\Kerberos\bin;D:\Software\TortoiseSVN\bin;C:\Program Files\Git\cmd;D:\apache-maven-3.3.9\bin;D:\Software\IBM\SQLLIB\BIN;D:\Software\IBM\SQLLIB\FUNCTION;D:\Software\IBM\SQLLIB\SAMPLES\REPL;;D:\Software\Docker Toolbox;D:\Software\eclipse;;.
3. 五月 18, 2018 4:07:20 下午 org.apache.tomcat.util.digester.SetPropertiesRule begin
4. 警告: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:XFlowWeb' did not find a matching property.
5. 五月 18, 2018 4:07:20 下午 org.apache.coyote.AbstractProtocol init
6. 信息: Initializing ProtocolHandler ["http-bio-80"]
7. 五月 18, 2018 4:07:20 下午 org.apache.coyote.AbstractProtocol init
8. 信息: Initializing ProtocolHandler ["ajp-bio-8009"]
9. 五月 18, 2018 4:07:20 下午 org.apache.catalina.startup.Catalina load
10. 信息: Initialization processed in 1229 ms
11. 五月 18, 2018 4:07:20 下午 org.apache.catalina.core.StandardService startInternal
12. 信息: Starting service Catalina
13. 五月 18, 2018 4:07:20 下午 org.apache.catalina.core.StandardEngine startInternal
14. 信息: Starting Servlet Engine: Apache Tomcat/7.0.47
15. Loading sys.Config.xml
16. load finish.
17. Loading startup.Config.xml
18. load finish.
19. log4j:WARN No appenders could be found for logger (com.mchange.v2.log.MLog).
20. log4j:WARN Please initialize the log4j system properly.
21. Loading sys.DB.Config.xml
22. load finish.
23. Loading sys.Config.xml
24. load finish.
25. Loading startup.Config.xml
26. load finish.
27. Loading dbCreate/create.01.Common.xml
28. Loading dbCreate/create.02.Template.xml
29. Loading dbCreate/create.03.Flow.xml
30. Loading dbCreate/create.03.FlowHistory.xml
31. Loading db/db.ActivityInfo.xml
32. Loading db/db.ActivityParticipants.xml
33. Loading db/db.ActivityRoute.xml
34. Loading db/db.ActivityRouteParticipants.xml
35. Loading db/db.ActivityType.xml
36. Loading db/db.FlowFutureOperator.xml
37. Loading db/db.FlowInfo.xml
38. Loading db/db.FlowLastOperator.xml
39. Loading db/db.Process.xml
40. Loading db/db.ProcessParticipants.xml
41. Loading db/db.Template.xml
42. Loading dbGroup/db.FlowProcess.xml
43. load finish.
44. Loading job.Config.xml
45. load finish.
46. Loading job.Config.xml
47. load finish.
48. 五月 18, 2018 4:07:27 下午 org.apache.catalina.core.ApplicationContext log
49. 信息: Initializing Spring root WebApplicationContext
50. 五月 18, 2018 4:07:27 下午 org.apache.catalina.startup.HostConfig deployDirectory
51. 信息: Deploying web application directory D:\apache-tomcat-7.0.47\webapps\ROOT
52. 五月 18, 2018 4:07:28 下午 org.apache.coyote.AbstractProtocol start
53. 信息: Starting ProtocolHandler ["http-bio-80"]
54. 五月 18, 2018 4:07:28 下午 org.apache.coyote.AbstractProtocol start
55. 信息: Starting ProtocolHandler ["ajp-bio-8009"]
56. 五月 18, 2018 4:07:28 下午 org.apache.catalina.startup.Catalina start
57. 信息: Server startup in 7257 ms