gpt4 book ai didi

java - 使用 BO SDK 构建应用程序

转载 作者:行者123 更新时间:2023-11-28 22:13:06 26 4
gpt4 key购买 nike

我认为我的问题很简单,但我在这个领域并没有真正的经验。
我正在尝试使用 TOMCAT 在没有任何环境的情况下手动构建 JSP。所以我在我的页面中使用了这个结构:

my-webapp
|-- WEB-INF
| |-- lib
| | |-- ajar.jar
| | |-- bjar.jar
| | `-- zjar.jar
|-- b.swf
`-- index.jsp

WEB-INF/lib 中的库是从 BusinessObjects 位置 java/lib 复制的,JSP 页面中的代码:

<%@ page import="com.crystaldecisions.sdk.exception.SDKException" %>
<%@ page import="com.crystaldecisions.sdk.framework.CrystalEnterprise" %>
<%@ page import="com.crystaldecisions.sdk.framework.IEnterpriseSession" %>
<%@ page import="com.crystaldecisions.sdk.framework.ISessionMgr" %>
<%@ page import="com.crystaldecisions.sdk.occa.infostore.IInfoStore" %>
<%@ page import="com.crystaldecisions.sdk.occa.security.ILogonTokenMgr"%>

<%! String defaultToken =null; %>
<%
try
{
String systemName = "XXXXX";
String userName = "XXXXX";
String password = "XXXXXX";
String authType = "LDAP";

IEnterpriseSession enterpriseSession=null;
ISessionMgr enterpriseSessionMgr = CrystalEnterprise.getSessionMgr();
enterpriseSession = enterpriseSessionMgr.logon(userName, password, systemName, authType);
ILogonTokenMgr logonTokenMgr = enterpriseSession.getLogonTokenMgr();
defaultToken = logonTokenMgr.getDefaultToken();
}
catch(Exception e)
{
out.println(e);
}
%>

// THEN THE HTML PAGE WITH defaultToken assigned

运行页面时,我得到这个错误:

org.apache.jasper.JasperException: An exception occurred processing JSP page /index.jsp at line 27

24:
25: IEnterpriseSession enterpriseSession=null;
26:
27: ISessionMgr enterpriseSessionMgr = CrystalEnterprise.getSessionMgr();
28:
29: enterpriseSession = enterpriseSessionMgr.logon(userName, password, systemName, authType);
30:


root cause

java.lang.NoClassDefFoundError: com/businessobjects/sdk/aspect/LoggingContextAspect
com.crystaldecisions.sdk.framework.CrystalEnterprise.getSessionMgr(CrystalEnterprise.java:1)
org.apache.jsp.index_jsp._jspService(index_jsp.java:84)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:388)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:723)


该页面的目的是拥有一个带有硬编码凭据的 Xcelsius 仪表板,这样用户就不必在平台上拥有帐户即可访问报告。

最佳答案

我强烈推荐你阅读这篇文章,非常棒:“Getting started with BusinessObjects java SDK”。我从零开始,这真的很有帮助。

请注意,您需要将.jar 文件 复制到Tomcat 可以找到它们的目录,该目录在类路径 中指定。我只是将它们复制到 Tomcat 的“/lib”文件夹中,这不是最好的主意,但它确实有效。

Here's如何正确地将目录添加到 Tomcat 的类路径中。

我可以建议您使用 eclipse 吗?

在 eclipse 中我做了两件事来让我的应用程序工作:

  • 使用所有 BO SDK .jar 文件创建一个 java 库,并将此库添加到我的项目的 Java 构建路径,这样我就可以开发时使用SDK
  • 当您在 Tomcat 中部署应用程序时,将 .jar 文件 复制到 Tomcat 服务器的类路径 中,以便它可以找到您正在使用的 SDK 类

我希望我对我的英语有所帮助,对不起。

关于java - 使用 BO SDK 构建应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22676472/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com