BusinessObject Enterprise SDK 集成 Infoview
在一般的项目中,如果需要使用InfoView 创建Web Intelligence 报表,也即自定义报表的话,需要将InfoView集成至项目中,集成的方法如下:
一、将BO服务器(CMS)的路径下的WEB应用InfoViewApp下的配置文件web.xml修改:
<context-param>
<param-name>config.logon.service.context</param-name>
<param-value>/PartnerPlatformService</param-value> (删除这个值)
</context-param>
<context-param>
<param-name>config.logon.service.url</param-name>
<param-value>/service/app/logon.do</param-value> (删除这个值)
</context-param>
修改完毕后重启。
二、拷贝如下两个jar文件至项目应用的WEB-INF/lib下:
tomcat-webApps-InfoViewApp/WEB-INF/lib 下的webutil.jar
C:/Program Files/Business Objects/common/4.0/java/lib/external/icu4j.jar
三、编写如下的JSP:
<%@ page import="com.crystaldecisions.sdk.occa.infostore.*"%>
<%@ page import="com.crystaldecisions.sdk.plugin.desktop.common.*"%>
<%@ page import="com.crystaldecisions.sdk.framework.*"%>
<%@ page import="com.crystaldecisions.sdk.occa.security.*"%>
<%@ page import="com.crystaldecisions.sdk.exception.SDKException"%>
<%@ page import="com.businessobjects.webutil.CookieHelper"%>
<%@ page import="com.crystaldecisions.sdk.plugin.CeKind"%>
<%@ page import="com.businessobjects.webutil.clientaction.ActionHelper"%>
<%@ page import="com.businessobjects.webutil.Encoder"%>
<%
//Must involve webutil.jar from InfoviewApp lib folder for com.businessobjects.webutil
//Must involve common/4.0/java/lib/external/icu4j.jar
try {
/* Log on using the Enterprise SDK */
IEnterpriseSession enterpriseSession = CrystalEnterprise
.getSessionMgr().logon("Administrator", "",
"w2k3wpchs", "secEnterprise");
String serializedSession = enterpriseSession
.getSerializedSession();
System.out.println("serializedSession: " + serializedSession);
//Save session to Cookie
CookieHelper.addHttpOnlyCookie(response, CeKind.INFOVIEW
+ ActionHelper.SESSION_PARAM, Encoder
.encodeCookie(serializedSession));
session.setAttribute("InfoViewses", serializedSession);
//Use session cookie in XI 3.2
String infoViewURL = "http://w2k3wpchs:8080/InfoViewApp/listing/main.do";
response.sendRedirect(infoViewURL);
/*
String logonToken = enterpriseSession.getLogonTokenMgr().createLogonToken("", 10, 5);
System.out.println("logonToken: "+logonToken);
// URL to the InfoView logon page - Ensure that the URL to the Java InfoView's logon page is correct.
String infoViewURL ="http://w2k3wpchs:8080/InfoViewApp/logon/start.do?ivsLogonToken=" + logonToken;
response.sendRedirect(infoViewURL);
*/
}
catch (SDKException sdkEx) {
out.println(sdkEx);
}
%>