Java 使用bosdk构建应用程序
我认为我的问题很简单,但我在这方面并没有真正的经验。Java 使用bosdk构建应用程序,java,jsp,tomcat,business-objects-sdk,Java,Jsp,Tomcat,Business Objects Sdk,我认为我的问题很简单,但我在这方面并没有真正的经验。 我正在尝试使用TOMCAT在没有任何环境的情况下手动构建JSP。所以我在我的页面上使用了这种结构: my-webapp |-- WEB-INF | |-- lib | | |-- ajar.jar | | |-- bjar.jar | | `-- zjar.jar |-- b.swf `-- index.jsp WEB-INF/lib中的库是从BusinessObjects locationjava/lib复制的
我正在尝试使用TOMCAT在没有任何环境的情况下手动构建JSP。所以我在我的页面上使用了这种结构:
my-webapp
|-- WEB-INF
| |-- lib
| | |-- ajar.jar
| | |-- bjar.jar
| | `-- zjar.jar
|-- b.swf
`-- index.jsp
WEB-INF/lib
中的库是从BusinessObjects locationjava/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
该页面的目的是提供一个带有硬编码凭据的Xcelsius仪表板,这样用户就不必在平台上拥有访问报告的帐户
我强烈建议您阅读这篇文章,它非常棒: "". 我从零开始,这真的很有帮助 小心,您需要将.jar文件复制到Tomcat可以找到它们的目录中,即类路径中指定的目录。我只是把它们复制到Tomcat的“/lib”文件夹中,这不是最好的主意,但它确实奏效了 如何正确地将目录添加到Tomcat的类路径 我可以建议您使用eclipse吗 在eclipse中,我为我的应用程序做了两件事:
- 使用所有BO SDK.jar文件创建一个java库,并将该库添加到我的项目的java构建路径,这样我可以在开发时使用SDK
- 在Tomcat中部署应用程序时,复制Tomcat服务器的类路径中的.jar文件,以便它可以找到您正在使用的SDK类
我希望我对我的英语有所帮助并感到抱歉。请仔细检查WEB-INF/lib;您至少应该有cecore.jar和celib.jar。您可能需要重新启动Tomcat。我重新启动了Tomcat并克服了错误,现在我得到了一些不同的东西。。我会更新这个问题
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)