我装了Crystal_Reports_XI_Release_2和myeclipe ,现在做了两个jsp页面,在安装的Crystal_Reports_XI_Release_2目录下
就是在C:\Program Files\Business Objects\Common\3.5\java\lib 下把jar包都拷到项目CR/WebRoot/WEB-INF/lib下 
report_source.jsp :<%@ page language="java" import="java.util.*" pageEncoding="GB2312"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<%@page   import= "com.crystaldecisions.reports.sdk.* "   %> 
<%@page import="com.crystaldecisions.sdk.occa.report.lib.*" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'report_source.jsp' starting page</title>
    
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">    
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->  </head>
  
  <body>
   <%
//水晶报表的位置
final String REPORT_NAME = "D:\\测试报表\\axmt653_2_std.rpt";
%><%try{    
    //打开报表
     ReportClientDocument reportClientDoc = new ReportClientDocument();
     reportClientDoc.open(REPORT_NAME, 0);
    //把报表源放进session,传递到报表显示页面
     session.setAttribute("reportSource", reportClientDoc.getReportSource());
        
    //转到报表显示页面
     response.sendRedirect("CrystalReportViewer.jsp");
        
}
catch(ReportSDKException ex){    
     out.println(ex);
}
catch(Exception ex){
     out.println(ex);            
}
%>
  </body>
</html>
CrystalReportViewer.jsp :<%@ page language="java" import="java.util.*" pageEncoding="GB2312"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<%-- webreporting.jar--%>
<%@page import="com.crystaldecisions.report.web.viewer.*"%>
<%-- rascore.jar--%>
<%@page import="com.crystaldecisions.reports.sdk.*" %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'CrystalReportViewer.jsp' starting page</title>
    
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">    
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->  </head>
  
  <body>
   <%
//建立一个viewer对象实例,并设置
CrystalReportViewer viewer = new CrystalReportViewer();
viewer.setOwnPage(true);
viewer.setOwnForm(true);
viewer.setPrintMode(CrPrintMode.ACTIVEX);//从session中取报表源
Object reportSource = session.getAttribute("reportSource");
viewer.setReportSource(reportSource);//显示水晶报表
viewer.processHttpRequest(request, response,this. getServletConfig().getServletContext(), null); %>
  </body>
</html>
控制台老是报错:::log4j:WARN No appenders could be found for logger (com.businessobjects.reports.sdk.JRCCommunicationAdapter).
log4j:WARN Please initialize the log4j system properly.
2011-7-29 13:22:20 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet jsp threw exception
java.lang.NoClassDefFoundError: EDU/oswego/cs/dl/util/concurrent/Semaphore
at com.businessobjects.reports.sdk.JRCCommunicationAdapter.<init>(Unknown Source)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at java.lang.Class.newInstance0(Unknown Source)
at java.lang.Class.newInstance(Unknown Source)
at com.crystaldecisions.proxy.remoteagent.z.a(Unknown Source)
at com.crystaldecisions.sdk.occa.report.application.ReportAppSession.int(Unknown Source)
at com.crystaldecisions.sdk.occa.report.application.ReportAppSession.initialize(Unknown Source)
at com.crystaldecisions.sdk.occa.report.application.ClientDocument.for(Unknown Source)
at com.crystaldecisions.sdk.occa.report.application.ReportClientDocument.for(Unknown Source)
at com.crystaldecisions.sdk.occa.report.application.ClientDocument.open(Unknown Source)
at com.crystaldecisions.reports.sdk.ReportClientDocument.open(Unknown Source)
at org.apache.jsp.index_jsp._jspService(index_jsp.java:115)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)

解决方案 »

  1.   

    java.lang.NoClassDefFoundError: EDU/oswego/cs/dl/util/concurrent/Semaphore
      

  2.   

    在C#中可以这样子:daOrders.Fill(dsdataSet,   "orders ")   Dim   daDetails   As   New   Data.SqlClient.SqlDataAdapter( "select   *   from   [Order   Details] ",   CN) daDetails.Fill(dsdataSet,   "Order   Details ")   '使用“报表引擎”对象模型将填充的数据集,传递给报表 oRpt.SetDataSource(dsdataSet) 
    CrystalReportViewer1.ReportSource  =  oRpt 
    在jsp中怎么这样绑定啊
    我现在有模版 有数据源我需要从oracle中查处数据 然后绑定上CrystalReport中
      

  3.   

    MyEclipse能不能用CrystalReport啊 MyEclipse需不需要装个CrystalReport插件啊,我自己机子上装了Crystal Reports 11.5,在创建MyEclipse的web project中导入了包可是没有成功,谁能帮帮忙啊!!!