package report.chart;
import java.io.IOException;
import org.eclipse.birt.chart.model.ChartWithAxes;
import org.eclipse.birt.chart.model.attribute.Anchor;
import org.eclipse.birt.chart.model.attribute.AxisType;
import org.eclipse.birt.chart.model.attribute.IntersectionType
;
import org.eclipse.birt.chart.model.attribute.Position;
import org.eclipse.birt.chart.model.attribute.TickStyle;
import org.eclipse.birt.chart.model.attribute.impl.ColorDefinitionImpl;
import org.eclipse.birt.chart.model.attribute.impl.GradientImpl
;
import org.eclipse.birt.chart.model.component.Axis;
import org.eclipse.birt.chart.model.component.Series;
import org.eclipse.birt.chart.model.component.impl.SeriesImpl;
import org.eclipse.birt.chart.model.data.Query
;
import org.eclipse.birt.chart.model.data.SeriesDefinition;
import org.eclipse.birt.chart.model.data.impl.QueryImpl;
import org.eclipse.birt.chart.model.data.impl.SeriesDefinitionImpl;
import org.eclipse.birt.chart.model.impl.ChartWithAxesImpl
;
import org.eclipse.birt.chart.model.layout.Legend;
import org.eclipse.birt.chart.model.layout.Plot;
import org.eclipse.birt.chart.model.type.BarSeries;
import org.eclipse.birt.chart.model.type.impl.BarSeriesImpl
;
import org.eclipse.birt.chart.reportitem.ChartReportItemImpl;
import org.eclipse.birt.report.model.api.DesignElementHandle;
import org.eclipse.birt.report.model.api.DesignEngine;
import org.eclipse.birt.report.model.api.ElementFactory
;
import org.eclipse.birt.report.model.api.ExtendedItemHandle;
import org.eclipse.birt.report.model.api.OdaDataSetHandle;
import org.eclipse.birt.report.model.api.OdaDataSourceHandle;
import org.eclipse.birt.report.model.api.PropertyHandle
;
import org.eclipse.birt.report.model.api.ReportDesignHandle;
import org.eclipse.birt.report.model.api.SessionHandle;
import org.eclipse.birt.report.model.api.TableHandle;
import org.eclipse.birt.report.model.api.activity.SemanticException
;
import org.eclipse.birt.report.model.api.command.ContentException;
import org.eclipse.birt.report.model.api.command.NameException;
import org.eclipse.birt.report.model.api.elements.structures.DataSetParameter;
import org.eclipse.birt.report.model.api.extension.ExtendedElementException;
import org.eclipse.birt.report.model.metadata.MetaDataDictionary;
public class BarChart {
private ReportDesignHandle reportDesignHandle = null;
private ElementFactory elementFactory = null;
private OdaDataSourceHandle customerDataSource = null;
private String dataSourceName = "Customer";
private String customerdataSetName = "Customer";
private String query = "select amount,customerNumber from payments";
MetaDataDictionary dict;
public void createReport( ) throws SemanticException, IOException
{
init();
createMasterPages( );
createDataSources( );
createDataSets();
createBody( );
String outputPath = "D:" ;
reportDesignHandle.saveAs
( outputPath + "/" + "BarChart.rptdesign" );//$NON-NLS-1$//$NON-NLS-2$
}
private void createMasterPages( ) throws ContentException, NameException
{
DesignElementHandle simpleMasterPage =
elementFactory.newSimpleMasterPage( "Master Page" );//$NON-NLS-1$
reportDesignHandle.getMasterPages( ).add( simpleMasterPage );
}
private void init(){
//we need a handle of session of design engine
SessionHandle sessionHandle = DesignEngine.newSession(null);
reportDesignHandle = sessionHandle.createDesign();
elementFactory = reportDesignHandle.getElementFactory();
}
private void createDataSets() throws SemanticException{
//type of the data set or extension ID
String dataSetType = "org.eclipse.birt.report.data.oda.jdbc.JdbcSelectDataSet
";
//name of the data source
//query to be send to the database
OdaDataSetHandle dataSetHandle = null;
DataSetParameter theDataSetParameter = null;
PropertyHandle propertyHandle = null;
//customer dataset
dataSetHandle = elementFactory.newOdaDataSet(customerdataSetName,dataSetType);
dataSetHandle.setQueryText
(query);
dataSetHandle.setDataSource(dataSourceName);
reportDesignHandle.getDataSets().add(dataSetHandle);
}
private void createDataSources( ) throws SemanticException
{
//name of the data source
//type of the data source
String extensionID = "org.eclipse.birt.report.data.oda.jdbc";
//driver class name
String driverClassName = "com.mysql.jdbc.Driver";
//database url
String driverURL = "jdbc:mysql://localhost:3306/classicmodels";
//user name
String userName = "root";
//password
String userPassword = "raju";
//now make a data source with the dataSourceName and extensionID.
customerDataSource = elementFactory.newOdaDataSource
(dataSourceName,extensionID);
//set the driver class name
customerDataSource.setProperty("odaDriverClass",driverClassName);
//set the database url
customerDataSource.setProperty
("odaURL",driverURL);
//set the user name
customerDataSource.setProperty("odaUser",userName);
//set the password
customerDataSource.setProperty("odaPassword",userPassword);
System.out.println("odaURL is " + customerDataSource.getProperty("odaURL"));
System.out.println("odaUser is " + customerDataSource.getProperty("odaUser"));
System.out.println("odaPassword is " + customerDataSource.getProperty("odaPassword"));
//so far we have developed our data source DOM so now
//lets give the handle to the reportDesignHandle .
reportDesignHandle.getDataSources().add(customerDataSource);
}
private void createBody() throws SemanticException{
TableHandle table = elementFactory.newTableItem(null,1,1,1,1);
table.setWidth("100%");
reportDesignHandle.getBody().add(createMulitYSeriesChart( ));
// RowHandle rowHandle = (RowHandle)table.getDetail().get(0);
// CellHandle cellHandle = (CellHandle)rowHandle.getCells().get(0);
// cellHandle.getContent().add(createPieChart());
}
protected ExtendedItemHandle createMulitYSeriesChart( )
{
ExtendedItemHandle eih = elementFactory.newExtendedItem
( null, "Chart" );//$NON-NLS-1$
try
{
eih.setHeight( "5.406in" );//$NON-NLS-1$
eih.setWidth( "7.927in" );//$NON-NLS-1$
eih.setProperty
( ExtendedItemHandle.DATA_SET_PROP, customerdataSetName );//$NON-NLS-1$
}
catch ( SemanticException e )
{
e.printStackTrace( );
}
ChartWithAxes cwaBar =
ChartWithAxesImpl.create( );
cwaBar.setType("Bar Chart");
cwaBar.setSubType("Side-by-side");
// Plot
cwaBar.getBlock( ).setBackground( ColorDefinitionImpl.WHITE( ) );
Plot p = cwaBar.getPlot( );
p.getClientArea( )
.setBackground( GradientImpl.create(
ColorDefinitionImpl.create( 225,
225,
255 ),
ColorDefinitionImpl.create( 255, 255, 225 ),
-35,
false ) );
p.getOutline( ).setVisible( true );
// Title
cwaBar.getTitle( )
.getLabel( )
.getCaption( )
.setValue( "Bar Chart with Multiple Y Series" );//$NON-NLS-1$
// Legend
Legend lg = cwaBar.getLegend( );
lg.getText( ).getFont( ).setSize( 16 );
lg.getInsets( ).set( 10, 5, 0, 0 );
lg.setAnchor( Anchor.NORTH_LITERAL );
// X-Axis
Axis xAxisPrimary = cwaBar.getPrimaryBaseAxes( )[0];
xAxisPrimary.setType( AxisType.TEXT_LITERAL );
xAxisPrimary.getMajorGrid( ).setTickStyle( TickStyle.BELOW_LITERAL
);
xAxisPrimary.getOrigin( ).setType( IntersectionType.VALUE_LITERAL );
xAxisPrimary.getTitle( ).getCaption( ).setValue( "Regional Markets" ); //$NON-NLS-1$
xAxisPrimary.setLabelPosition
( Position.BELOW_LITERAL );
xAxisPrimary.setTitlePosition( Position.BELOW_LITERAL );
// Y-Axis
Axis yAxisPrimary = cwaBar.getPrimaryOrthogonalAxis( xAxisPrimary );
yAxisPrimary.getMajorGrid( ).setTickStyle( TickStyle.LEFT_LITERAL );
yAxisPrimary.getTitle( )
.getCaption( )
.setValue( "Sales vs. Net Profit ($Million)" );//$NON-NLS-1$
// Data Set
// TextDataSet categoryValues = TextDataSetImpl.create( new String[]{
// "Europe", "Asia", "North America"} );//$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$
// NumberDataSet orthoValues1 = NumberDataSetImpl.create( new double[]{
// 26.17, 34.21, 21.5
// } );
// NumberDataSet orthoValues2 = NumberDataSetImpl.create( new double[]{
// 4.81, 3.55, -5.26
// } );
// X-Series
Series seCategory = SeriesImpl.create( );
Query query = QueryImpl.create( "row[\"amount\"]" );//$NON-NLS-1$
seCategory.getDataDefinition( ).add( query );
//seCategory.setDataSet( dataset );
SeriesDefinition sdX = SeriesDefinitionImpl.create( );
xAxisPrimary.getSeriesDefinitions( ).add( sdX );
sdX.getSeries( ).add( seCategory );
// Y-Series (1)
BarSeries bs = (BarSeries) BarSeriesImpl.create( );
bs.setSeriesIdentifier( "Sales" );//$NON-NLS-1$
Query query1 = QueryImpl.create( "row[\"customerNumber\"]" );//$NON-NLS-1$
bs.getDataDefinition( ).add( query1 );
// bs.setDataSet( query1 );
bs.setRiserOutline( null );
bs.getLabel( ).setVisible( true );
bs.setLabelPosition( Position.INSIDE_LITERAL
);
SeriesDefinition sdY1 = SeriesDefinitionImpl.create( );
sdY1.getSeriesPalette( ).update( -2 );
yAxisPrimary.getSeriesDefinitions( ).add( sdY1 );
sdY1.getSeries( ).add( bs );
// Y-Series (2)
// BarSeries bs2 = (BarSeries) BarSeriesImpl.create( );
// bs2.setSeriesIdentifier( "Net Profit" );//$NON-NLS-1$
// Query query2 = QueryImpl.create( "row[\"customerNumber\"]" );//$NON-NLS-1$
// bs2.getDataDefinition( ).add( query2 );
// bs2.setRiserOutline( null );
// bs2.getLabel( ).setVisible( true );
// bs2.setLabelPosition( Position.INSIDE_LITERAL );
// SeriesDefinition sdY2 = SeriesDefinitionImpl.create( );
// sdY2.getSeriesPalette( ).update( -3 );
// yAxisPrimary.getSeriesDefinitions( ).add( sdY2 );
// sdY2.getSeries( ).add( bs2 );
ChartReportItemImpl crii;
try
{
//Add ChartReportItemImpl to ExtendedItemHandle
crii = (ChartReportItemImpl) eih.getReportItem( );
//Add chart instance to ChartReportItemImpl
crii.setProperty( "chart.instance", cwaBar );//$NON-NLS-1$
}
catch ( ExtendedElementException e )
{
e.printStackTrace( );
}
return eih;
}
}
SEVERE: Exception
org.eclipse.birt.chart.exception.ChartException: A data definition _expression_ must be associated with the value (Y) series-0 defined by
org.eclipse.birt.chart.model.type.impl.LineSeriesImpl@f27b6e (visible: true, seriesIdentifier: B Corp., labelPosition: Above, stacked: false, translucent: <unset>) (paletteLineColor: <unset>, curve: <unset>).
at org.eclipse.birt.chart.internal.factory.DataProcessor.getRowExpressions(DataProcessor.java:545)
at org.eclipse.birt.chart.internal.factory.DataProcessor.getRowExpressions(DataProcessor.java:237)
at org.eclipse.birt.chart.factory.Generator.getRowExpressions
(Generator.java:489)
at org.eclipse.birt.chart.reportitem.QueryHelper.build(QueryHelper.java:131)
at org.eclipse.birt.chart.reportitem.ChartReportItemQueryImpl.getReportQueries(ChartReportItemQueryImpl.java:101)
at org.eclipse.birt.report.engine.data.dte.ReportQueryBuilder$QueryBuilderVisitor.visitExtendedItem(ReportQueryBuilder.java:339)
at org.eclipse.birt.report.engine.ir.ExtendedItemDesign.accept(ExtendedItemDesign.java:30)
at org.eclipse.birt.report.engine.data.dte.ReportQueryBuilder$QueryBuilderVisitor.buildQuery(ReportQueryBuilder.java:193)
at org.eclipse.birt.report.engine.data.dte.ReportQueryBuilder.build(ReportQueryBuilder.java
:114)
at org.eclipse.birt.report.engine.data.dte.DteDataEngine.prepare(DteDataEngine.java:162)
at org.eclipse.birt.report.engine.executor.ReportExecutor.execute(ReportExecutor.java:107)
at org.eclipse.birt.report.engine.executor.ReportExecutor.execute
(ReportExecutor.java:89)
at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.run(RunAndRenderTask.java:175)
at org.eclipse.birt.report.services.ReportEngineService.runAndRenderReport(Unknown Source)
at
org.eclipse.birt.report.viewer.aggregation.layout.EngineFragment.doService(Unknown Source)
at org.eclipse.birt.report.viewer.aggregation.BaseFragment.service(Unknown Source)
at org.eclipse.birt.report.viewer.servlet.ViewerServlet.doGet
(Unknown Source)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:743)
at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)
at javax.servlet.http.HttpServlet.service(HttpServlet.java
:856)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:284)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:204)
at org.apache.catalina.core.StandardWrapperValve.invoke
(StandardWrapperValve.java:256)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:151)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:564)
at org.apache.catalina.core.StandardContextValve.invokeInternal
(StandardContextValve.java:245)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:199)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:151)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:564)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:195)
at org.apache.catalina.core.StandardValveContext.invokeNext
(StandardValveContext.java:151)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:164)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:149)
at org.apache.catalina.core.StandardPipeline.invoke
(StandardPipeline.java:564)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:156)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:151)
at org.apache.catalina.core.StandardPipeline.invoke
(StandardPipeline.java:564)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:972)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:211)
at org.apache.coyote.http11.Http11Processor.process
(Http11Processor.java:805)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:696)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:605)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:677)
at java.lang.Thread.run(Thread.java:595)
Jun 1, 2006 7:17:42 PM org.eclipse.birt.chart.exception.ChartException logThis
SEVERE: Exception
org.eclipse.birt.chart.exception.ChartException: The DataSet bound to the chart returned no rows.
at org.eclipse.birt.chart.reportitem.ChartReportItemPresentationImpl.onRowSets(ChartReportItemPresentationImpl.java
:371)
at org.eclipse.birt.report.engine.presentation.LocalizedEmitter.startExtendedContent(LocalizedEmitter.java:655)
at org.eclipse.birt.report.engine.presentation.LocalizedEmitter.startForeign(LocalizedEmitter.java
:434)
at org.eclipse.birt.report.engine.presentation.WrappedEmitter.startForeign(WrappedEmitter.java:209)
at org.eclipse.birt.report.engine.presentation.DefaultPaginationEmitter.startForeign(DefaultPaginationEmitter.java
:313)
at org.eclipse.birt.report.engine.executor.ExtendedItemExecutor.execute(ExtendedItemExecutor.java:100)
at org.eclipse.birt.report.engine.executor.ReportExecutorVisitor.visitExtendedItem(ReportExecutorVisitor.java
:81)
at org.eclipse.birt.report.engine.ir.ExtendedItemDesign.accept(ExtendedItemDesign.java:30)
at org.eclipse.birt.report.engine.executor.ReportExecutor.execute(ReportExecutor.java:125)
at org.eclipse.birt.report.engine.executor.ReportExecutor.execute
(ReportExecutor.java:89)
at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.run(RunAndRenderTask.java:175)
at org.eclipse.birt.report.services.ReportEngineService.runAndRenderReport(Unknown Source)
at
org.eclipse.birt.report.viewer.aggregation.layout.EngineFragment.doService(Unknown Source)
at org.eclipse.birt.report.viewer.aggregation.BaseFragment.service(Unknown Source)
at org.eclipse.birt.report.viewer.servlet.ViewerServlet.doGet
(Unknown Source)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:743)
at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)
at javax.servlet.http.HttpServlet.service(HttpServlet.java
:856)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:284)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:204)
at org.apache.catalina.core.StandardWrapperValve.invoke
(StandardWrapperValve.java:256)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:151)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:564)
at org.apache.catalina.core.StandardContextValve.invokeInternal
(StandardContextValve.java:245)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:199)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:151)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:564)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:195)
at org.apache.catalina.core.StandardValveContext.invokeNext
(StandardValveContext.java:151)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:164)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:149)
at org.apache.catalina.core.StandardPipeline.invoke
(StandardPipeline.java:564)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:156)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:151)
at org.apache.catalina.core.StandardPipeline.invoke
(StandardPipeline.java:564)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:972)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:211)
at org.apache.coyote.http11.Http11Processor.process
(Http11Processor.java:805)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:696)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:605)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:677)
at java.lang.Thread.run(Thread.java:595)
Jun 1, 2006 7:17:42 PM org.eclipse.birt.chart.reportitem.ChartReportItemPresentationImpl
onRowSets
SEVERE: Exception
org.eclipse.birt.chart.exception.ChartException: The DataSet bound to the chart returned no rows.
at org.eclipse.birt.chart.reportitem.ChartReportItemPresentationImpl.onRowSets(ChartReportItemPresentationImpl.java
:371)
at org.eclipse.birt.report.engine.presentation.LocalizedEmitter.startExtendedContent(LocalizedEmitter.java:655)
at org.eclipse.birt.report.engine.presentation.LocalizedEmitter.startForeign(LocalizedEmitter.java
:434)
at org.eclipse.birt.report.engine.presentation.WrappedEmitter.startForeign(WrappedEmitter.java:209)
at org.eclipse.birt.report.engine.presentation.DefaultPaginationEmitter.startForeign(DefaultPaginationEmitter.java
:313)
at org.eclipse.birt.report.engine.executor.ExtendedItemExecutor.execute(ExtendedItemExecutor.java:100)
at org.eclipse.birt.report.engine.executor.ReportExecutorVisitor.visitExtendedItem(ReportExecutorVisitor.java
:81)
at org.eclipse.birt.report.engine.ir.ExtendedItemDesign.accept(ExtendedItemDesign.java:30)
at org.eclipse.birt.report.engine.executor.ReportExecutor.execute(ReportExecutor.java:125)
at org.eclipse.birt.report.engine.executor.ReportExecutor.execute
(ReportExecutor.java:89)
at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.run(RunAndRenderTask.java:175)
at org.eclipse.birt.report.services.ReportEngineService.runAndRenderReport(Unknown Source)
at
org.eclipse.birt.report.viewer.aggregation.layout.EngineFragment.doService(Unknown Source)
at org.eclipse.birt.report.viewer.aggregation.BaseFragment.service(Unknown Source)
at org.eclipse.birt.report.viewer.servlet.ViewerServlet.doGet
(Unknown Source)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:743)
at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)
at javax.servlet.http.HttpServlet.service(HttpServlet.java
:856)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:284)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:204)
at org.apache.catalina.core.StandardWrapperValve.invoke
(StandardWrapperValve.java:256)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:151)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:564)
at org.apache.catalina.core.StandardContextValve.invokeInternal
(StandardContextValve.java:245)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:199)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:151)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:564)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:195)
at org.apache.catalina.core.StandardValveContext.invokeNext
(StandardValveContext.java:151)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:164)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:149)
at org.apache.catalina.core.StandardPipeline.invoke
(StandardPipeline.java:564)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:156)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:151)
at org.apache.catalina.core.StandardPipeline.invoke
(StandardPipeline.java:564)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:972)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:211)
at org.apache.coyote.http11.Http11Processor.process
(Http11Processor.java:805)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:696)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:605)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:677)
at java.lang.Thread.run(Thread.java:595)