Hello again, I've following this "tutorial" for creating a dynamic datasource switch. I want to use one report, but each client have their own datasource. http://community.jaspersoft.com/wiki/switching-datasource-based-user I'm using JasperServer 5.5.0 with the installer and iReport 5.5.0 with the installer So, after many searches, finally I got working the jar, but when I run the report on the jasperserver web admin. I got the java.lang.NullPointerException I'm going to attach the files and a screenshot of the error, and, at the bottom the source code. Thanks for your help! Best regards! JasperServerCustomDataSource.java package com.jasperserver.custom.datasource;import java.util.Map;import java.sql.SQLException;import net.sf.jasperreports.engine.JRParameter;import org.springframework.context.i18n.LocaleContextHolder;import com.jaspersoft.jasperserver.api.metadata.jasperreports.domain.ReportDataSource;import com.jaspersoft.jasperserver.api.metadata.jasperreports.service.ReportDataSourceService;import com.jaspersoft.jasperserver.api.common.domain.ExecutionContext;import com.jaspersoft.jasperserver.api.common.service.BeanForInterfaceImplementationFactory;import com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.JdbcDataSourceService;import com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.JdbcReportDataSourceServiceFactory;//import com.jaspersoft.jasperserver.api.engine.jasperreports.util.DataSourceServiceFactory;import com.jaspersoft.jasperserver.war.common.JasperServerUtil;import com.jaspersoft.jasperserver.api.metadata.common.service.RepositoryService;public class JasperServerCustomDataSource implements ReportDataSourceService {private JdbcDataSourceService connection;private RepositoryService repositoryService;private BeanForInterfaceImplementationFactory dataSourceServiceFactory;//private DataSourceServiceFactory dataSourceServiceFactory;public JasperServerCustomDataSource(RepositoryService repositoryService, BeanForInterfaceImplementationFactory dsServiceFactory) { super(); this.repositoryService = repositoryService; this.dataSourceServiceFactory = dsServiceFactory;}@SuppressWarnings({ "unchecked", "rawtypes" })public void setReportParameterValues(Map parametersValue) { String ds_name = (String) parametersValue.get("jasper_ds_name"); if( (ds_name == null) || (ds_name.isEmpty()) ) { ds_name = "CUSTOMER_DS1"; } String ds_uri = "/datasources/" + ds_name; connection = getRepositoryDatasource(ds_uri); try { parametersValue.put(JRParameter.REPORT_CONNECTION, connection .getDataSource().getConnection()); } catch (SQLException e) { e.printStackTrace(); }}public JdbcDataSourceService getRepositoryDatasource(String repositoryURI) { ExecutionContext context = JasperServerUtil .getExecutionContext(LocaleContextHolder.getLocale()); ReportDataSource datasource = (ReportDataSource) repositoryService .getResource(context, repositoryURI); JdbcReportDataSourceServiceFactory factory = (JdbcReportDataSourceServiceFactory) dataSourceServiceFactory .getBean(datasource.getClass()); JdbcDataSourceService DSservice = (JdbcDataSourceService) factory .createService(datasource); return DSservice;}@Overridepublic void closeConnection() { if(connection != null) { connection.closeConnection(); }}}[/code]JasperServerCustomDataSourceFactory.java package com.jasperserver.custom.datasource;import com.jaspersoft.jasperserver.api.metadata.common.service.RepositoryService;import com.jaspersoft.jasperserver.api.metadata.jasperreports.domain.ReportDataSource;import com.jaspersoft.jasperserver.api.metadata.jasperreports.service.ReportDataSourceService;import com.jaspersoft.jasperserver.api.metadata.jasperreports.service.ReportDataSourceServiceFactory;import com.jaspersoft.jasperserver.api.common.service.BeanForInterfaceImplementationFactory;//import com.jaspersoft.jasperserver.api.engine.jasperreports.util.DataSourceServiceFactory;import com.jasperserver.custom.datasource.JasperServerCustomDataSource;public class JasperServerCustomDataSourceFactory implements ReportDataSourceServiceFactory {private RepositoryService repositoryService;private BeanForInterfaceImplementationFactory dataSourceServiceFactory;public JasperServerCustomDataSourceFactory() {}/* Factory methods */public JasperServerCustomDataSource createDataSourceService() { return new JasperServerCustomDataSource(repositoryService, dataSourceServiceFactory);}@Overridepublic ReportDataSourceService createService(ReportDataSource dataSource) { return new JasperServerCustomDataSource(repositoryService, dataSourceServiceFactory);}/* getters */public RepositoryService getRepositoryService() { return repositoryService;} public BeanForInterfaceImplementationFactory getDataSourceServiceFactory() { return dataSourceServiceFactory;}/* Setters */public void setRepositoryService(RepositoryService repositoryService) { this.repositoryService = repositoryService;}public void setDataSourceServiceFactory(BeanForInterfaceImplementationFactory dataSourceServiceFactory) { this.dataSourceServiceFactory = dataSourceServiceFactory;}}[/code]ApplicationContext-customds.xml <?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"> <bean id="JasperServerCustomDataSourceFactory" class="com.jasperserver.custom.datasource.JasperServerCustomDataSourceFactory" > <property name="repositoryService"> <ref bean="repositoryService"/> </property> </bean></beans>[/code]