java


Issue Autowiring Bean in ItemProcessor


I have to autowire a service into my ItemProcessor to retrieve an object from the database and make some treatment but it's not working and I always gets java.lang.NullPointerException when trying to use it in my ItemProcessor.
Here is the context-model:
<import resource="classpath:context-datasource.xml"/>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="annotatedClasses">
<list>
<value>ma.controle.gestion.modele.Batch</value>
<value>ma.controle.gestion.modele.Ressource</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.hbm2ddl.auto">update</prop>
<prop key="hibernate.enable_lazy_load_no_trans">true</prop>
</props>
</property>
</bean>
<!-- Transaction Manager is defined -->
<bean id="txManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<tx:annotation-driven transaction-manager="txManager" />
Here is my process class
public class BatchItemProcessor implements ItemProcessor<Batch,Batch> {
#Autowired
#Qualifier("ressourceService")
private IRessourceService ressourceService;
// getters setters
#Override
public Batch process(Batch b) throws Exception {
return groupByTypeInstRub(batch);
}
public Batch groupByTypeInstRub(Batch b){
if(BatchFieldSetMapper.batchs.isEmpty()){
return null;
}else if(BatchFieldSetMapper.batchs.contains(b)){
Double montantPaye=0.0;
Double montantRetenu=0.0;
for (Iterator<Batch> iterator = BatchFieldSetMapper.batchs.iterator(); iterator.hasNext();) {
System.out.println("ressource Matricule : " + b.getMatricule());
Ressource ressource = (Ressource) ressourceService.findRessourceByMatricule(b.getMatricule());
System.out.println("Ressource nom, " + ressource.getNom() + ", Prenom : " + ressource.getPrenom());
Batch batch = (Batch) iterator.next();
if(b.getInstitution().equalsIgnoreCase(batch.getInstitution()) && b.getType().equals(batch.getType()) && b.getRubrique().equalsIgnoreCase(batch.getRubrique())){
montantPaye+=batch.getMontantPaye();
montantRetenu+=batch.getMontantRetenu();
iterator.remove();
}
}
b.setMontantPaye(montantPaye);
b.setMontantRetenu(montantRetenu);
return b;
}else
return null;
}
Here is my service
#Transactional
#Service("ressourceService")
public class RessourceServiceImpl implements IRessourceService {
#Autowired
#Qualifier("ressourceDao")
private RessourceDao ressourceDao;
#Override
public Ressource findRessourceByMatricule(String matricule) {
System.out.println("Find ressource By Matricule, Dao");
return ressourceDao.findRessourceByMatricule(matricule);
}
// getters setters
}
and here is my ressourceDao
#Repository
public class RessourceDao extends GenericDaoHibernateImpl{
#Autowired
#Qualifier("sessionFactory")
private SessionFactory sessionFactory;
#Autowired
public RessourceDao(#Qualifier("sessionFactory") SessionFactory sessionFactory){
super(sessionFactory);
}
public Ressource findRessourceByMatricule(String matricule){
System.out.println("Find ressource By Matricule, Dao");
Ressource ressource=null;
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(Ressource.class);
criteria.add(Restrictions.eq("matricule",matricule));
List<Ressource> ressources = criteria.list();
for (Ressource ressource2 : ressources) {
System.out.println("ressource nom, prenom " + ressource2.getNom() + "," + ressource2.getPrenom());
}
if(ressources.equals(null)){
return null;
}else{
ressource=ressources.get(0);
}
return ressource;
}
}
and here is the log of the error
java.lang.NullPointerException
at ma.controle.gestion.springbatch.BatchItemProcessor.groupByTypeInstRub(BatchItemProcessor.java:43)
at ma.controle.gestion.springbatch.BatchItemProcessor.process(BatchItemProcessor.java:30)
at ma.controle.gestion.springbatch.BatchItemProcessor.process(BatchItemProcessor.java:1)
at org.springframework.batch.core.step.item.SimpleChunkProcessor.doProcess(SimpleChunkProcessor.java:125)
at org.springframework.batch.core.step.item.SimpleChunkProcessor.transform(SimpleChunkProcessor.java:291)
at org.springframework.batch.core.step.item.SimpleChunkProcessor.process(SimpleChunkProcessor.java:190)
at org.springframework.batch.core.step.item.ChunkOrientedTasklet.execute(ChunkOrientedTasklet.java:74)
at org.springframework.batch.core.step.tasklet.TaskletStep$ChunkTransactionCallback.doInTransaction(TaskletStep.java:386)
at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:130)
at org.springframework.batch.core.step.tasklet.TaskletStep$2.doInChunkContext(TaskletStep.java:264)
at org.springframework.batch.core.scope.context.StepContextRepeatCallback.doInIteration(StepContextRepeatCallback.java:76)
at org.springframework.batch.repeat.support.RepeatTemplate.getNextResult(RepeatTemplate.java:367)
at org.springframework.batch.repeat.support.RepeatTemplate.executeInternal(RepeatTemplate.java:214)
at org.springframework.batch.repeat.support.RepeatTemplate.iterate(RepeatTemplate.java:143)
at org.springframework.batch.core.step.tasklet.TaskletStep.doExecute(TaskletStep.java:250)
at org.springframework.batch.core.step.AbstractStep.execute(AbstractStep.java:195)
at org.springframework.batch.core.job.SimpleStepHandler.handleStep(SimpleStepHandler.java:135)
at org.springframework.batch.core.job.flow.JobFlowExecutor.executeStep(JobFlowExecutor.java:61)
at org.springframework.batch.core.job.flow.support.state.StepState.handle(StepState.java:60)
at org.springframework.batch.core.job.flow.support.SimpleFlow.resume(SimpleFlow.java:144)
at org.springframework.batch.core.job.flow.support.SimpleFlow.start(SimpleFlow.java:124)
at org.springframework.batch.core.job.flow.FlowJob.doExecute(FlowJob.java:135)
at org.springframework.batch.core.job.AbstractJob.execute(AbstractJob.java:293)
at org.springframework.batch.core.launch.support.SimpleJobLauncher$1.run(SimpleJobLauncher.java:120)
at org.springframework.core.task.SyncTaskExecutor.execute(SyncTaskExecutor.java:48)
at org.springframework.batch.core.launch.support.SimpleJobLauncher.run(SimpleJobLauncher.java:114)
at ma.controle.gestion.bean.batch.BatchExcelBean.uploadFile(BatchExcelBean.java:82)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.el.parser.AstValue.invoke(AstValue.java:279)
at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:273)
at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105)
at org.primefaces.component.fileupload.FileUpload.broadcast(FileUpload.java:319)
at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:755)
at javax.faces.component.UIViewRoot.processDecodes(UIViewRoot.java:931)
at com.sun.faces.lifecycle.ApplyRequestValuesPhase.execute(ApplyRequestValuesPhase.java:78)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:198)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:646)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.primefaces.barcelona.filter.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:32)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:218)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:958)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:452)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1087)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:637)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Unknown Source)

