Home » Archived » BIRT » NULL Pointer Exception problem
NULL Pointer Exception problem [message #251104] |
Fri, 03 August 2007 14:17 |
Eclipse User |
|
|
|
Originally posted by: antonin.slezacek.cloudsmith.com
Hi,
I don't know why this throws me NULLPointeException
OdaDataSourceHandle dataSourceHandle =
elementFactory.newOdaDataSource("Data Source",
"org.eclipse.birt.report.data.oda.xml");
I found this peace of code on the web and many more uses the same syntax
with some little differences like jdbc etc..
Could you help me to fix it.
exactly:
private void createDataSources()
{
try {
OdaDataSourceHandle dataSourceHandle;
dataSourceHandle =
elementFactory.newOdaDataSource("Data Source",
"org.eclipse.birt.report.data.oda.xml");
dataSourceHandle.setProperty("FILELIST",
"/home/slezi/workspace/rep/data/result-1180445164703.xml");
designHandle.getDataSources().add(dataSourceHandle);
}
catch (SemanticException e) { e.printStackTrace();
}
}
this is the exception it throws
java.lang.NullPointerException
at subreport.createDataSources(subreport.java:40)
at subreport.start(subreport.java:99)
at
org.eclipse.equinox.internal.app.EclipseAppHandle.run(Eclips eAppHandle.java:153)
at
org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .runApplication(EclipseAppLauncher.java:106)
at
org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .start(EclipseAppLauncher.java:76)
at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:363)
at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:176)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcce ssorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMe thodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java: 504)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:443)
at org.eclipse.equinox.launcher.Main.run(Main.java:1169)
at org.eclipse.equinox.launcher.Main.main(Main.java:1144)
|
|
|
Re: NULL Pointer Exception problem [message #251152 is a reply to message #251104] |
Fri, 03 August 2007 18:59 |
Eclipse User |
|
|
|
Originally posted by: jasonweathersby.alltel.net
Can you post the entire routine or specify which line below is throwing
the exception?
Jason
slezi wrote:
> Hi,
>
> I don't know why this throws me NULLPointeException
>
> OdaDataSourceHandle dataSourceHandle =
> elementFactory.newOdaDataSource("Data Source",
> "org.eclipse.birt.report.data.oda.xml");
>
> I found this peace of code on the web and many more uses the same syntax
> with some little differences like jdbc etc..
>
> Could you help me to fix it.
>
> exactly:
> private void createDataSources()
> {
> try {
> OdaDataSourceHandle dataSourceHandle;
> dataSourceHandle =
> elementFactory.newOdaDataSource("Data Source",
> "org.eclipse.birt.report.data.oda.xml");
>
> dataSourceHandle.setProperty("FILELIST",
> "/home/slezi/workspace/rep/data/result-1180445164703.xml");
>
>
> designHandle.getDataSources().add(dataSourceHandle);
> }
> catch (SemanticException e) { e.printStackTrace();
> }
> }
>
> this is the exception it throws
> java.lang.NullPointerException
> at subreport.createDataSources(subreport.java:40)
> at subreport.start(subreport.java:99)
> at
> org.eclipse.equinox.internal.app.EclipseAppHandle.run(Eclips eAppHandle.java:153)
> at
> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .runApplication(EclipseAppLauncher.java:106)
> at
> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .start(EclipseAppLauncher.java:76)
> at
> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:363)
> at
> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:176)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcce ssorImpl.java:39)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMe thodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java: 504)
> at org.eclipse.equinox.launcher.Main.basicRun(Main.java:443)
> at org.eclipse.equinox.launcher.Main.run(Main.java:1169)
> at org.eclipse.equinox.launcher.Main.main(Main.java:1144)
|
|
|
Re: NULL Pointer Exception problem [message #251156 is a reply to message #251152] |
Fri, 03 August 2007 19:32 |
Eclipse User |
|
|
|
Originally posted by: jasonweathersby.alltel.net
Here is a working example of this:
Jason
XML File
<people>
<person>
<name>Jonathan</name>
<nicknames>
<nickname>John</nickname>
<nickname>Jon</nickname>
</nicknames>
</person>
<person>
<name>Steven</name>
<nicknames>
<nickname>Steve</nickname>
</nicknames>
</person>
</people>
Code
import java.io.File;
import java.io.IOException;
import org.eclipse.birt.core.framework.Platform;
import org.eclipse.birt.report.model.api.CellHandle;
import org.eclipse.birt.report.model.api.DataItemHandle;
import org.eclipse.birt.report.model.api.DesignConfig;
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.IDesignEngine;
import org.eclipse.birt.report.model.api.IDesignEngineFactory;
import org.eclipse.birt.report.model.api.LabelHandle;
import org.eclipse.birt.report.model.api.PropertyHandle;
import org.eclipse.birt.report.model.api.ReportDesignHandle;
import org.eclipse.birt.report.model.api.RowHandle;
import org.eclipse.birt.report.model.api.OdaDataSetHandle;
import org.eclipse.birt.report.model.api.OdaDataSourceHandle;
import org.eclipse.birt.report.model.api.SessionHandle;
import org.eclipse.birt.report.model.api.StructureFactory;
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.DesignChoiceConst ants;
import org.eclipse.birt.report.model.api.elements.structures.Comput edColumn;
import org.eclipse.birt.report.model.api.metadata.IMetaDataDictiona ry;
import org.eclipse.birt.report.model.elements.interfaces.IReportIte mModel;
import org.eclipse.birt.report.model.elements.interfaces.IStyleMode l;
import com.ibm.icu.util.ULocale;
public class XMLReport
{
ReportDesignHandle reportDesignHandle = null;
ElementFactory elementFactory = null;
IMetaDataDictionary dict = null;
ComputedColumn cs1, cs2, cs3 = null;
public static void main( String[] args ) throws SemanticException,
IOException
{
new XMLReport( ).createReport( );
}
void createReport( ) throws SemanticException, IOException
{
//Configure the Engine and start the Platform
DesignConfig config = new DesignConfig( );
config.setProperty("BIRT_HOME",
"C:/birt/birt-runtime-2_2_0/birt-runtime-2_2_0/ReportEngine");
IDesignEngine engine = null;
try{
Platform.startup( config );
IDesignEngineFactory factory = (IDesignEngineFactory) Platform
.createFactoryObject(
IDesignEngineFactory.EXTENSION_DESIGN_ENGINE_FACTORY );
engine = factory.createDesignEngine( config );
}catch( Exception ex){
ex.printStackTrace();
}
SessionHandle session = engine.newSessionHandle( ULocale.ENGLISH ) ;
// Create a new report
reportDesignHandle = session.createDesign( );
// Element factory is used to create instances of BIRT elements.
elementFactory = reportDesignHandle.getElementFactory( );
dict = new DesignEngine( null ).getMetaData( );
createMasterPages( );
createDataSources( );
createDataSets( );
createBody( );
String outputPath = "output";//$NON-NLS-1$
File outputFolder = new File( outputPath );
if ( !outputFolder.exists( ) && !outputFolder.mkdir( ) )
{
throw new IOException( "Can not create the output folder"
);//$NON-NLS-1$
}
reportDesignHandle.saveAs( "output/desample/XMLReport.rptdesign"
);//$NON-NLS-1$//$NON-NLS-2$
System.out.println("finished");
}
//Scripted Data Set
/*
* private void createDataSources( ) throws SemanticException
{
ScriptDataSourceHandle dataSourceHandle =
elementFactory.newScriptDataSource( "Data Source" );//$NON-NLS-1$
reportDesignHandle.getDataSources( ).add( dataSourceHandle );
}
private void createDataSets( ) throws SemanticException
{
// Data Set
ScriptDataSetHandle dataSetHandle = elementFactory.newScriptDataSet(
"Data
Set" );//$NON-NLS-1$
dataSetHandle.setDataSource( "Data Source" );//$NON-NLS-1$
// Set open( ) in code
dataSetHandle.setOpen( "i=0;"//$NON-NLS-1$
+ "sourcedata = new Array( new Array(3), new Array(3), new Array(3),
new Array(3));"//$NON-NLS-1$
+ "sourcedata[0][0] = 10; "//$NON-NLS-1$
+ "sourcedata[0][1] = \"Ice Bella\";"//$NON-NLS-1$
+ "sourcedata[0][2] = 304;"//$NON-NLS-1$
+ "sourcedata[1][0] = 10; "//$NON-NLS-1$
+ "sourcedata[1][1] = \"Nola Dicci\";"//$NON-NLS-1$
+ "sourcedata[1][2] = 258;"//$NON-NLS-1$
+ "sourcedata[2][0] = 11; "//$NON-NLS-1$
+ "sourcedata[2][1] = \"Ice Bella\";"//$NON-NLS-1$
+ "sourcedata[2][2] = 202;"//$NON-NLS-1$
+ "sourcedata[3][0] = 11; "//$NON-NLS-1$
+ "sourcedata[3][1] = \"Nola Dicci\";"//$NON-NLS-1$
+ "sourcedata[3][2] = 181;" );//$NON-NLS-1$
// Set fetch( ) in code
dataSetHandle.setFetch( "if ( i < 4 ){"//$NON-NLS-1$
+ "row[\"Month\"] = sourcedata[i][0];"//$NON-NLS-1$
+ "row[\"Product\"] = sourcedata[i][1];"//$NON-NLS-1$
+ "row[\"Amount\"] = sourcedata[i][2];"//$NON-NLS-1$
+ "i++;"//$NON-NLS-1$
+ "return true;}" + "else return false;" );//$NON-NLS-1$//$NON-NLS-2$
// Set computed columns
cs1 = StructureFactory.createComputedColumn( );
cs1.setName( "Month" );//$NON-NLS-1$
cs1.setExpression( "row[\"Month\"]" );//$NON-NLS-1$
cs1.setDataType( "integer" );//$NON-NLS-1$
cs2 = StructureFactory.createComputedColumn( );
cs2.setName( "Product" );//$NON-NLS-1$
cs2.setExpression( "row[\"Product\"]" );//$NON-NLS-1$
cs2.setDataType( "string" );//$NON-NLS-1$
cs3 = StructureFactory.createComputedColumn( );
cs3.setName( "Amount" );//$NON-NLS-1$
cs3.setExpression( "row[\"Amount\"]" );//$NON-NLS-1$
cs3.setDataType( "integer" );//$NON-NLS-1$
PropertyHandle computedSet = dataSetHandle.getPropertyHandle(
ScriptDataSetHandle.COMPUTED_COLUMNS_PROP );
computedSet.addItem( cs1 );
computedSet.addItem( cs2 );
computedSet.addItem( cs3 );
reportDesignHandle.getDataSets( ).add( dataSetHandle );
}
*/
private void createDataSources( ) throws SemanticException
{
OdaDataSourceHandle dataSourceHandle =
elementFactory.newOdaDataSource("Data Source",
"org.eclipse.birt.report.data.oda.xml");
dataSourceHandle.setProperty("FILELIST", "C:/temp/xmltest.xml");
reportDesignHandle.getDataSources( ).add( dataSourceHandle );
}
private void createDataSets( ) throws SemanticException
{
// Data Set
OdaDataSetHandle dsHandle = elementFactory.newOdaDataSet( "Data Set",
"org.eclipse.birt.report.data.oda.xml.dataSet" );
dsHandle.setDataSource( "Data Source" );
dsHandle.setQueryText(
" table0#-TNAME-#table0#:#[/people/person/name]#:#{name;String ;} " );
reportDesignHandle.getDataSets( ).add( dsHandle );
}
private void createMasterPages( ) throws ContentException, NameException
{
DesignElementHandle simpleMasterPage =
elementFactory.newSimpleMasterPage( "Master Page" );//$NON-NLS-1$
reportDesignHandle.getMasterPages( ).add( simpleMasterPage );
}
private void createBody( ) throws SemanticException
{
TableHandle table = elementFactory.newTableItem( null, 3, 1, 1, 1 );
table.setProperty( IStyleModel.TEXT_ALIGN_PROP,
DesignChoiceConstants.TEXT_ALIGN_CENTER );
table.setWidth( "80%" );//$NON-NLS-1$
table.setProperty( IReportItemModel.DATA_SET_PROP, "Data Set"
);//$NON-NLS-1$
PropertyHandle computedSet = table.getColumnBindings( );
cs1 = StructureFactory.createComputedColumn( );
cs1.setName("Name");
cs1.setExpression( "dataSetRow[\"name\"]" );//$NON-NLS-1$
computedSet.addItem( cs1 );
// Header
RowHandle header = (RowHandle) table.getHeader( ).get( 0 );
CellHandle tcell = (CellHandle) header.getCells( ).get( 0 );
LabelHandle label = elementFactory.newLabel( null );
label.setText( "Name" );//$NON-NLS-1$
tcell.getContent( ).add( label );
DataItemHandle data = null;
// Detail
RowHandle detail = (RowHandle) table.getDetail( ).get( 0 );
tcell = (CellHandle) detail.getCells( ).get( 0 );
data = elementFactory.newDataItem( null );
data.setResultSetColumn( cs1.getName( ) );
tcell.getContent( ).add( data );
reportDesignHandle.getBody( ).add( table );
}
}
Jason Weathersby wrote:
> Can you post the entire routine or specify which line below is throwing
> the exception?
>
> Jason
>
> slezi wrote:
>> Hi,
>>
>> I don't know why this throws me NULLPointeException
>>
>> OdaDataSourceHandle dataSourceHandle =
>> elementFactory.newOdaDataSource("Data Source",
>> "org.eclipse.birt.report.data.oda.xml");
>>
>> I found this peace of code on the web and many more uses the same syntax
>> with some little differences like jdbc etc..
>>
>> Could you help me to fix it.
>>
>> exactly:
>> private void createDataSources()
>> {
>> try {
>> OdaDataSourceHandle dataSourceHandle;
>> dataSourceHandle =
>> elementFactory.newOdaDataSource("Data Source",
>> "org.eclipse.birt.report.data.oda.xml");
>>
>> dataSourceHandle.setProperty("FILELIST",
>> "/home/slezi/workspace/rep/data/result-1180445164703.xml");
>>
>>
>> designHandle.getDataSources().add(dataSourceHandle);
>> }
>> catch (SemanticException e) {
>> e.printStackTrace();
>> }
>> }
>>
>> this is the exception it throws
>> java.lang.NullPointerException
>> at subreport.createDataSources(subreport.java:40)
>> at subreport.start(subreport.java:99)
>> at
>> org.eclipse.equinox.internal.app.EclipseAppHandle.run(Eclips eAppHandle.java:153)
>>
>> at
>> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .runApplication(EclipseAppLauncher.java:106)
>>
>> at
>> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .start(EclipseAppLauncher.java:76)
>>
>> at
>> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:363)
>>
>> at
>> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:176)
>>
>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>> at
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcce ssorImpl.java:39)
>>
>> at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMe thodAccessorImpl.java:25)
>>
>> at java.lang.reflect.Method.invoke(Method.java:597)
>> at
>> org.eclipse.equinox.launcher.Main.invokeFramework(Main.java: 504)
>> at org.eclipse.equinox.launcher.Main.basicRun(Main.java:443)
>> at org.eclipse.equinox.launcher.Main.run(Main.java:1169)
>> at org.eclipse.equinox.launcher.Main.main(Main.java:1144)
|
|
|
Re: NULL Pointer Exception problem [message #251166 is a reply to message #251156] |
Fri, 03 August 2007 19:40 |
Eclipse User |
|
|
|
Originally posted by: antonin.slezacek.cloudsmith.com
This line throws it
OdaDataSourceHandle dataSourceHandle =
elementFactory.newOdaDataSource("Data Source",
"org.eclipse.birt.report.data.oda.xml");
Jason Weathersby napsal(a):
> Here is a working example of this:
>
> Jason
>
> XML File
> <people>
> <person>
> <name>Jonathan</name>
> <nicknames>
> <nickname>John</nickname>
> <nickname>Jon</nickname>
> </nicknames>
> </person>
> <person>
> <name>Steven</name>
> <nicknames>
> <nickname>Steve</nickname>
> </nicknames>
> </person>
> </people>
>
> Code
>
> import java.io.File;
> import java.io.IOException;
> import org.eclipse.birt.core.framework.Platform;
> import org.eclipse.birt.report.model.api.CellHandle;
> import org.eclipse.birt.report.model.api.DataItemHandle;
> import org.eclipse.birt.report.model.api.DesignConfig;
> 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.IDesignEngine;
> import org.eclipse.birt.report.model.api.IDesignEngineFactory;
> import org.eclipse.birt.report.model.api.LabelHandle;
> import org.eclipse.birt.report.model.api.PropertyHandle;
> import org.eclipse.birt.report.model.api.ReportDesignHandle;
> import org.eclipse.birt.report.model.api.RowHandle;
> import org.eclipse.birt.report.model.api.OdaDataSetHandle;
> import org.eclipse.birt.report.model.api.OdaDataSourceHandle;
> import org.eclipse.birt.report.model.api.SessionHandle;
> import org.eclipse.birt.report.model.api.StructureFactory;
> 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.DesignChoiceConst ants;
> import
> org.eclipse.birt.report.model.api.elements.structures.Comput edColumn;
> import org.eclipse.birt.report.model.api.metadata.IMetaDataDictiona ry;
> import org.eclipse.birt.report.model.elements.interfaces.IReportIte mModel;
> import org.eclipse.birt.report.model.elements.interfaces.IStyleMode l;
>
> import com.ibm.icu.util.ULocale;
>
> public class XMLReport
> {
>
> ReportDesignHandle reportDesignHandle = null;
>
> ElementFactory elementFactory = null;
>
> IMetaDataDictionary dict = null;
>
> ComputedColumn cs1, cs2, cs3 = null;
>
> public static void main( String[] args ) throws SemanticException,
> IOException
> {
> new XMLReport( ).createReport( );
> }
>
> void createReport( ) throws SemanticException, IOException
> {
> //Configure the Engine and start the Platform
> DesignConfig config = new DesignConfig( );
>
> config.setProperty("BIRT_HOME",
> "C:/birt/birt-runtime-2_2_0/birt-runtime-2_2_0/ReportEngine");
> IDesignEngine engine = null;
> try{
>
>
> Platform.startup( config );
> IDesignEngineFactory factory = (IDesignEngineFactory) Platform
> .createFactoryObject(
> IDesignEngineFactory.EXTENSION_DESIGN_ENGINE_FACTORY );
> engine = factory.createDesignEngine( config );
>
> }catch( Exception ex){
> ex.printStackTrace();
> }
>
>
> SessionHandle session = engine.newSessionHandle( ULocale.ENGLISH ) ;
>
>
> // Create a new report
> reportDesignHandle = session.createDesign( );
>
> // Element factory is used to create instances of BIRT elements.
> elementFactory = reportDesignHandle.getElementFactory( );
>
> dict = new DesignEngine( null ).getMetaData( );
>
> createMasterPages( );
> createDataSources( );
> createDataSets( );
> createBody( );
>
> String outputPath = "output";//$NON-NLS-1$
> File outputFolder = new File( outputPath );
> if ( !outputFolder.exists( ) && !outputFolder.mkdir( ) )
> {
> throw new IOException( "Can not create the output folder"
> );//$NON-NLS-1$
> }
> reportDesignHandle.saveAs( "output/desample/XMLReport.rptdesign"
> );//$NON-NLS-1$//$NON-NLS-2$
> System.out.println("finished");
> }
>
> //Scripted Data Set
> /*
> * private void createDataSources( ) throws SemanticException
> {
> ScriptDataSourceHandle dataSourceHandle =
> elementFactory.newScriptDataSource( "Data Source" );//$NON-NLS-1$
> reportDesignHandle.getDataSources( ).add( dataSourceHandle );
> }
>
> private void createDataSets( ) throws SemanticException
> {
> // Data Set
> ScriptDataSetHandle dataSetHandle = elementFactory.newScriptDataSet(
> "Data
> Set" );//$NON-NLS-1$
> dataSetHandle.setDataSource( "Data Source" );//$NON-NLS-1$
>
> // Set open( ) in code
> dataSetHandle.setOpen( "i=0;"//$NON-NLS-1$
> + "sourcedata = new Array( new Array(3), new Array(3), new Array(3),
> new Array(3));"//$NON-NLS-1$
>
> + "sourcedata[0][0] = 10; "//$NON-NLS-1$
> + "sourcedata[0][1] = \"Ice Bella\";"//$NON-NLS-1$
> + "sourcedata[0][2] = 304;"//$NON-NLS-1$
>
> + "sourcedata[1][0] = 10; "//$NON-NLS-1$
> + "sourcedata[1][1] = \"Nola Dicci\";"//$NON-NLS-1$
> + "sourcedata[1][2] = 258;"//$NON-NLS-1$
>
> + "sourcedata[2][0] = 11; "//$NON-NLS-1$
> + "sourcedata[2][1] = \"Ice Bella\";"//$NON-NLS-1$
> + "sourcedata[2][2] = 202;"//$NON-NLS-1$
>
> + "sourcedata[3][0] = 11; "//$NON-NLS-1$
> + "sourcedata[3][1] = \"Nola Dicci\";"//$NON-NLS-1$
> + "sourcedata[3][2] = 181;" );//$NON-NLS-1$
>
> // Set fetch( ) in code
> dataSetHandle.setFetch( "if ( i < 4 ){"//$NON-NLS-1$
> + "row[\"Month\"] = sourcedata[i][0];"//$NON-NLS-1$
> + "row[\"Product\"] = sourcedata[i][1];"//$NON-NLS-1$
> + "row[\"Amount\"] = sourcedata[i][2];"//$NON-NLS-1$
> + "i++;"//$NON-NLS-1$
> + "return true;}" + "else return false;" );//$NON-NLS-1$//$NON-NLS-2$
>
> // Set computed columns
> cs1 = StructureFactory.createComputedColumn( );
> cs1.setName( "Month" );//$NON-NLS-1$
> cs1.setExpression( "row[\"Month\"]" );//$NON-NLS-1$
> cs1.setDataType( "integer" );//$NON-NLS-1$
>
> cs2 = StructureFactory.createComputedColumn( );
> cs2.setName( "Product" );//$NON-NLS-1$
> cs2.setExpression( "row[\"Product\"]" );//$NON-NLS-1$
> cs2.setDataType( "string" );//$NON-NLS-1$
>
> cs3 = StructureFactory.createComputedColumn( );
> cs3.setName( "Amount" );//$NON-NLS-1$
> cs3.setExpression( "row[\"Amount\"]" );//$NON-NLS-1$
> cs3.setDataType( "integer" );//$NON-NLS-1$
>
> PropertyHandle computedSet = dataSetHandle.getPropertyHandle(
> ScriptDataSetHandle.COMPUTED_COLUMNS_PROP );
> computedSet.addItem( cs1 );
> computedSet.addItem( cs2 );
> computedSet.addItem( cs3 );
>
> reportDesignHandle.getDataSets( ).add( dataSetHandle );
> }
> */
>
>
>
> private void createDataSources( ) throws SemanticException
> {
> OdaDataSourceHandle dataSourceHandle =
> elementFactory.newOdaDataSource("Data Source",
> "org.eclipse.birt.report.data.oda.xml");
> dataSourceHandle.setProperty("FILELIST", "C:/temp/xmltest.xml");
> reportDesignHandle.getDataSources( ).add( dataSourceHandle );
> }
>
> private void createDataSets( ) throws SemanticException
> {
> // Data Set
>
> OdaDataSetHandle dsHandle = elementFactory.newOdaDataSet( "Data Set",
> "org.eclipse.birt.report.data.oda.xml.dataSet" );
> dsHandle.setDataSource( "Data Source" );
> dsHandle.setQueryText(
> " table0#-TNAME-#table0#:#[/people/person/name]#:#{name;String ;} " );
>
> reportDesignHandle.getDataSets( ).add( dsHandle );
>
>
> }
>
> private void createMasterPages( ) throws ContentException, NameException
> {
> DesignElementHandle simpleMasterPage =
> elementFactory.newSimpleMasterPage( "Master Page" );//$NON-NLS-1$
> reportDesignHandle.getMasterPages( ).add( simpleMasterPage );
> }
>
>
>
> private void createBody( ) throws SemanticException
> {
>
>
>
> TableHandle table = elementFactory.newTableItem( null, 3, 1, 1, 1 );
> table.setProperty( IStyleModel.TEXT_ALIGN_PROP,
> DesignChoiceConstants.TEXT_ALIGN_CENTER );
> table.setWidth( "80%" );//$NON-NLS-1$
> table.setProperty( IReportItemModel.DATA_SET_PROP, "Data Set"
> );//$NON-NLS-1$
>
> PropertyHandle computedSet = table.getColumnBindings( );
> cs1 = StructureFactory.createComputedColumn( );
>
> cs1.setName("Name");
> cs1.setExpression( "dataSetRow[\"name\"]" );//$NON-NLS-1$
> computedSet.addItem( cs1 );
>
>
>
> // Header
> RowHandle header = (RowHandle) table.getHeader( ).get( 0 );
>
> CellHandle tcell = (CellHandle) header.getCells( ).get( 0 );
> LabelHandle label = elementFactory.newLabel( null );
> label.setText( "Name" );//$NON-NLS-1$
> tcell.getContent( ).add( label );
>
>
>
> DataItemHandle data = null;
> // Detail
> RowHandle detail = (RowHandle) table.getDetail( ).get( 0 );
> tcell = (CellHandle) detail.getCells( ).get( 0 );
> data = elementFactory.newDataItem( null );
> data.setResultSetColumn( cs1.getName( ) );
> tcell.getContent( ).add( data );
>
>
> reportDesignHandle.getBody( ).add( table );
>
>
> }
>
>
> }
>
>
> Jason Weathersby wrote:
>> Can you post the entire routine or specify which line below is
>> throwing the exception?
>>
>> Jason
>>
>> slezi wrote:
>>> Hi,
>>>
>>> I don't know why this throws me NULLPointeException
>>>
>>> OdaDataSourceHandle dataSourceHandle =
>>> elementFactory.newOdaDataSource("Data Source",
>>> "org.eclipse.birt.report.data.oda.xml");
>>>
>>> I found this peace of code on the web and many more uses the same syntax
>>> with some little differences like jdbc etc..
>>>
>>> Could you help me to fix it.
>>>
>>> exactly:
>>> private void createDataSources()
>>> {
>>> try {
>>> OdaDataSourceHandle dataSourceHandle;
>>> dataSourceHandle =
>>> elementFactory.newOdaDataSource("Data Source",
>>> "org.eclipse.birt.report.data.oda.xml");
>>> dataSourceHandle.setProperty("FILELIST",
>>> "/home/slezi/workspace/rep/data/result-1180445164703.xml");
>>>
>>> designHandle.getDataSources().add(dataSourceHandle);
>>> }
>>> catch (SemanticException e) {
>>> e.printStackTrace();
>>> }
>>> }
>>>
>>> this is the exception it throws
>>> java.lang.NullPointerException
>>> at subreport.createDataSources(subreport.java:40)
>>> at subreport.start(subreport.java:99)
>>> at
>>> org.eclipse.equinox.internal.app.EclipseAppHandle.run(Eclips eAppHandle.java:153)
>>>
>>> at
>>> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .runApplication(EclipseAppLauncher.java:106)
>>>
>>> at
>>> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .start(EclipseAppLauncher.java:76)
>>>
>>> at
>>> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:363)
>>>
>>> at
>>> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:176)
>>>
>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>> at
>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcce ssorImpl.java:39)
>>>
>>> at
>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMe thodAccessorImpl.java:25)
>>>
>>> at java.lang.reflect.Method.invoke(Method.java:597)
>>> at
>>> org.eclipse.equinox.launcher.Main.invokeFramework(Main.java: 504)
>>> at org.eclipse.equinox.launcher.Main.basicRun(Main.java:443)
>>> at org.eclipse.equinox.launcher.Main.run(Main.java:1169)
>>> at org.eclipse.equinox.launcher.Main.main(Main.java:1144)
|
|
|
Re: NULL Pointer Exception problem [message #251199 is a reply to message #251166] |
Sat, 04 August 2007 02:19 |
Eclipse User |
|
|
|
Originally posted by: jasonweathersby.alltel.net
Can you try the example I attached.
Also in your example is elementFactory null?
Is this the only Data Source in the report?
Thanks
Jason
slezi wrote:
> This line throws it
>
> OdaDataSourceHandle dataSourceHandle =
> elementFactory.newOdaDataSource("Data Source",
> "org.eclipse.birt.report.data.oda.xml");
>
>
> Jason Weathersby napsal(a):
>> Here is a working example of this:
>>
>> Jason
>>
>> XML File
>> <people>
>> <person>
>> <name>Jonathan</name>
>> <nicknames>
>> <nickname>John</nickname>
>> <nickname>Jon</nickname>
>> </nicknames>
>> </person>
>> <person>
>> <name>Steven</name>
>> <nicknames>
>> <nickname>Steve</nickname>
>> </nicknames>
>> </person>
>> </people>
>>
>> Code
>>
>> import java.io.File;
>> import java.io.IOException;
>> import org.eclipse.birt.core.framework.Platform;
>> import org.eclipse.birt.report.model.api.CellHandle;
>> import org.eclipse.birt.report.model.api.DataItemHandle;
>> import org.eclipse.birt.report.model.api.DesignConfig;
>> 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.IDesignEngine;
>> import org.eclipse.birt.report.model.api.IDesignEngineFactory;
>> import org.eclipse.birt.report.model.api.LabelHandle;
>> import org.eclipse.birt.report.model.api.PropertyHandle;
>> import org.eclipse.birt.report.model.api.ReportDesignHandle;
>> import org.eclipse.birt.report.model.api.RowHandle;
>> import org.eclipse.birt.report.model.api.OdaDataSetHandle;
>> import org.eclipse.birt.report.model.api.OdaDataSourceHandle;
>> import org.eclipse.birt.report.model.api.SessionHandle;
>> import org.eclipse.birt.report.model.api.StructureFactory;
>> 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.DesignChoiceConst ants;
>> import
>> org.eclipse.birt.report.model.api.elements.structures.Comput edColumn;
>> import org.eclipse.birt.report.model.api.metadata.IMetaDataDictiona ry;
>> import org.eclipse.birt.report.model.elements.interfaces.IReportIte mModel;
>> import org.eclipse.birt.report.model.elements.interfaces.IStyleMode l;
>>
>> import com.ibm.icu.util.ULocale;
>>
>> public class XMLReport
>> {
>>
>> ReportDesignHandle reportDesignHandle = null;
>>
>> ElementFactory elementFactory = null;
>>
>> IMetaDataDictionary dict = null;
>>
>> ComputedColumn cs1, cs2, cs3 = null;
>>
>> public static void main( String[] args ) throws SemanticException,
>> IOException
>> {
>> new XMLReport( ).createReport( );
>> }
>>
>> void createReport( ) throws SemanticException, IOException
>> {
>> //Configure the Engine and start the Platform
>> DesignConfig config = new DesignConfig( );
>>
>> config.setProperty("BIRT_HOME",
>> "C:/birt/birt-runtime-2_2_0/birt-runtime-2_2_0/ReportEngine");
>> IDesignEngine engine = null;
>> try{
>>
>>
>> Platform.startup( config );
>> IDesignEngineFactory factory = (IDesignEngineFactory) Platform
>> .createFactoryObject(
>> IDesignEngineFactory.EXTENSION_DESIGN_ENGINE_FACTORY );
>> engine = factory.createDesignEngine( config );
>>
>> }catch( Exception ex){
>> ex.printStackTrace();
>> }
>>
>>
>> SessionHandle session = engine.newSessionHandle( ULocale.ENGLISH ) ;
>>
>>
>> // Create a new report
>> reportDesignHandle = session.createDesign( );
>>
>> // Element factory is used to create instances of BIRT elements.
>> elementFactory = reportDesignHandle.getElementFactory( );
>>
>> dict = new DesignEngine( null ).getMetaData( );
>>
>> createMasterPages( );
>> createDataSources( );
>> createDataSets( );
>> createBody( );
>>
>> String outputPath = "output";//$NON-NLS-1$
>> File outputFolder = new File( outputPath );
>> if ( !outputFolder.exists( ) && !outputFolder.mkdir( ) )
>> {
>> throw new IOException( "Can not create the output folder"
>> );//$NON-NLS-1$
>> }
>> reportDesignHandle.saveAs( "output/desample/XMLReport.rptdesign"
>> );//$NON-NLS-1$//$NON-NLS-2$
>> System.out.println("finished");
>> }
>>
>> //Scripted Data Set
>> /*
>> * private void createDataSources( ) throws SemanticException
>> {
>> ScriptDataSourceHandle dataSourceHandle =
>> elementFactory.newScriptDataSource( "Data Source" );//$NON-NLS-1$
>> reportDesignHandle.getDataSources( ).add( dataSourceHandle );
>> }
>>
>> private void createDataSets( ) throws SemanticException
>> {
>> // Data Set
>> ScriptDataSetHandle dataSetHandle = elementFactory.newScriptDataSet(
>> "Data
>> Set" );//$NON-NLS-1$
>> dataSetHandle.setDataSource( "Data Source" );//$NON-NLS-1$
>>
>> // Set open( ) in code
>> dataSetHandle.setOpen( "i=0;"//$NON-NLS-1$
>> + "sourcedata = new Array( new Array(3), new Array(3), new Array(3),
>> new Array(3));"//$NON-NLS-1$
>>
>> + "sourcedata[0][0] = 10; "//$NON-NLS-1$
>> + "sourcedata[0][1] = \"Ice Bella\";"//$NON-NLS-1$
>> + "sourcedata[0][2] = 304;"//$NON-NLS-1$
>>
>> + "sourcedata[1][0] = 10; "//$NON-NLS-1$
>> + "sourcedata[1][1] = \"Nola Dicci\";"//$NON-NLS-1$
>> + "sourcedata[1][2] = 258;"//$NON-NLS-1$
>>
>> + "sourcedata[2][0] = 11; "//$NON-NLS-1$
>> + "sourcedata[2][1] = \"Ice Bella\";"//$NON-NLS-1$
>> + "sourcedata[2][2] = 202;"//$NON-NLS-1$
>>
>> + "sourcedata[3][0] = 11; "//$NON-NLS-1$
>> + "sourcedata[3][1] = \"Nola Dicci\";"//$NON-NLS-1$
>> + "sourcedata[3][2] = 181;" );//$NON-NLS-1$
>>
>> // Set fetch( ) in code
>> dataSetHandle.setFetch( "if ( i < 4 ){"//$NON-NLS-1$
>> + "row[\"Month\"] = sourcedata[i][0];"//$NON-NLS-1$
>> + "row[\"Product\"] = sourcedata[i][1];"//$NON-NLS-1$
>> + "row[\"Amount\"] = sourcedata[i][2];"//$NON-NLS-1$
>> + "i++;"//$NON-NLS-1$
>> + "return true;}" + "else return false;" );//$NON-NLS-1$//$NON-NLS-2$
>>
>> // Set computed columns
>> cs1 = StructureFactory.createComputedColumn( );
>> cs1.setName( "Month" );//$NON-NLS-1$
>> cs1.setExpression( "row[\"Month\"]" );//$NON-NLS-1$
>> cs1.setDataType( "integer" );//$NON-NLS-1$
>>
>> cs2 = StructureFactory.createComputedColumn( );
>> cs2.setName( "Product" );//$NON-NLS-1$
>> cs2.setExpression( "row[\"Product\"]" );//$NON-NLS-1$
>> cs2.setDataType( "string" );//$NON-NLS-1$
>>
>> cs3 = StructureFactory.createComputedColumn( );
>> cs3.setName( "Amount" );//$NON-NLS-1$
>> cs3.setExpression( "row[\"Amount\"]" );//$NON-NLS-1$
>> cs3.setDataType( "integer" );//$NON-NLS-1$
>>
>> PropertyHandle computedSet = dataSetHandle.getPropertyHandle(
>> ScriptDataSetHandle.COMPUTED_COLUMNS_PROP );
>> computedSet.addItem( cs1 );
>> computedSet.addItem( cs2 );
>> computedSet.addItem( cs3 );
>>
>> reportDesignHandle.getDataSets( ).add( dataSetHandle );
>> }
>> */
>>
>>
>>
>> private void createDataSources( ) throws SemanticException
>> {
>> OdaDataSourceHandle dataSourceHandle =
>> elementFactory.newOdaDataSource("Data Source",
>> "org.eclipse.birt.report.data.oda.xml");
>> dataSourceHandle.setProperty("FILELIST", "C:/temp/xmltest.xml");
>> reportDesignHandle.getDataSources( ).add( dataSourceHandle );
>> }
>>
>> private void createDataSets( ) throws SemanticException
>> {
>> // Data Set
>>
>> OdaDataSetHandle dsHandle = elementFactory.newOdaDataSet( "Data Set",
>> "org.eclipse.birt.report.data.oda.xml.dataSet" );
>> dsHandle.setDataSource( "Data Source" );
>> dsHandle.setQueryText(
>> " table0#-TNAME-#table0#:#[/people/person/name]#:#{name;String ;} " );
>>
>> reportDesignHandle.getDataSets( ).add( dsHandle );
>>
>>
>> }
>>
>> private void createMasterPages( ) throws ContentException, NameException
>> {
>> DesignElementHandle simpleMasterPage =
>> elementFactory.newSimpleMasterPage( "Master Page" );//$NON-NLS-1$
>> reportDesignHandle.getMasterPages( ).add( simpleMasterPage );
>> }
>>
>>
>>
>> private void createBody( ) throws SemanticException
>> {
>>
>>
>>
>> TableHandle table = elementFactory.newTableItem( null, 3, 1, 1, 1 );
>> table.setProperty( IStyleModel.TEXT_ALIGN_PROP,
>> DesignChoiceConstants.TEXT_ALIGN_CENTER );
>> table.setWidth( "80%" );//$NON-NLS-1$
>> table.setProperty( IReportItemModel.DATA_SET_PROP, "Data Set"
>> );//$NON-NLS-1$
>>
>> PropertyHandle computedSet = table.getColumnBindings( );
>> cs1 = StructureFactory.createComputedColumn( );
>>
>> cs1.setName("Name");
>> cs1.setExpression( "dataSetRow[\"name\"]" );//$NON-NLS-1$
>> computedSet.addItem( cs1 );
>>
>>
>>
>> // Header
>> RowHandle header = (RowHandle) table.getHeader( ).get( 0 );
>>
>> CellHandle tcell = (CellHandle) header.getCells( ).get( 0 );
>> LabelHandle label = elementFactory.newLabel( null );
>> label.setText( "Name" );//$NON-NLS-1$
>> tcell.getContent( ).add( label );
>>
>>
>>
>> DataItemHandle data = null;
>> // Detail
>> RowHandle detail = (RowHandle) table.getDetail( ).get( 0 );
>> tcell = (CellHandle) detail.getCells( ).get( 0 );
>> data = elementFactory.newDataItem( null );
>> data.setResultSetColumn( cs1.getName( ) );
>> tcell.getContent( ).add( data );
>>
>>
>> reportDesignHandle.getBody( ).add( table );
>>
>>
>> }
>>
>>
>> }
>>
>>
>> Jason Weathersby wrote:
>>> Can you post the entire routine or specify which line below is
>>> throwing the exception?
>>>
>>> Jason
>>>
>>> slezi wrote:
>>>> Hi,
>>>>
>>>> I don't know why this throws me NULLPointeException
>>>>
>>>> OdaDataSourceHandle dataSourceHandle =
>>>> elementFactory.newOdaDataSource("Data Source",
>>>> "org.eclipse.birt.report.data.oda.xml");
>>>>
>>>> I found this peace of code on the web and many more uses the same syntax
>>>> with some little differences like jdbc etc..
>>>>
>>>> Could you help me to fix it.
>>>>
>>>> exactly:
>>>> private void createDataSources()
>>>> {
>>>> try {
>>>> OdaDataSourceHandle dataSourceHandle;
>>>> dataSourceHandle =
>>>> elementFactory.newOdaDataSource("Data Source",
>>>> "org.eclipse.birt.report.data.oda.xml");
>>>> dataSourceHandle.setProperty("FILELIST",
>>>> "/home/slezi/workspace/rep/data/result-1180445164703.xml");
>>>>
>>>> designHandle.getDataSources().add(dataSourceHandle);
>>>> }
>>>> catch (SemanticException e) {
>>>> e.printStackTrace();
>>>> }
>>>> }
>>>>
>>>> this is the exception it throws
>>>> java.lang.NullPointerException
>>>> at subreport.createDataSources(subreport.java:40)
>>>> at subreport.start(subreport.java:99)
>>>> at
>>>> org.eclipse.equinox.internal.app.EclipseAppHandle.run(Eclips eAppHandle.java:153)
>>>>
>>>> at
>>>> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .runApplication(EclipseAppLauncher.java:106)
>>>>
>>>> at
>>>> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .start(EclipseAppLauncher.java:76)
>>>>
>>>> at
>>>> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:363)
>>>>
>>>> at
>>>> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:176)
>>>>
>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>> at
>>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcce ssorImpl.java:39)
>>>>
>>>> at
>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMe thodAccessorImpl.java:25)
>>>>
>>>> at java.lang.reflect.Method.invoke(Method.java:597)
>>>> at
>>>> org.eclipse.equinox.launcher.Main.invokeFramework(Main.java: 504)
>>>> at org.eclipse.equinox.launcher.Main.basicRun(Main.java:443)
>>>> at org.eclipse.equinox.launcher.Main.run(Main.java:1169)
>>>> at org.eclipse.equinox.launcher.Main.main(Main.java:1144)
|
|
|
Re: NULL Pointer Exception problem [message #252019 is a reply to message #251199] |
Fri, 10 August 2007 17:57 |
Eclipse User |
|
|
|
Originally posted by: antonin.slezacek.cloudsmith.com
I really want to thank you for your help, your example helps me much.
But i've got a question, in your example there is method public static
main .. that mean that you are able to run it as a Java application,
because i have to implement IApplication and add start method for runnig
it like eclipse plugin. If you are able to run it simly like java app,
please note me down how. Thanks a lot.
Jason Weathersby napsal(a):
> Can you try the example I attached.
>
> Also in your example is elementFactory null?
> Is this the only Data Source in the report?
>
>
> Thanks
>
> Jason
>
> slezi wrote:
>> This line throws it
>>
>> OdaDataSourceHandle dataSourceHandle =
>> elementFactory.newOdaDataSource("Data Source",
>> "org.eclipse.birt.report.data.oda.xml");
>>
>>
>> Jason Weathersby napsal(a):
>>> Here is a working example of this:
>>>
>>> Jason
>>>
>>> XML File
>>> <people>
>>> <person>
>>> <name>Jonathan</name>
>>> <nicknames>
>>> <nickname>John</nickname>
>>> <nickname>Jon</nickname>
>>> </nicknames>
>>> </person>
>>> <person>
>>> <name>Steven</name>
>>> <nicknames>
>>> <nickname>Steve</nickname>
>>> </nicknames>
>>> </person>
>>> </people>
>>>
>>> Code
>>>
>>> import java.io.File;
>>> import java.io.IOException;
>>> import org.eclipse.birt.core.framework.Platform;
>>> import org.eclipse.birt.report.model.api.CellHandle;
>>> import org.eclipse.birt.report.model.api.DataItemHandle;
>>> import org.eclipse.birt.report.model.api.DesignConfig;
>>> 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.IDesignEngine;
>>> import org.eclipse.birt.report.model.api.IDesignEngineFactory;
>>> import org.eclipse.birt.report.model.api.LabelHandle;
>>> import org.eclipse.birt.report.model.api.PropertyHandle;
>>> import org.eclipse.birt.report.model.api.ReportDesignHandle;
>>> import org.eclipse.birt.report.model.api.RowHandle;
>>> import org.eclipse.birt.report.model.api.OdaDataSetHandle;
>>> import org.eclipse.birt.report.model.api.OdaDataSourceHandle;
>>> import org.eclipse.birt.report.model.api.SessionHandle;
>>> import org.eclipse.birt.report.model.api.StructureFactory;
>>> 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.DesignChoiceConst ants;
>>> import
>>> org.eclipse.birt.report.model.api.elements.structures.Comput edColumn;
>>> import org.eclipse.birt.report.model.api.metadata.IMetaDataDictiona ry;
>>> import
>>> org.eclipse.birt.report.model.elements.interfaces.IReportIte mModel;
>>> import org.eclipse.birt.report.model.elements.interfaces.IStyleMode l;
>>>
>>> import com.ibm.icu.util.ULocale;
>>>
>>> public class XMLReport
>>> {
>>>
>>> ReportDesignHandle reportDesignHandle = null;
>>>
>>> ElementFactory elementFactory = null;
>>>
>>> IMetaDataDictionary dict = null;
>>>
>>> ComputedColumn cs1, cs2, cs3 = null;
>>>
>>> public static void main( String[] args ) throws SemanticException,
>>> IOException
>>> {
>>> new XMLReport( ).createReport( );
>>> }
>>>
>>> void createReport( ) throws SemanticException, IOException
>>> {
>>> //Configure the Engine and start the Platform
>>> DesignConfig config = new DesignConfig( );
>>>
>>> config.setProperty("BIRT_HOME",
>>> "C:/birt/birt-runtime-2_2_0/birt-runtime-2_2_0/ReportEngine");
>>> IDesignEngine engine = null;
>>> try{
>>>
>>>
>>> Platform.startup( config );
>>> IDesignEngineFactory factory = (IDesignEngineFactory) Platform
>>> .createFactoryObject(
>>> IDesignEngineFactory.EXTENSION_DESIGN_ENGINE_FACTORY );
>>> engine = factory.createDesignEngine( config );
>>>
>>> }catch( Exception ex){
>>> ex.printStackTrace();
>>> }
>>>
>>>
>>> SessionHandle session = engine.newSessionHandle( ULocale.ENGLISH ) ;
>>>
>>>
>>> // Create a new report
>>> reportDesignHandle = session.createDesign( );
>>>
>>> // Element factory is used to create instances of BIRT elements.
>>> elementFactory = reportDesignHandle.getElementFactory( );
>>>
>>> dict = new DesignEngine( null ).getMetaData( );
>>>
>>> createMasterPages( );
>>> createDataSources( );
>>> createDataSets( );
>>> createBody( );
>>>
>>> String outputPath = "output";//$NON-NLS-1$
>>> File outputFolder = new File( outputPath );
>>> if ( !outputFolder.exists( ) && !outputFolder.mkdir( ) )
>>> {
>>> throw new IOException( "Can not create the output folder"
>>> );//$NON-NLS-1$
>>> }
>>> reportDesignHandle.saveAs( "output/desample/XMLReport.rptdesign"
>>> );//$NON-NLS-1$//$NON-NLS-2$
>>> System.out.println("finished");
>>> }
>>>
>>> //Scripted Data Set
>>> /*
>>> * private void createDataSources( ) throws SemanticException
>>> {
>>> ScriptDataSourceHandle dataSourceHandle =
>>> elementFactory.newScriptDataSource( "Data Source" );//$NON-NLS-1$
>>> reportDesignHandle.getDataSources( ).add( dataSourceHandle );
>>> }
>>>
>>> private void createDataSets( ) throws SemanticException
>>> {
>>> // Data Set
>>> ScriptDataSetHandle dataSetHandle = elementFactory.newScriptDataSet(
>>> "Data
>>> Set" );//$NON-NLS-1$
>>> dataSetHandle.setDataSource( "Data Source" );//$NON-NLS-1$
>>>
>>> // Set open( ) in code
>>> dataSetHandle.setOpen( "i=0;"//$NON-NLS-1$
>>> + "sourcedata = new Array( new Array(3), new Array(3), new Array(3),
>>> new Array(3));"//$NON-NLS-1$
>>>
>>> + "sourcedata[0][0] = 10; "//$NON-NLS-1$
>>> + "sourcedata[0][1] = \"Ice Bella\";"//$NON-NLS-1$
>>> + "sourcedata[0][2] = 304;"//$NON-NLS-1$
>>>
>>> + "sourcedata[1][0] = 10; "//$NON-NLS-1$
>>> + "sourcedata[1][1] = \"Nola Dicci\";"//$NON-NLS-1$
>>> + "sourcedata[1][2] = 258;"//$NON-NLS-1$
>>>
>>> + "sourcedata[2][0] = 11; "//$NON-NLS-1$
>>> + "sourcedata[2][1] = \"Ice Bella\";"//$NON-NLS-1$
>>> + "sourcedata[2][2] = 202;"//$NON-NLS-1$
>>>
>>> + "sourcedata[3][0] = 11; "//$NON-NLS-1$
>>> + "sourcedata[3][1] = \"Nola Dicci\";"//$NON-NLS-1$
>>> + "sourcedata[3][2] = 181;" );//$NON-NLS-1$
>>>
>>> // Set fetch( ) in code
>>> dataSetHandle.setFetch( "if ( i < 4 ){"//$NON-NLS-1$
>>> + "row[\"Month\"] = sourcedata[i][0];"//$NON-NLS-1$
>>> + "row[\"Product\"] = sourcedata[i][1];"//$NON-NLS-1$
>>> + "row[\"Amount\"] = sourcedata[i][2];"//$NON-NLS-1$
>>> + "i++;"//$NON-NLS-1$
>>> + "return true;}" + "else return false;"
>>> );//$NON-NLS-1$//$NON-NLS-2$
>>>
>>> // Set computed columns
>>> cs1 = StructureFactory.createComputedColumn( );
>>> cs1.setName( "Month" );//$NON-NLS-1$
>>> cs1.setExpression( "row[\"Month\"]" );//$NON-NLS-1$
>>> cs1.setDataType( "integer" );//$NON-NLS-1$
>>>
>>> cs2 = StructureFactory.createComputedColumn( );
>>> cs2.setName( "Product" );//$NON-NLS-1$
>>> cs2.setExpression( "row[\"Product\"]" );//$NON-NLS-1$
>>> cs2.setDataType( "string" );//$NON-NLS-1$
>>>
>>> cs3 = StructureFactory.createComputedColumn( );
>>> cs3.setName( "Amount" );//$NON-NLS-1$
>>> cs3.setExpression( "row[\"Amount\"]" );//$NON-NLS-1$
>>> cs3.setDataType( "integer" );//$NON-NLS-1$
>>>
>>> PropertyHandle computedSet = dataSetHandle.getPropertyHandle(
>>> ScriptDataSetHandle.COMPUTED_COLUMNS_PROP );
>>> computedSet.addItem( cs1 );
>>> computedSet.addItem( cs2 );
>>> computedSet.addItem( cs3 );
>>>
>>> reportDesignHandle.getDataSets( ).add( dataSetHandle );
>>> }
>>> */
>>>
>>>
>>>
>>> private void createDataSources( ) throws SemanticException
>>> {
>>> OdaDataSourceHandle dataSourceHandle =
>>> elementFactory.newOdaDataSource("Data Source",
>>> "org.eclipse.birt.report.data.oda.xml");
>>> dataSourceHandle.setProperty("FILELIST", "C:/temp/xmltest.xml");
>>> reportDesignHandle.getDataSources( ).add( dataSourceHandle );
>>> }
>>>
>>> private void createDataSets( ) throws SemanticException
>>> {
>>> // Data Set
>>>
>>> OdaDataSetHandle dsHandle = elementFactory.newOdaDataSet( "Data Set",
>>> "org.eclipse.birt.report.data.oda.xml.dataSet" );
>>> dsHandle.setDataSource( "Data Source" );
>>> dsHandle.setQueryText(
>>> " table0#-TNAME-#table0#:#[/people/person/name]#:#{name;String ;} " );
>>>
>>> reportDesignHandle.getDataSets( ).add( dsHandle );
>>>
>>>
>>> }
>>>
>>> private void createMasterPages( ) throws ContentException,
>>> NameException
>>> {
>>> DesignElementHandle simpleMasterPage =
>>> elementFactory.newSimpleMasterPage( "Master Page" );//$NON-NLS-1$
>>> reportDesignHandle.getMasterPages( ).add( simpleMasterPage );
>>> }
>>>
>>>
>>>
>>> private void createBody( ) throws SemanticException
>>> {
>>>
>>>
>>>
>>> TableHandle table = elementFactory.newTableItem( null, 3, 1, 1, 1 );
>>> table.setProperty( IStyleModel.TEXT_ALIGN_PROP,
>>> DesignChoiceConstants.TEXT_ALIGN_CENTER );
>>> table.setWidth( "80%" );//$NON-NLS-1$
>>> table.setProperty( IReportItemModel.DATA_SET_PROP, "Data Set"
>>> );//$NON-NLS-1$
>>>
>>> PropertyHandle computedSet = table.getColumnBindings( );
>>> cs1 = StructureFactory.createComputedColumn( );
>>>
>>> cs1.setName("Name");
>>> cs1.setExpression( "dataSetRow[\"name\"]" );//$NON-NLS-1$
>>> computedSet.addItem( cs1 );
>>>
>>>
>>>
>>> // Header
>>> RowHandle header = (RowHandle) table.getHeader( ).get( 0 );
>>>
>>> CellHandle tcell = (CellHandle) header.getCells( ).get( 0 );
>>> LabelHandle label = elementFactory.newLabel( null );
>>> label.setText( "Name" );//$NON-NLS-1$
>>> tcell.getContent( ).add( label );
>>>
>>>
>>>
>>> DataItemHandle data = null;
>>> // Detail
>>> RowHandle detail = (RowHandle) table.getDetail( ).get( 0 );
>>> tcell = (CellHandle) detail.getCells( ).get( 0 );
>>> data = elementFactory.newDataItem( null );
>>> data.setResultSetColumn( cs1.getName( ) );
>>> tcell.getContent( ).add( data );
>>>
>>>
>>> reportDesignHandle.getBody( ).add( table );
>>>
>>>
>>> }
>>>
>>>
>>> }
>>>
>>>
>>> Jason Weathersby wrote:
>>>> Can you post the entire routine or specify which line below is
>>>> throwing the exception?
>>>>
>>>> Jason
>>>>
>>>> slezi wrote:
>>>>> Hi,
>>>>>
>>>>> I don't know why this throws me NULLPointeException
>>>>>
>>>>> OdaDataSourceHandle dataSourceHandle =
>>>>> elementFactory.newOdaDataSource("Data Source",
>>>>> "org.eclipse.birt.report.data.oda.xml");
>>>>>
>>>>> I found this peace of code on the web and many more uses the same
>>>>> syntax
>>>>> with some little differences like jdbc etc..
>>>>>
>>>>> Could you help me to fix it.
>>>>>
>>>>> exactly:
>>>>> private void createDataSources()
>>>>> {
>>>>> try {
>>>>> OdaDataSourceHandle dataSourceHandle;
>>>>> dataSourceHandle =
>>>>> elementFactory.newOdaDataSource("Data Source",
>>>>> "org.eclipse.birt.report.data.oda.xml");
>>>>> dataSourceHandle.setProperty("FILELIST",
>>>>> "/home/slezi/workspace/rep/data/result-1180445164703.xml");
>>>>>
>>>>> designHandle.getDataSources().add(dataSourceHandle);
>>>>> }
>>>>> catch (SemanticException e) {
>>>>> e.printStackTrace();
>>>>> }
>>>>> }
>>>>>
>>>>> this is the exception it throws
>>>>> java.lang.NullPointerException
>>>>> at subreport.createDataSources(subreport.java:40)
>>>>> at subreport.start(subreport.java:99)
>>>>> at
>>>>> org.eclipse.equinox.internal.app.EclipseAppHandle.run(Eclips eAppHandle.java:153)
>>>>>
>>>>>
>>>>> at
>>>>> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .runApplication(EclipseAppLauncher.java:106)
>>>>>
>>>>>
>>>>> at
>>>>> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .start(EclipseAppLauncher.java:76)
>>>>>
>>>>>
>>>>> at
>>>>> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:363)
>>>>>
>>>>>
>>>>> at
>>>>> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:176)
>>>>>
>>>>>
>>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>>> at
>>>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcce ssorImpl.java:39)
>>>>>
>>>>>
>>>>> at
>>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMe thodAccessorImpl.java:25)
>>>>>
>>>>>
>>>>> at java.lang.reflect.Method.invoke(Method.java:597)
>>>>> at
>>>>> org.eclipse.equinox.launcher.Main.invokeFramework(Main.java: 504)
>>>>> at org.eclipse.equinox.launcher.Main.basicRun(Main.java:443)
>>>>> at org.eclipse.equinox.launcher.Main.run(Main.java:1169)
>>>>> at org.eclipse.equinox.launcher.Main.main(Main.java:1144)
|
|
|
Re: NULL Pointer Exception problem [message #252084 is a reply to message #252019] |
Fri, 10 August 2007 21:41 |
Eclipse User |
|
|
|
Originally posted by: jasonweathersby.alltel.net
Take a look at this page:
http://wiki.eclipse.org/RCP_Example
There are two examples one to show using the viewer in an rcp
application and one to show using the report engine api. Look at the
report engine api example. To use the design engine api will be very
similar.
Jason
slezi wrote:
> I really want to thank you for your help, your example helps me much.
> But i've got a question, in your example there is method public static
> main .. that mean that you are able to run it as a Java application,
> because i have to implement IApplication and add start method for runnig
> it like eclipse plugin. If you are able to run it simly like java app,
> please note me down how. Thanks a lot.
>
> Jason Weathersby napsal(a):
>> Can you try the example I attached.
>>
>> Also in your example is elementFactory null?
>> Is this the only Data Source in the report?
>>
>>
>> Thanks
>>
>> Jason
>>
>> slezi wrote:
>>> This line throws it
>>>
>>> OdaDataSourceHandle dataSourceHandle =
>>> elementFactory.newOdaDataSource("Data Source",
>>> "org.eclipse.birt.report.data.oda.xml");
>>>
>>>
>>> Jason Weathersby napsal(a):
>>>> Here is a working example of this:
>>>>
>>>> Jason
>>>>
>>>> XML File
>>>> <people>
>>>> <person>
>>>> <name>Jonathan</name>
>>>> <nicknames>
>>>> <nickname>John</nickname>
>>>> <nickname>Jon</nickname>
>>>> </nicknames>
>>>> </person>
>>>> <person>
>>>> <name>Steven</name>
>>>> <nicknames>
>>>> <nickname>Steve</nickname>
>>>> </nicknames>
>>>> </person>
>>>> </people>
>>>>
>>>> Code
>>>>
>>>> import java.io.File;
>>>> import java.io.IOException;
>>>> import org.eclipse.birt.core.framework.Platform;
>>>> import org.eclipse.birt.report.model.api.CellHandle;
>>>> import org.eclipse.birt.report.model.api.DataItemHandle;
>>>> import org.eclipse.birt.report.model.api.DesignConfig;
>>>> 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.IDesignEngine;
>>>> import org.eclipse.birt.report.model.api.IDesignEngineFactory;
>>>> import org.eclipse.birt.report.model.api.LabelHandle;
>>>> import org.eclipse.birt.report.model.api.PropertyHandle;
>>>> import org.eclipse.birt.report.model.api.ReportDesignHandle;
>>>> import org.eclipse.birt.report.model.api.RowHandle;
>>>> import org.eclipse.birt.report.model.api.OdaDataSetHandle;
>>>> import org.eclipse.birt.report.model.api.OdaDataSourceHandle;
>>>> import org.eclipse.birt.report.model.api.SessionHandle;
>>>> import org.eclipse.birt.report.model.api.StructureFactory;
>>>> 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.DesignChoiceConst ants;
>>>> import
>>>> org.eclipse.birt.report.model.api.elements.structures.Comput edColumn;
>>>> import org.eclipse.birt.report.model.api.metadata.IMetaDataDictiona ry;
>>>> import
>>>> org.eclipse.birt.report.model.elements.interfaces.IReportIte mModel;
>>>> import org.eclipse.birt.report.model.elements.interfaces.IStyleMode l;
>>>>
>>>> import com.ibm.icu.util.ULocale;
>>>>
>>>> public class XMLReport
>>>> {
>>>>
>>>> ReportDesignHandle reportDesignHandle = null;
>>>>
>>>> ElementFactory elementFactory = null;
>>>>
>>>> IMetaDataDictionary dict = null;
>>>>
>>>> ComputedColumn cs1, cs2, cs3 = null;
>>>>
>>>> public static void main( String[] args ) throws SemanticException,
>>>> IOException
>>>> {
>>>> new XMLReport( ).createReport( );
>>>> }
>>>>
>>>> void createReport( ) throws SemanticException, IOException
>>>> {
>>>> //Configure the Engine and start the Platform
>>>> DesignConfig config = new DesignConfig( );
>>>>
>>>> config.setProperty("BIRT_HOME",
>>>> "C:/birt/birt-runtime-2_2_0/birt-runtime-2_2_0/ReportEngine");
>>>> IDesignEngine engine = null;
>>>> try{
>>>>
>>>>
>>>> Platform.startup( config );
>>>> IDesignEngineFactory factory = (IDesignEngineFactory) Platform
>>>> .createFactoryObject(
>>>> IDesignEngineFactory.EXTENSION_DESIGN_ENGINE_FACTORY );
>>>> engine = factory.createDesignEngine( config );
>>>>
>>>> }catch( Exception ex){
>>>> ex.printStackTrace();
>>>> }
>>>>
>>>>
>>>> SessionHandle session = engine.newSessionHandle( ULocale.ENGLISH ) ;
>>>>
>>>>
>>>> // Create a new report
>>>> reportDesignHandle = session.createDesign( );
>>>>
>>>> // Element factory is used to create instances of BIRT elements.
>>>> elementFactory = reportDesignHandle.getElementFactory( );
>>>>
>>>> dict = new DesignEngine( null ).getMetaData( );
>>>>
>>>> createMasterPages( );
>>>> createDataSources( );
>>>> createDataSets( );
>>>> createBody( );
>>>>
>>>> String outputPath = "output";//$NON-NLS-1$
>>>> File outputFolder = new File( outputPath );
>>>> if ( !outputFolder.exists( ) && !outputFolder.mkdir( ) )
>>>> {
>>>> throw new IOException( "Can not create the output folder"
>>>> );//$NON-NLS-1$
>>>> }
>>>> reportDesignHandle.saveAs( "output/desample/XMLReport.rptdesign"
>>>> );//$NON-NLS-1$//$NON-NLS-2$
>>>> System.out.println("finished");
>>>> }
>>>>
>>>> //Scripted Data Set
>>>> /*
>>>> * private void createDataSources( ) throws SemanticException
>>>> {
>>>> ScriptDataSourceHandle dataSourceHandle =
>>>> elementFactory.newScriptDataSource( "Data Source" );//$NON-NLS-1$
>>>> reportDesignHandle.getDataSources( ).add( dataSourceHandle );
>>>> }
>>>>
>>>> private void createDataSets( ) throws SemanticException
>>>> {
>>>> // Data Set
>>>> ScriptDataSetHandle dataSetHandle = elementFactory.newScriptDataSet(
>>>> "Data
>>>> Set" );//$NON-NLS-1$
>>>> dataSetHandle.setDataSource( "Data Source" );//$NON-NLS-1$
>>>>
>>>> // Set open( ) in code
>>>> dataSetHandle.setOpen( "i=0;"//$NON-NLS-1$
>>>> + "sourcedata = new Array( new Array(3), new Array(3), new Array(3),
>>>> new Array(3));"//$NON-NLS-1$
>>>>
>>>> + "sourcedata[0][0] = 10; "//$NON-NLS-1$
>>>> + "sourcedata[0][1] = \"Ice Bella\";"//$NON-NLS-1$
>>>> + "sourcedata[0][2] = 304;"//$NON-NLS-1$
>>>>
>>>> + "sourcedata[1][0] = 10; "//$NON-NLS-1$
>>>> + "sourcedata[1][1] = \"Nola Dicci\";"//$NON-NLS-1$
>>>> + "sourcedata[1][2] = 258;"//$NON-NLS-1$
>>>>
>>>> + "sourcedata[2][0] = 11; "//$NON-NLS-1$
>>>> + "sourcedata[2][1] = \"Ice Bella\";"//$NON-NLS-1$
>>>> + "sourcedata[2][2] = 202;"//$NON-NLS-1$
>>>>
>>>> + "sourcedata[3][0] = 11; "//$NON-NLS-1$
>>>> + "sourcedata[3][1] = \"Nola Dicci\";"//$NON-NLS-1$
>>>> + "sourcedata[3][2] = 181;" );//$NON-NLS-1$
>>>>
>>>> // Set fetch( ) in code
>>>> dataSetHandle.setFetch( "if ( i < 4 ){"//$NON-NLS-1$
>>>> + "row[\"Month\"] = sourcedata[i][0];"//$NON-NLS-1$
>>>> + "row[\"Product\"] = sourcedata[i][1];"//$NON-NLS-1$
>>>> + "row[\"Amount\"] = sourcedata[i][2];"//$NON-NLS-1$
>>>> + "i++;"//$NON-NLS-1$
>>>> + "return true;}" + "else return false;"
>>>> );//$NON-NLS-1$//$NON-NLS-2$
>>>>
>>>> // Set computed columns
>>>> cs1 = StructureFactory.createComputedColumn( );
>>>> cs1.setName( "Month" );//$NON-NLS-1$
>>>> cs1.setExpression( "row[\"Month\"]" );//$NON-NLS-1$
>>>> cs1.setDataType( "integer" );//$NON-NLS-1$
>>>>
>>>> cs2 = StructureFactory.createComputedColumn( );
>>>> cs2.setName( "Product" );//$NON-NLS-1$
>>>> cs2.setExpression( "row[\"Product\"]" );//$NON-NLS-1$
>>>> cs2.setDataType( "string" );//$NON-NLS-1$
>>>>
>>>> cs3 = StructureFactory.createComputedColumn( );
>>>> cs3.setName( "Amount" );//$NON-NLS-1$
>>>> cs3.setExpression( "row[\"Amount\"]" );//$NON-NLS-1$
>>>> cs3.setDataType( "integer" );//$NON-NLS-1$
>>>>
>>>> PropertyHandle computedSet = dataSetHandle.getPropertyHandle(
>>>> ScriptDataSetHandle.COMPUTED_COLUMNS_PROP );
>>>> computedSet.addItem( cs1 );
>>>> computedSet.addItem( cs2 );
>>>> computedSet.addItem( cs3 );
>>>>
>>>> reportDesignHandle.getDataSets( ).add( dataSetHandle );
>>>> }
>>>> */
>>>>
>>>>
>>>>
>>>> private void createDataSources( ) throws SemanticException
>>>> {
>>>> OdaDataSourceHandle dataSourceHandle =
>>>> elementFactory.newOdaDataSource("Data Source",
>>>> "org.eclipse.birt.report.data.oda.xml");
>>>> dataSourceHandle.setProperty("FILELIST", "C:/temp/xmltest.xml");
>>>> reportDesignHandle.getDataSources( ).add( dataSourceHandle );
>>>> }
>>>>
>>>> private void createDataSets( ) throws SemanticException
>>>> {
>>>> // Data Set
>>>>
>>>> OdaDataSetHandle dsHandle = elementFactory.newOdaDataSet( "Data Set",
>>>> "org.eclipse.birt.report.data.oda.xml.dataSet" );
>>>> dsHandle.setDataSource( "Data Source" );
>>>> dsHandle.setQueryText(
>>>> " table0#-TNAME-#table0#:#[/people/person/name]#:#{name;String ;} " );
>>>>
>>>> reportDesignHandle.getDataSets( ).add( dsHandle );
>>>>
>>>>
>>>> }
>>>>
>>>> private void createMasterPages( ) throws ContentException,
>>>> NameException
>>>> {
>>>> DesignElementHandle simpleMasterPage =
>>>> elementFactory.newSimpleMasterPage( "Master Page" );//$NON-NLS-1$
>>>> reportDesignHandle.getMasterPages( ).add( simpleMasterPage );
>>>> }
>>>>
>>>>
>>>>
>>>> private void createBody( ) throws SemanticException
>>>> {
>>>>
>>>>
>>>>
>>>> TableHandle table = elementFactory.newTableItem( null, 3, 1, 1, 1 );
>>>> table.setProperty( IStyleModel.TEXT_ALIGN_PROP,
>>>> DesignChoiceConstants.TEXT_ALIGN_CENTER );
>>>> table.setWidth( "80%" );//$NON-NLS-1$
>>>> table.setProperty( IReportItemModel.DATA_SET_PROP, "Data Set"
>>>> );//$NON-NLS-1$
>>>>
>>>> PropertyHandle computedSet = table.getColumnBindings( );
>>>> cs1 = StructureFactory.createComputedColumn( );
>>>>
>>>> cs1.setName("Name");
>>>> cs1.setExpression( "dataSetRow[\"name\"]" );//$NON-NLS-1$
>>>> computedSet.addItem( cs1 );
>>>>
>>>>
>>>>
>>>> // Header
>>>> RowHandle header = (RowHandle) table.getHeader( ).get( 0 );
>>>>
>>>> CellHandle tcell = (CellHandle) header.getCells( ).get( 0 );
>>>> LabelHandle label = elementFactory.newLabel( null );
>>>> label.setText( "Name" );//$NON-NLS-1$
>>>> tcell.getContent( ).add( label );
>>>>
>>>>
>>>>
>>>> DataItemHandle data = null;
>>>> // Detail
>>>> RowHandle detail = (RowHandle) table.getDetail( ).get( 0 );
>>>> tcell = (CellHandle) detail.getCells( ).get( 0 );
>>>> data = elementFactory.newDataItem( null );
>>>> data.setResultSetColumn( cs1.getName( ) );
>>>> tcell.getContent( ).add( data );
>>>>
>>>>
>>>> reportDesignHandle.getBody( ).add( table );
>>>>
>>>>
>>>> }
>>>>
>>>>
>>>> }
>>>>
>>>>
>>>> Jason Weathersby wrote:
>>>>> Can you post the entire routine or specify which line below is
>>>>> throwing the exception?
>>>>>
>>>>> Jason
>>>>>
>>>>> slezi wrote:
>>>>>> Hi,
>>>>>>
>>>>>> I don't know why this throws me NULLPointeException
>>>>>>
>>>>>> OdaDataSourceHandle dataSourceHandle =
>>>>>> elementFactory.newOdaDataSource("Data Source",
>>>>>> "org.eclipse.birt.report.data.oda.xml");
>>>>>>
>>>>>> I found this peace of code on the web and many more uses the same
>>>>>> syntax
>>>>>> with some little differences like jdbc etc..
>>>>>>
>>>>>> Could you help me to fix it.
>>>>>>
>>>>>> exactly:
>>>>>> private void createDataSources()
>>>>>> {
>>>>>> try {
>>>>>> OdaDataSourceHandle dataSourceHandle;
>>>>>> dataSourceHandle =
>>>>>> elementFactory.newOdaDataSource("Data Source",
>>>>>> "org.eclipse.birt.report.data.oda.xml");
>>>>>> dataSourceHandle.setProperty("FILELIST",
>>>>>> "/home/slezi/workspace/rep/data/result-1180445164703.xml");
>>>>>>
>>>>>> designHandle.getDataSources().add(dataSourceHandle);
>>>>>> }
>>>>>> catch (SemanticException e) {
>>>>>> e.printStackTrace();
>>>>>> }
>>>>>> }
>>>>>>
>>>>>> this is the exception it throws
>>>>>> java.lang.NullPointerException
>>>>>> at subreport.createDataSources(subreport.java:40)
>>>>>> at subreport.start(subreport.java:99)
>>>>>> at
>>>>>> org.eclipse.equinox.internal.app.EclipseAppHandle.run(Eclips eAppHandle.java:153)
>>>>>>
>>>>>>
>>>>>> at
>>>>>> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .runApplication(EclipseAppLauncher.java:106)
>>>>>>
>>>>>>
>>>>>> at
>>>>>> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .start(EclipseAppLauncher.java:76)
>>>>>>
>>>>>>
>>>>>> at
>>>>>> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:363)
>>>>>>
>>>>>>
>>>>>> at
>>>>>> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:176)
>>>>>>
>>>>>>
>>>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>>>> at
>>>>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcce ssorImpl.java:39)
>>>>>>
>>>>>>
>>>>>> at
>>>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMe thodAccessorImpl.java:25)
>>>>>>
>>>>>>
>>>>>> at java.lang.reflect.Method.invoke(Method.java:597)
>>>>>> at
>>>>>> org.eclipse.equinox.launcher.Main.invokeFramework(Main.java: 504)
>>>>>> at org.eclipse.equinox.launcher.Main.basicRun(Main.java:443)
>>>>>> at org.eclipse.equinox.launcher.Main.run(Main.java:1169)
>>>>>> at org.eclipse.equinox.launcher.Main.main(Main.java:1144)
|
|
|
Goto Forum:
Current Time: Thu Nov 07 06:01:56 GMT 2024
Powered by FUDForum. Page generated in 0.03901 seconds
|