`
sito
  • 浏览: 44630 次
  • 性别: Icon_minigender_1
  • 来自: bj
社区版块
存档分类
最新评论

spagobi 引擎调用,跨web应用访问,filter的使用

    博客分类:
  • web
阅读更多

一、前言
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
0
0
分享到:
评论
1 楼 qwertyxl 2012-11-11  
你好,我最近在做关于SpagoBI相关的项目,请问你对这方面了解么,我有些问题想请教下

相关推荐

    SpagoBI开源BI套件平台安装与使用说明

    4. **配置Web服务器**:将SpagoBI的web应用目录`spagobi.war`部署到你的Web服务器的webapps目录下。 5. **启动Web服务器**:启动Web服务器,SpagoBI服务会自动启动。 **四、SpagoBI中文化设置** 对于中文用户,...

    SpagoBI说明

    商业智能(BI)是一套应用程序,用于收集、存储、访问和分析数据,以帮助组织做出更好的决策。SpagoBI专注于数据挖掘,数据挖掘是商业智能领域中的一种重要技术。数据挖掘是使用统计、模式识别和机器学习技术从大量...

    SpagoBI开源BI平台_安装配置及使用说明

    根据给定的文件信息,以下是对“SpagoBI开源BI平台_安装配置及使用说明”文档的内容知识点的详细说明: 一、SpagoBI平台概述 SpagoBI是一个开源的商业智能(BI)平台,由意大利CNR(意大利国家研究委员会)下属的...

    SpagoBI快速指南

    根据给定的文件信息,以下是对“SpagoBI快速指南”的详细解读,涵盖了软件下载、安装配置、使用SpagoBI Meta、创建报表、图表制作等多个关键知识点。 ### SpagoBI快速指南 #### 软件下载与安装配置 在开始构建...

    SpagoBI汉化文件

    7. 重新访问SpagoBI的Web界面,系统应该会自动检测到新的中文资源,并显示中文界面。如果未自动切换,你可能需要在用户设置或系统设置中手动选择中文语言。 需要注意的是,汉化文件的质量和完整性可能因不同的翻译...

    SpagoBI集成Hive数据库

    例如,文中提到的一个错误日志表明在创建SQL连接时出现了问题,这是由于Mondrian(一个开源的OLAP引擎,SpagoBI使用它来处理多维数据)无法成功建立到Hive的连接。这个错误可能是由多种原因引起的,如网络问题、Hive...

    spagobi-3.3-02.zip

    10. **webapps**:这是Tomcat服务器默认的应用程序部署目录,SPAGobi的WAR文件或已解压的目录应该在此处,用户可以通过访问http://localhost:8080/spagobi 访问应用。 为了充分利用这个汉化版的SPAGobi,用户需要...

    spagobi-birt-report-creation

    5. **发布和分享**:将报告发布到SpagoBI平台上,便于其他用户访问和使用。 ### 总结 通过以上步骤,您可以在SpagoBI中利用BIRT创建基于SQL Server的数据报告。整个过程涉及了数据源的配置、数据集的创建以及报告的...

    spagobi-3.3+安装教程+功能汉化压缩包

    7. **验证安装**:通过浏览器访问SpagoBI的默认URL,检查是否能正常打开并使用。 在整个安装过程中,可能会遇到一些问题,如依赖冲突、端口占用等,这时需要根据错误提示进行排查和解决。如果安装教程中的步骤不...

    SpagoBI实例指南

    - **业务模型的查询与使用:** 解释如何在SpagoBI Meta中查询已定义的业务模型,并将其应用于实际的分析任务中。 #### 四、SpagoBI Studio 功能详解 - **数据集定义:** 如何定义数据集,包括数据来源、数据筛选、...

    SpagoBI5.X详细介绍中文版

    SpagoBI 5.X 引入了更先进的分析引擎,支持更复杂的查询和计算,提升了数据处理性能。此外,其数据可视化组件也得到了显著提升,支持更多图表类型和自定义样式。 #### 2.2 用户友好界面 新版本对用户界面进行了...

    spagobi移动客户端(安卓)

    - 下载ZeroyChartEngine.apk文件,这是Spagobi移动客户端的安卓应用包。 - 在安卓设备上开启未知来源的安装权限,通常在设置的安全选项中设置。 - 通过文件管理器找到下载的apk文件,点击安装。 - 遵循屏幕提示...

    开源BI领袖-SpagoBI5.X详细介绍中文版V1.1.zip

    SpagoBI支持多种数据源,包括关系型数据库、XML、Web服务等,通过ETL工具可以方便地整合来自不同系统的数据,实现数据仓库的构建和管理。 **5. 数据可视化** 5.X版本进一步增强了数据可视化功能,提供丰富的图表...

    Business Intelligence with SpagoBI

    SpagoBIServer是SpagoBI的核心组件,它分为交付层、分析层和数据层,还包括管理工具和跨服务以及多租户架构。SpagoBIMeta是用于安装和配置的元数据服务器,它支持业务模型的创建和查询。 SpagoBIStudio是用于开发...

    SpagoBI-3.x-quick-start.pdf

    - SpagoBI Server 是一个部署在 J2EE 应用服务器(如 Tomcat、JBoss、WebSphere 等)上的 Web 应用程序。 - 支持运行在任何支持 JVM 1.5 及以上版本的操作系统上(推荐使用 1.6 版本)。 - 使用私有仓库托管在 ...

    Spagobi.zip

    **三、SpagoBI的实施与应用** 在实际应用中,SpagoBI通常会经历以下步骤: 1. **数据整合**:连接到各种数据源,抽取、清洗和转换数据,建立数据仓库或数据湖。 2. **模型设计**:根据业务需求,设计数据模型,如...

    SpagoBI汉化

    SpagoBI的汉化工作是为了满足中文用户的需求,使得非英文环境下的使用者也能无障碍地使用这款强大的工具。 **源码分析** SpagoBI的源码大小超过300MB,这表明它包含了丰富的功能和模块。源码的获取对于开发者而言...

    spagobi.zip 02

    2. **webapps** - 在Tomcat服务器中,这是部署Web应用程序的标准位置。SpagoBI的应用可能就在这里。 3. **conf** - 存储配置文件的地方,可能包含Tomcat和SpagoBI的配置设置。 4. **logs** - 日志文件的存放地,有助...

    spagobi汉化后生成图表用到的jar

    spagobi汉化后生成图表功能无法用汉字,替换该jar包即可

    SpagoBI MobileEngine 示例图片

    这款引擎允许用户在他们的移动设备上无缝地查看和交互 SpagoBI 提供的各种图表和报表,从而打破了传统 BI 解决方案对桌面设备的依赖,提高了决策制定的灵活性和实时性。 SpagoBI 是一个开源的业务智能平台,提供...

Global site tag (gtag.js) - Google Analytics