Related Links

OnePlus One not found in Android Studio on Mac
Tez job fails when submitting by different user
Binding a Java reference in array
Automation Framework - how to generate simple table form html reports using TestNG with selenium java automation tests
Android Studio AndroidManifest.xml vs build.gradle
Reading long text in between tags in XML
How to send android app logs to remote server?
AerospikeException while writing record to Aerospike namespace hosted on Google Cloud
Using Transformer in java for multiple outputs from an XSLT?
Using split method to store values in HashMap
How to check if a word ends with parenthesis I.e word(s) using Java and regex? [closed]
which is best between string isEmpty and StringUtils.isNotBlank() [duplicate]
Running jconsole on JRE
Exception in thread “main” java.lang.NoClassDefFoundError: org/jsoup/nodes/Element
How to read a final string value in ASM?
Error : Execution failed for task ':app:dexDebug'. > com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException [duplicate]

Categories

HOME
sendgrid
winforms
cloud
hook
keycloak
image-processing
deezer
heroku
google-play
relay
rsyslog
bookshelf.js
rubygems
webpack-2
windows-server
basic
metatrader4
u-sql
gz
remote-access
task
fortumo
openrefine
jsdoc
textfield
scichart
functional-testing
microsoft-r
android-widget
sqlcipher
shopware
ejabberd-module
windows-server-2000
primitive
instant-messaging
skia
javascriptcore
binary-data
.net-4.0
contact-form
asset-pipeline
uiswipegesturerecognizer
gammu
bower-install
jquery-bootgrid
scaffold
vapor
elasticsearch-plugin
g-code
quadratic-programming
node-gyp
midl
youcompleteme
pango
boost-multi-index
datastax-startup
return-value
dotnetzip
rdfs
integrity
elgg
darcs
pg-dump
minimization
objective-c-swift-bridge
color-picker
angular-cache
savon
file-writing
merge-conflict-resolution
mongocsharpdriver
plottable.js
yaws
ipconfig
itextpdf
feedback
iis-arr
php-ci
sankey-diagram
csquery
php-5.4
project-planning
jquery-layout
yorick
htmlcleaner
kgdb
datagridviewcolumn
stxxl
floating-point-precision
oam
jsctypes
opcache
hungarian-algorithm
android-screen-support
wsdl-2.0
nsnetservice
semantic-diff
boost-filesystem
deobfuscation
hamachi
tomcat-valve
lang
cxxtest
subviews
blitz++
suppress
mtj
spec#
data-acquisition
signal-handling

Resources

Encrypt Message



code
soft
python
ios
c
html
jquery
cloud
mobile