第1章 版本选择
如果业务系统也是JAVA WEB应用,即可与报表系统进行嵌入式深度集成。嵌入式深度集成这种场景,请选择我们提供的专业集成版本。 该版本中没有登录限制,没有组织、角色、用户、权限管理,可方便进行集成。
第2章 集成步骤
2.1 确保业务系统可运行
首先要确保需要集成的系统独立可以运行,已有功能全部可以正常使用。便于判断集成是否成功。
2.2 报表资源文件合并
在专业集成版本目录下的应用根目录Report,有下图中所列出的类似文件夹,如图所示:
2.2.1 将所有的资源复制到要集成的工程的WebRoot(WebContent)目录下
这里“WebRoot(WebContent)”目录即是指工程的根目录。
拷贝过程中,同名资源文件需合并,同名jar包可以直接覆盖
通常可能需要合并的资源文件有:Web.xml文件、log4j.xml
请将报表web.xml内容合并,web.xml中具体说明请参见附录一。
如果业务系统同时使用了log4j组件作为日志记录,请将log4j.xml进行合并,具体说明请参见附录二。
2.1.2 jar包冲突问题
jar包位于\WEB-INF\lib目录下。
当出现业务系统与报表系统同时使用了某个第三方jar包时,如果版本号不一致,即可能造成jar包冲突,导致某些功能不可用。
需要将冲突的jar包删除,删除原则为请保留较高版本的jar包,如遇到特殊情况可与我们联系。
2.1.3 测试集成版本
测试前请参考部署文档,将环境按部署文档说明进行部署测试。
需同时测试原有系统功能和报表功能是否同时可用。
附录一:报表的Web.xml文件中配置说明
1.报表配置文件根路径
该部分配置可以更改报表配置文件所在路径(即conf/unieap/report下的配置)。
系统中没有对配置路径有特殊要求的,可以忽略该部分配置。如果需要指定报表配置路径,可以将以下内容包含到 web.xml 文件中,并修改 param-value 的值,同时移动 conf/unieap/report下的内容至指定的位置。如果已经存在该部分内容,则保留原内容不需拷贝。
路径参数值以 / 结尾,当以 / 起始时表示为绝对路径,否则为相对路径。
<context-param>
<param-name>report.configroot</param-name>
<param-value>WEB-INF/conf/unieap/report/</param-value>
</context-param>
<context-param>
<param-name>report.customconfigroot</param-name>
<param-value>WEB-INF/conf/unieap/report/ext/</param-value>
</context-param>
- Listener配置
<listener> <listener-class>com.neusoft.report.server.view.CleanSessionListener</listener-class> </listener> <listener> <listener-class>com.neusoft.report.server.view.ThreadObjectRequestListener</listener-class> </listener> <listener> <listener-class>com.neusoft.report.server.view.CacheCleanServletContextListener</listener-class> </listener>
filter配置 该部分配置涉及安全过滤拦截,请将该filter加到系统前边。
<filter> <filter-name>setUidFilter</filter-name> <filter-class>com.neusoft.report.sample.SetUidFilter</filter-class> </filter> <filter> <filter-name>InjectionFilter</filter-name> <filter-class>com.neusoft.report.server.util.fw.ReportFWFilter</filter-class> <init-param> <param-name>crossDomainRefer</param-name> <param-value>true</param-value> </init-param> <init-param> <param-name>mobileAllowRefer</param-name> <param-value>true</param-value> </init-param> <init-param> <param-name>licenseNoticeRefer</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <filter-name>InjectionFilter</filter-name> <url-pattern>*.do</url-pattern> </filter-mapping> <filter-mapping> <filter-name>InjectionFilter</filter-name> <url-pattern>*.jsp</url-pattern> </filter-mapping> <filter-mapping> <filter-name>setUidFilter</filter-name> <url-pattern>*.do</url-pattern> </filter-mapping> <filter-mapping> <filter-name>setUidFilter</filter-name> <url-pattern>*.jsp</url-pattern> </filter-mapping>
- servlet配置
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/conf/unieap/report/report-struts-config.xml</param-value>
</init-param>
<load-on-startup>10</load-on-startup>
</servlet>
<servlet>
<servlet-name>mobile-heartbeat</servlet-name>
<servlet-class>com.neusoft.unieap.report.platform.mobile.MobileHeartBeat</servlet-class>
</servlet>
<servlet>
<servlet-name>mobile-res</servlet-name>
<servlet-class>com.neusoft.unieap.report.platform.mobile.MobileResManager</servlet-class>
</servlet>
<servlet>
<servlet-name>mobile-report</servlet-name>
<servlet-class>com.neusoft.report.server.mobile.MobileReport</servlet-class>
</servlet>
<!-- Standard Action Servlet Mapping -->
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>mobile-heartbeat</servlet-name>
<url-pattern>/service/resourcemanage/heartBeatRequest</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>mobile-res</servlet-name>
<url-pattern>/service/resourcemanage/getMobileResData</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>mobile-report</servlet-name>
<url-pattern>/service/resourcemanage/mobilereport</url-pattern>
</servlet-mapping>
- Web Service调用
旧版的CS设计器使用了Web Services框架,如果系统还需要使用CS设计器进行连接,则在web.xml中增加如下内容:
<servlet> <servlet-name>AxisServlet</servlet-name> <display-name>Apache-Axis Servlet</display-name> <servlet-class> org.apache.axis.transport.http.AxisServlet </servlet-class> </servlet> <servlet-mapping> <servlet-name>AxisServlet</servlet-name> <url-pattern>/services/*</url-pattern> </servlet-mapping>
调度模块调用 将下面部分内容增加到应用系统的web.xml文件中。
<servlet> <servlet-name>schedualerServlet</servlet-name> <servlet-class>com.neusoft.saca.dataviz.scheduler.servlet.SchedualerServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>schedualerServlet</servlet-name> <url-pattern>/schedualerServlet</url-pattern> </servlet-mapping> <servlet> <servlet-name>configSchedularDR</servlet-name> <servlet-class>com.neusoft.saca.dataviz.scheduler.server.ConfigSchedular</servlet-class> <init-param> <param-name>config-file</param-name> <param-value>/WEB-INF/conf/unieap/newscheduler/dataviz-schedular.properties</param-value> </init-param> <init-param> <param-name>filesystem-class</param-name> <param-value>com.neusoft.saca.dataviz.base.filestore.impl.EAPFileImpl</param-value> </init-param> <init-param> <param-name>shutdown-on-unload</param-name> <param-value>true</param-value> </init-param> <init-param> <param-name>start-schedular-on-load</param-name> <param-value>true</param-value> </init-param> <load-on-startup>20</load-on-startup> </servlet> <servlet-mapping> <servlet-name>configSchedularDR</servlet-name> <url-pattern>/configSchedularDR</url-pattern> </servlet-mapping> <servlet> <servlet-name>schedular-exchange-dr</servlet-name> <servlet-class>com.neusoft.saca.dataviz.scheduler.server.CommandProxy</servlet-class> <init-param> <param-name>commands</param-name> <param-value>/WEB-INF/conf/unieap/newscheduler/schedularCommand.properties</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>schedular-exchange-dr</servlet-name> <url-pattern>/schedular-exchange-dr</url-pattern> </servlet-mapping>
附录二:报表日志记录
如果原系统也使用Log4j组件,请把log4j.xml文件中下面片断加入到应用系统log4j.xml文件中。
//报表组件日志输出源配置<appender name="report" class="com.neusoft.unieap.service.log.RollingFileAppender"> <param name="File" value="…/report.log" /> <param name="Append" value="false" /> <param name="MaxBackupIndex" value="10"/> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%d >> %5p >> %t >> [UniEAP_Report] >> %l >> %m%n" /> </layout> </appender> //报表组件日志输出级别配置 <logger name="UniEAP_Report"> <level value="info" /> <appender-ref ref="report" /> </logger> <logger name="UniEAP_DataSet"> <level value="info" /> <appender-ref ref="report" /> </logger>
【说明】level:指定日志信息的重要性。常用的分为 DEBUG , INFO ,WARN ,ERROR四种,其中按优先级来说DEBUG < INFO < WARN < ERROR。如果设置级别为INFO,则优先级大于等于INFO级别(如:INFO、WARN、ERROR)的日志信息将可以被输出,小于该级别的如:DEBUG将不会被输出appender-ref ref:就是指定日志信息输出目的地,比如(打印到控制台,输出到文件等)。同一条日志信息可以配置多个输出目的地。
其中可以通过修改下面的配置,来改变报表日志文件输出路径。<param name="ConversionPattern" value="%d >> %5p >> %t >> [UniEAP_Report] >> %l >> %m%n" />
</layout>
</appender> 上表中中"…/report.log"为输出路径控制部分,配置时请写成绝对路径。