一、前言
spagobi的引擎都是模块方式加载的,引擎就是一个web
app,比如SpagoBITalendEngine。spagobi门户传递一个document id给talend
engine应用,在filter层初始化session,在业务servlet,即对外开放的服务访问点,从request
session获取相关信息,并execute talend job。
本文根据以上应用,来作一个简化的模型:
1、两个web app,其中一个访问另一个的servelt
2、servlet在执行前,在filter类里初始化session,仅是设置一个attribute。(处理结果写入log日志)
3、在servlet里取到attribute,并返回到页面。(处理结果写入log日志)
附:未模拟单点登录。
二、环境准备
tool: eclipse 3.6 + wtp
jvm: j2sdk 1.6
web: tomcat 6.0
三、开发
(1)创建两个“dynamic web project”
名称分别为:biweb(主调web app)和biwebengine(被调web app),当然你要先配置好它的web server为tomcat
(2)开发biwebengine
-创建类filters.AccessFilter
package filters;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import
javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import
javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import
javax.servlet.http.HttpServletRequest;
import org.apache.log4j.Logger;
public class AccessFilter implements Filter {
public final String
DOCUMENT_ID_PARAM_NAME = "document";
private static transient Logger
logger = Logger
.getLogger(AccessFilter.class);
@Override
public void destroy() {
// TODO
Auto-generated method stub
}
@Override
public void doFilter(ServletRequest request,
ServletResponse response,
FilterChain chain) throws IOException,
ServletException {
String documentId;
documentId =
(String) request.getParameter(DOCUMENT_ID_PARAM_NAME);
logger.info("Filter documentId from request: " + documentId);
if (request instanceof HttpServletRequest) {
((HttpServletRequest) request).getSession().setAttribute(DOCUMENT_ID_PARAM_NAME,
documentId);
}
chain.doFilter(request, response); //for
other filters
}
@Override
public void init(FilterConfig arg0) throws
ServletException {
// TODO Auto-generated method stub
}
}
-servlet类de.daniel.RunService
package de.daniel;
import java.io.IOException;
import javax.servlet.ServletException;
import
javax.servlet.http.HttpServlet;
import
javax.servlet.http.HttpServletRequest;
import
javax.servlet.http.HttpServletResponse;
import org.apache.log4j.Logger;
public class RunService extends HttpServlet{
private static final long
serialVersionUID = 1L;
private static transient Logger logger =
Logger.getLogger(RunService.class);
public final String
DOCUMENT_ID_PARAM_NAME = "document";
@Override
protected void
service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String documentId
=
String.valueOf(request.getSession().getAttribute(DOCUMENT_ID_PARAM_NAME));
logger.info("RunService has gotten attribute from session: " +
documentId);
// setup response header
if(response instanceof HttpServletResponse) {
((HttpServletResponse)response).setHeader("Content-Disposition",
"inline;filename=\"service-response\";");
}
String content = "invoked sucessfully! " + DOCUMENT_ID_PARAM_NAME + " is: " +
documentId;
response.setContentType("text/plain");
response.setContentLength(
content.length() );
if(response instanceof
HttpServletResponse) {
((HttpServletResponse)response).setStatus(200);
}
response.getWriter().print(content);
response.getWriter().flush();
}
@Override
public void init() throws ServletException {
super.init();
}
}
-log4j日志配置log4j.properties
日志将被保存到tomcat/logs下的biwebengine.log文件
log4j.rootLogger=INFO, biwebengine
# SpagoBI
Appender
log4j.appender.biwebengine=org.apache.log4j.RollingFileAppender
log4j.appender.biwebengine.File=${catalina.base}/logs/biwebengine.log
log4j.appender.biwebengine.MaxFileSize=10000KB
log4j.appender.biwebengine.MaxBackupIndex=0
log4j.appender.biwebengine.layout=org.apache.log4j.PatternLayout
log4j.appender.biwebengine.layout.ConversionPattern=%d{DATE}
%5p %c.%M:%L - %m%n
-web.xml配置
<?xml version="1.0" encoding="UTF-8"?>
<web-app>
<display-name>biwebengine</display-name>
<filter>
<filter-name>Run Service
Filter</filter-name>
<filter-class>filters.AccessFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>GBK</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>Run Service
Filter</filter-name>
<url-pattern>/RunService/*</url-pattern>
</filter-mapping>
<servlet>
<servlet-name>RunService</servlet-name>
<servlet-class>de.daniel.RunService</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>RunService</servlet-name>
<url-pattern>/RunService</url-pattern>
</servlet-mapping>
</web-app>
(3)开发biweb
只要写一个首页index.jsp就可以了,其它也不用配置:
<%@ page language="java" contentType="text/html;
charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html
PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd
">
<html>
<head>
<meta
http-equiv="Content-Type" content="text/html;
charset=ISO-8859-1">
<title>Insert title
here</title>
</head>
<body>
<form name="form1"
method="post" action="../biwebengine/RunService?document=11">
<input type="submit" value="access biwebengine"/>
</form>
</body>
</html>
四、验证
右击工程,run as -> run on server,访问:http://localhost:8080/biweb/
,如下图:
点击按钮,跳转到另一个web:
可以看看日志文件里的内容。
- 大小: 4.5 KB
- 大小: 4 KB
分享到:
相关推荐
4. **配置Web服务器**:将SpagoBI的web应用目录`spagobi.war`部署到你的Web服务器的webapps目录下。 5. **启动Web服务器**:启动Web服务器,SpagoBI服务会自动启动。 **四、SpagoBI中文化设置** 对于中文用户,...
商业智能(BI)是一套应用程序,用于收集、存储、访问和分析数据,以帮助组织做出更好的决策。SpagoBI专注于数据挖掘,数据挖掘是商业智能领域中的一种重要技术。数据挖掘是使用统计、模式识别和机器学习技术从大量...
根据给定的文件信息,以下是对“SpagoBI开源BI平台_安装配置及使用说明”文档的内容知识点的详细说明: 一、SpagoBI平台概述 SpagoBI是一个开源的商业智能(BI)平台,由意大利CNR(意大利国家研究委员会)下属的...
根据给定的文件信息,以下是对“SpagoBI快速指南”的详细解读,涵盖了软件下载、安装配置、使用SpagoBI Meta、创建报表、图表制作等多个关键知识点。 ### SpagoBI快速指南 #### 软件下载与安装配置 在开始构建...
7. 重新访问SpagoBI的Web界面,系统应该会自动检测到新的中文资源,并显示中文界面。如果未自动切换,你可能需要在用户设置或系统设置中手动选择中文语言。 需要注意的是,汉化文件的质量和完整性可能因不同的翻译...
例如,文中提到的一个错误日志表明在创建SQL连接时出现了问题,这是由于Mondrian(一个开源的OLAP引擎,SpagoBI使用它来处理多维数据)无法成功建立到Hive的连接。这个错误可能是由多种原因引起的,如网络问题、Hive...
10. **webapps**:这是Tomcat服务器默认的应用程序部署目录,SPAGobi的WAR文件或已解压的目录应该在此处,用户可以通过访问http://localhost:8080/spagobi 访问应用。 为了充分利用这个汉化版的SPAGobi,用户需要...
5. **发布和分享**:将报告发布到SpagoBI平台上,便于其他用户访问和使用。 ### 总结 通过以上步骤,您可以在SpagoBI中利用BIRT创建基于SQL Server的数据报告。整个过程涉及了数据源的配置、数据集的创建以及报告的...
7. **验证安装**:通过浏览器访问SpagoBI的默认URL,检查是否能正常打开并使用。 在整个安装过程中,可能会遇到一些问题,如依赖冲突、端口占用等,这时需要根据错误提示进行排查和解决。如果安装教程中的步骤不...
- **业务模型的查询与使用:** 解释如何在SpagoBI Meta中查询已定义的业务模型,并将其应用于实际的分析任务中。 #### 四、SpagoBI Studio 功能详解 - **数据集定义:** 如何定义数据集,包括数据来源、数据筛选、...
SpagoBI 5.X 引入了更先进的分析引擎,支持更复杂的查询和计算,提升了数据处理性能。此外,其数据可视化组件也得到了显著提升,支持更多图表类型和自定义样式。 #### 2.2 用户友好界面 新版本对用户界面进行了...
- 下载ZeroyChartEngine.apk文件,这是Spagobi移动客户端的安卓应用包。 - 在安卓设备上开启未知来源的安装权限,通常在设置的安全选项中设置。 - 通过文件管理器找到下载的apk文件,点击安装。 - 遵循屏幕提示...
SpagoBI支持多种数据源,包括关系型数据库、XML、Web服务等,通过ETL工具可以方便地整合来自不同系统的数据,实现数据仓库的构建和管理。 **5. 数据可视化** 5.X版本进一步增强了数据可视化功能,提供丰富的图表...
SpagoBIServer是SpagoBI的核心组件,它分为交付层、分析层和数据层,还包括管理工具和跨服务以及多租户架构。SpagoBIMeta是用于安装和配置的元数据服务器,它支持业务模型的创建和查询。 SpagoBIStudio是用于开发...
- SpagoBI Server 是一个部署在 J2EE 应用服务器(如 Tomcat、JBoss、WebSphere 等)上的 Web 应用程序。 - 支持运行在任何支持 JVM 1.5 及以上版本的操作系统上(推荐使用 1.6 版本)。 - 使用私有仓库托管在 ...
**三、SpagoBI的实施与应用** 在实际应用中,SpagoBI通常会经历以下步骤: 1. **数据整合**:连接到各种数据源,抽取、清洗和转换数据,建立数据仓库或数据湖。 2. **模型设计**:根据业务需求,设计数据模型,如...
SpagoBI的汉化工作是为了满足中文用户的需求,使得非英文环境下的使用者也能无障碍地使用这款强大的工具。 **源码分析** SpagoBI的源码大小超过300MB,这表明它包含了丰富的功能和模块。源码的获取对于开发者而言...
2. **webapps** - 在Tomcat服务器中,这是部署Web应用程序的标准位置。SpagoBI的应用可能就在这里。 3. **conf** - 存储配置文件的地方,可能包含Tomcat和SpagoBI的配置设置。 4. **logs** - 日志文件的存放地,有助...
spagobi汉化后生成图表功能无法用汉字,替换该jar包即可
这款引擎允许用户在他们的移动设备上无缝地查看和交互 SpagoBI 提供的各种图表和报表,从而打破了传统 BI 解决方案对桌面设备的依赖,提高了决策制定的灵活性和实时性。 SpagoBI 是一个开源的业务智能平台,提供...