顺序错误,你根据括号的顺序排列标签.
<web-app>
<context-param> 
<param-name>crystal_image_uri</param-name> 
<param-value>crystalreportviewers10</param-value> 
</context-param> 
<env-entry> 
<env-entry-name> 
jdbc/Xtreme Sample Database 10 
</env-entry-name> 
<env-entry-value> 
!sun.jdbc.odbc.JdbcOdbcDriver!jdbc:odbc:Xtreme Sample Database 10
  </env-entry-value> 
<env-entry-type>
java.lang.String
</env-entry-type> 
</env-entry>

<!--
   <display-name>Welcome to Tomcat</display-name>
   <description>
      Welcome to Tomcat
   </description>
   -->
</web-app>

解决方案 »

  1.   

    to: lifxue(纸上谈兵) 启动没有问题了,新问题来了
    帮忙阿我参照下面的例子 写了个jsp 怎么不行啊
    报错啊:description The server encountered an internal error () that prevented it from fulfilling this request.exception javax.servlet.ServletException: Implementing class
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:195)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:809)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:200)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:146)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:209)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
    代码如下
    <%@ page import="java.awt.Color" %>
    <%@ page import="java.awt.Font" %>
    <%@ page import="java.sql.Connection" %>
    <%@ page import="java.sql.DriverManager" %>
    <%@ page import="java.sql.ResultSet" %>
    <%@ page import="java.sql.Statement" %>
    <%@ page import="java.util.Locale" %><%@ page import="com.crystaldecisions.report.web.viewer.CrystalReportInteractiveViewer" %>
    <%@ page import="com.crystaldecisions.sdk.occa.report.application.ReportClientDocument" %>
    <%@ page import="com.crystaldecisions.sdk.occa.report.application.ResultFieldController" %>
    <%@ page import="com.crystaldecisions.sdk.occa.report.data.FieldDisplayNameType" %>
    <%@ page import="com.crystaldecisions.sdk.occa.report.data.Fields" %>
    <%@ page import="com.crystaldecisions.sdk.occa.report.data.Filter" %>
    <%@ page import="com.crystaldecisions.sdk.occa.report.data.Group" %>
    <%@ page import="com.crystaldecisions.sdk.occa.report.data.IField" %>
    <%@ page import="com.crystaldecisions.sdk.occa.report.data.SummaryField" %>
    <%@ page import="com.crystaldecisions.sdk.occa.report.data.SummaryOperation" %>
    <%@ page import="com.crystaldecisions.sdk.occa.report.definition.AreaSectionKind" %>
    <%@ page import="com.crystaldecisions.sdk.occa.report.definition.ChartDefinition" %>
    <%@ page import="com.crystaldecisions.sdk.occa.report.definition.ChartObject" %>
    <%@ page import="com.crystaldecisions.sdk.occa.report.definition.ChartStyle" %>
    <%@ page import="com.crystaldecisions.sdk.occa.report.definition.ChartStyleType" %>
    <%@ page import="com.crystaldecisions.sdk.occa.report.definition.ChartTextOptions" %>
    <%@ page import="com.crystaldecisions.sdk.occa.report.definition.FontColor" %>
    <%@ page import="com.crystaldecisions.sdk.occa.report.reportsource.IReportSource" %><% 
    try{
    ReportClientDocument rptDoc = null;
    rptDoc = new ReportClientDocument();

    //rptDoc.newDocument();

    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 
    Connection con = DriverManager.getConnection("jdbc:odbc:Xtreme Sample Database 10", "Admin", "");
    Statement stmt = con.createStatement();
    ResultSet rs = stmt.executeQuery("SELECT * FROM CUSTOMER");
    //Add the resultSet as a new table to the report
    rptDoc.getDatabaseController().addDataSource(rs); 
    ResultFieldController resFldController = 
    rptDoc.getDataDefController().getResultFieldController();

    Fields custFields = rptDoc.getDatabase().getTables().getTable(0).getDataFields();
    IField custName = custFields.getField(2);

    int iLYSalesIdx = custFields.find("Last Year's Sales",
    FieldDisplayNameType.fieldName,Locale.CANADA);

    IField custLYSales = 
    rptDoc.getDatabase().getTables().getTable(0).getDataFields().getField(iLYSalesIdx);

    //Add [Customer Name] and [Last Year's Sales] to the report
    resFldController.add(-1, custName);
    resFldController.add(-1, custLYSales);
     
    //Add a group, on [Country] to the report 
    Group grp = new Group(); 
    IField countryFld = custFields.getField(12); 
    grp.setConditionField(countryFld); 
    rptDoc.getDataDefController().getGroupController().add(0, grp);

    //Add a group level summary field of [Last Year's Sales], summarized per country 
    SummaryField summFld = new SummaryField(); 
    summFld.setSummarizedField(custLYSales); 
    summFld.setOperation(SummaryOperation.sum); 
    summFld.setGroup(rptDoc.getDataDefinition().getGroups().getGroup(0)); 
    rptDoc.getDataDefController().getSummaryFieldController().add(0, summFld);


    //Add a chart showing the sum of last year's sales vs country 
    ChartObject chart = new ChartObject(); 
    ChartStyle m_chartStyle = new ChartStyle(); 
    ChartTextOptions m_textOpts = new ChartTextOptions(); 
    Font m_Font = new Font("Times New Roman", Font.PLAIN, 14); 
    FontColor m_chartFont = new FontColor(); 
    ChartDefinition chartDef = new ChartDefinition(); 
    Fields chartCondFlds = new Fields(); 
    Fields chartDataFlds = new Fields();  //set the chart's fonts, section, style and titles 
    m_chartFont.setFont(m_Font); 
    m_chartFont.setColor(Color.blue);  chart.setChartReportArea(AreaSectionKind.reportHeader); 
    m_chartStyle.setType(ChartStyleType.bar); 
    m_textOpts.setTitle("Chart Title String"); 
    m_textOpts.setTitleFont(m_chartFont); 
    m_textOpts.setSubtitle("Chart Subtitle String"); 
    m_textOpts.setFootnote("Chart Footnote String"); 
    m_chartStyle.setTextOptions(m_textOpts); 
    chart.setChartStyle(m_chartStyle);

    //add the "On change of" and "show" fields 
    chartCondFlds.add(countryFld); // On change of 
    chartDataFlds.add(summFld); // Show 
    chartDef.setConditionFields(chartCondFlds); 
    chartDef.setDataFields(chartDataFlds); 
    chart.setChartDefinition(chartDef);  rptDoc.getReportDefController().addChartObject(chart);


    //Set the record selection formula for the report 
    Filter recSelectionFormula = new Filter(); 
    recSelectionFormula.setFreeEditingText("{Reports.Country} in ['Thailand', 'Taiwan'," + 
    "'Singapore', 'Philippines', 'Pakistan', " + "'New Zealand', 'Nepal', 'Mongolia', 'Malaysia', " + "'Japan', 'Indonesia', 'India', 'China', " + "'Bangladesh','Australia']"); 
    rptDoc.getDataDefController().getRecordFilterController().modify(recSelectionFormula); 

    /* 
    Good coding practice would place the following code in it's own page. 
    The above code would re-direct to that page, first storing 
    the reportSource in a session variable 
    */ 
    //Create an Interactive Viewer and preview the report 
    CrystalReportInteractiveViewer tc1 = new CrystalReportInteractiveViewer(); 

    //Pass the report to the viewer 
    tc1.setName("Crystal_Interactive_Viewer"); 
    tc1.setOwnPage(true); 
    tc1.setEnableDrillDown(true);  IReportSource reportSource = rptDoc.getReportSource(); 
    tc1.setReportSource(reportSource); 
    tc1.processHttpRequest(request, response, getServletConfig().getServletContext(), out); 

    }catch(Exception e){
    e.printStackTrace();
    }
    %>