java - Spring DI Web-App @Autowired Class is null -


this question has answer here:

i'm trying autowire repository (backend package) web package, nullpointerexception.

i have 2 packages:

  • backend (applicationcontext.xml, repository, model)
  • web

my src/main/webapp/web-inf/web.xml:

    <!--load spring config --> <context-param>     <param-name>contextconfiglocation</param-name>     <param-value>         classpath*:meta-inf/spring/applicationcontext-db.xml         <!--classpath*:meta-inf/spring/applicationcontext.xml-->     </param-value> </context-param>   <!-- bootstrap listener start , shut down spring's root webapplicationcontext. registered servlet container --> <listener>     <listener-class>org.springframework.web.context.contextloaderlistener</listener-class> </listener> <listener>     <listener-class>org.springframework.web.context.request.requestcontextlistener</listener-class> </listener>  <context-param>     <param-name>javax.faces.facelets_skip_comments</param-name>     <param-value>true</param-value> </context-param> <context-param>     <param-name>javax.faces.interpret_empty_string_submitted_values_as_null</param-name>     <param-value>true</param-value> </context-param> <context-param>     <param-name>javax.faces.project_stage</param-name>     <!--   <param-value>production</param-value> -->     <param-value>development</param-value> </context-param> <context-param>     <param-name>javax.faces.partial_state_saving</param-name>     <param-value>false</param-value> </context-param>  <!-- jsf servlet defined container --> <servlet>     <servlet-name>faces servlet</servlet-name>     <servlet-class>javax.faces.webapp.facesservlet</servlet-class>     <load-on-startup>1</load-on-startup> </servlet>  <!-- mapping servlet , url http requests. --> <servlet-mapping>     <servlet-name>faces servlet</servlet-name>     <url-pattern>*.jsf</url-pattern> </servlet-mapping> 

applicationcontext.xml

<!-- scan annotations , register them --> <context:component-scan base-package="de.haegerconsulting.telculator.*"/>  <!-- transaction manager --> <bean id="transactionmanager" class="org.springframework.orm.jpa.jpatransactionmanager">     <property name="entitymanagerfactory" ref="entitymanagerfactory"/>     <property name="datasource" ref="datasource"/> </bean>  <!-- detect @transactional --> <tx:annotation-driven transaction-manager="transactionmanager"/>  <!-- entity manager factory --> <bean id="entitymanagerfactory"       class="org.springframework.orm.jpa.localcontainerentitymanagerfactorybean">     <property name="datasource" ref="datasource"/>     <property name="jpavendoradapter">         <!-- define hibernate jpa vendor adapter -->         <bean class="org.springframework.orm.jpa.vendor.hibernatejpavendoradapter">             <property name="generateddl" value="true"/>             <property name="database" value="h2"/>         </bean>     </property>     <property name="persistencexmllocation" value="classpath:meta-inf/persistence.xml"/>     <property name="persistenceunitname" value="secondary"/> </bean>  <!-- datasource --> <bean id="datasource" class="org.springframework.jdbc.datasource.drivermanagerdatasource">     <property name="driverclassname" value="org.h2.driver"/>     <property name="url" value="jdbc:h2:mem://localhost/~/telculator;db_close_delay=-1"/>     <property name="username" value="sa"/>     <property name="password" value=""/> </bean>  <bean class="org.springframework.orm.jpa.support.persistenceannotationbeanpostprocessor"/> 

java class should autowire repository

@autowired private companyrepository companyrepository; 

the view (upload .csv file)

@managedbean public class fileuploadcontroller {  private uploadedfile file; private string destination = system.getproperty("java.io.tmpdir");  public void upload() throws ioexception {      inputstream inputstream = null;     outputstream outputstream = null;     try {         inputstream = file.getinputstream();         outputstream = new fileoutputstream(destination + file.getfilename());          int read = 0;         final byte[] bytes = new byte[1024];         while ((read = inputstream.read(bytes)) != -1) {             outputstream.write(bytes, 0, read);         }         try {             importcsvserviceimpl importcsvservice = new importcsvserviceimpl(destination + file.getfilename());             // write sets , store them in database             importcsvservice.readcsvfile();             **importcsvservice.storeentities(); --> nullpointerexception!**         } catch (exception e) {             e.printstacktrace();         }          // file upload successful         facesmessage message = new facesmessage("successful", file.getfilename() + " uploaded.");         facescontext.getcurrentinstance().addmessage(null, message);     } catch (ioexception e) {         e.printstacktrace();     } {         if (outputstream != null) {             outputstream.close();         }         if (inputstream != null) {             inputstream.close();         }     } } 

the unit-tests work great.
i repository injected , tests fine.

could please me?
missing something?

update
stacktrace

information: server startup in 5240 ms java.lang.nullpointerexception     @ 

de.haegerconsulting.telculator.backend.service.impl.importcsvserviceimpl.storeentities(importcsvserviceimpl.java:178) @ de.haegerconsulting.telculator.web.controller.fileuploadcontroller.upload(fileuploadcontroller.java:41) @ sun.reflect.nativemethodaccessorimpl.invoke0(native method) @ sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl.java:57) @ sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:43) @ java.lang.reflect.method.invoke(method.java:606) @ org.apache.el.parser.astvalue.invoke(astvalue.java:278) @ org.apache.el.methodexpressionimpl.invoke(methodexpressionimpl.java:274) @ javax.faces.event.methodexpressionactionlistener.processaction(methodexpressionactionlistener.java:149) @ javax.faces.event.actionevent.processlistener(actionevent.java:88) @ javax.faces.component.uicomponentbase.broadcast(uicomponentbase.java:813) @ javax.faces.component.uicommand.broadcast(uicommand.java:300) @ javax.faces.component.uiviewroot.broadcastevents(uiviewroot.java:790) @ javax.faces.component.uiviewroot.processapplication(uiviewroot.java:1282) @ com.sun.faces.lifecycle.invokeapplicationphase.execute(invokeapplicationphase.java:81) @ com.sun.faces.lifecycle.phase.dophase(phase.java:101) @ com.sun.faces.lifecycle.lifecycleimpl.execute(lifecycleimpl.java:198) @ javax.faces.webapp.facesservlet.service(facesservlet.java:646) @ org.apache.catalina.core.applicationfilterchain.internaldofilter(applicationfilterchain.java:305) @ org.apache.catalina.core.applicationfilterchain.dofilter(applicationfilterchain.java:210) @ org.primefaces.webapp.filter.fileuploadfilter.dofilter(fileuploadfilter.java:78) @ org.apache.catalina.core.applicationfilterchain.internaldofilter(applicationfilterchain.java:243) @ org.apache.catalina.core.applicationfilterchain.dofilter(applicationfilterchain.java:210) @ org.apache.tomcat.websocket.server.wsfilter.dofilter(wsfilter.java:51) @ org.apache.catalina.core.applicationfilterchain.internaldofilter(applicationfilterchain.java:243) @ org.apache.catalina.core.applicationfilterchain.dofilter(applicationfilterchain.java:210) @ org.apache.catalina.core.standardwrappervalve.invoke(standardwrappervalve.java:222) @ org.apache.catalina.core.standardcontextvalve.invoke(standardcontextvalve.java:123) @ org.apache.catalina.authenticator.authenticatorbase.invoke(authenticatorbase.java:502) @ org.apache.catalina.core.standardhostvalve.invoke(standardhostvalve.java:171) @ org.apache.catalina.valves.errorreportvalve.invoke(errorreportvalve.java:100) @ org.apache.catalina.core.standardenginevalve.invoke(standardenginevalve.java:118) @ org.apache.catalina.valves.accesslogvalve.invoke(accesslogvalve.java:953) @ org.apache.catalina.connector.coyoteadapter.service(coyoteadapter.java:408) @ org.apache.coyote.http11.abstracthttp11processor.process(abstracthttp11processor.java:1041) @ org.apache.coyote.abstractprotocol$abstractconnectionhandler.process(abstractprotocol.java:603) @ org.apache.tomcat.util.net.jioendpoint$socketprocessor.run(jioendpoint.java:312) @ java.util.concurrent.threadpoolexecutor.runworker(threadpoolexecutor.java:1145) @ java.util.concurrent.threadpoolexecutor$worker.run(threadpoolexecutor.java:615) @ java.lang.thread.run(thread.java:745) java.lang.nullpointerexception @ de.haegerconsulting.telculator.backend.service.impl.importcsvserviceimpl.storeentities(importcsvserviceimpl.java:186) @ de.haegerconsulting.telculator.web.controller.fileuploadcontroller.upload(fileuploadcontroller.java:41) @ sun.reflect.nativemethodaccessorimpl.invoke0(native method) @ sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl.java:57) @ sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:43) @ java.lang.reflect.method.invoke(method.java:606) @ org.apache.el.parser.astvalue.invoke(astvalue.java:278) @ org.apache.el.methodexpressionimpl.invoke(methodexpressionimpl.java:274) @ javax.faces.event.methodexpressionactionlistener.processaction(methodexpressionactionlistener.java:149) @ javax.faces.event.actionevent.processlistener(actionevent.java:88) @ javax.faces.component.uicomponentbase.broadcast(uicomponentbase.java:813) @ javax.faces.component.uicommand.broadcast(uicommand.java:300) @ javax.faces.component.uiviewroot.broadcastevents(uiviewroot.java:790) @ javax.faces.component.uiviewroot.processapplication(uiviewroot.java:1282) @ com.sun.faces.lifecycle.invokeapplicationphase.execute(invokeapplicationphase.java:81) @ com.sun.faces.lifecycle.phase.dophase(phase.java:101) @ com.sun.faces.lifecycle.lifecycleimpl.execute(lifecycleimpl.java:198) @ javax.faces.webapp.facesservlet.service(facesservlet.java:646) @ org.apache.catalina.core.applicationfilterchain.internaldofilter(applicationfilterchain.java:305) @ org.apache.catalina.core.applicationfilterchain.dofilter(applicationfilterchain.java:210) @ org.primefaces.webapp.filter.fileuploadfilter.dofilter(fileuploadfilter.java:78) @ org.apache.catalina.core.applicationfilterchain.internaldofilter(applicationfilterchain.java:243) @ org.apache.catalina.core.applicationfilterchain.dofilter(applicationfilterchain.java:210) @ org.apache.tomcat.websocket.server.wsfilter.dofilter(wsfilter.java:51) @ org.apache.catalina.core.applicationfilterchain.internaldofilter(applicationfilterchain.java:243) @ org.apache.catalina.core.applicationfilterchain.dofilter(applicationfilterchain.java:210) @ org.apache.catalina.core.standardwrappervalve.invoke(standardwrappervalve.java:222) @ org.apache.catalina.core.standardcontextvalve.invoke(standardcontextvalve.java:123) @ org.apache.catalina.authenticator.authenticatorbase.invoke(authenticatorbase.java:502) @ org.apache.catalina.core.standardhostvalve.invoke(standardhostvalve.java:171) @ org.apache.catalina.valves.errorreportvalve.invoke(errorreportvalve.java:100) @ org.apache.catalina.core.standardenginevalve.invoke(standardenginevalve.java:118) @ org.apache.catalina.valves.accesslogvalve.invoke(accesslogvalve.java:953) @ org.apache.catalina.connector.coyoteadapter.service(coyoteadapter.java:408) @ org.apache.coyote.http11.abstracthttp11processor.process(abstracthttp11processor.java:1041) @ org.apache.coyote.abstractprotocol$abstractconnectionhandler.process(abstractprotocol.java:603) @ org.apache.tomcat.util.net.jioendpoint$socketprocessor.run(jioendpoint.java:312) @ java.util.concurrent.threadpoolexecutor.runworker(threadpoolexecutor.java:1145) @ java.util.concurrent.threadpoolexecutor$worker.run(threadpoolexecutor.java:615) @ java.lang.thread.run(thread.java:745) java.lang.nullpointerexception @ de.haegerconsulting.telculator.backend.service.impl.importcsvserviceimpl.storeentities(importcsvserviceimpl.java:194) @ de.haegerconsulting.telculator.web.controller.fileuploadcontroller.upload(fileuploadcontroller.java:41) @ sun.reflect.nativemethodaccessorimpl.invoke0(native method) @ sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl.java:57) @ sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:43) @ java.lang.reflect.method.invoke(method.java:606) @ org.apache.el.parser.astvalue.invoke(astvalue.java:278) @ org.apache.el.methodexpressionimpl.invoke(methodexpressionimpl.java:274) @ javax.faces.event.methodexpressionactionlistener.processaction(methodexpressionactionlistener.java:149) @ javax.faces.event.actionevent.processlistener(actionevent.java:88) @ javax.faces.component.uicomponentbase.broadcast(uicomponentbase.java:813) @ javax.faces.component.uicommand.broadcast(uicommand.java:300) @ javax.faces.component.uiviewroot.broadcastevents(uiviewroot.java:790) @ javax.faces.component.uiviewroot.processapplication(uiviewroot.java:1282) @ com.sun.faces.lifecycle.invokeapplicationphase.execute(invokeapplicationphase.java:81) @ com.sun.faces.lifecycle.phase.dophase(phase.java:101) @ com.sun.faces.lifecycle.lifecycleimpl.execute(lifecycleimpl.java:198) @ javax.faces.webapp.facesservlet.service(facesservlet.java:646) @ org.apache.catalina.core.applicationfilterchain.internaldofilter(applicationfilterchain.java:305) @ org.apache.catalina.core.applicationfilterchain.dofilter(applicationfilterchain.java:210) @ org.primefaces.webapp.filter.fileuploadfilter.dofilter(fileuploadfilter.java:78) @ org.apache.catalina.core.applicationfilterchain.internaldofilter(applicationfilterchain.java:243) @ org.apache.catalina.core.applicationfilterchain.dofilter(applicationfilterchain.java:210) @ org.apache.tomcat.websocket.server.wsfilter.dofilter(wsfilter.java:51) @ org.apache.catalina.core.applicationfilterchain.internaldofilter(applicationfilterchain.java:243) @ org.apache.catalina.core.applicationfilterchain.dofilter(applicationfilterchain.java:210) @ org.apache.catalina.core.standardwrappervalve.invoke(standardwrappervalve.java:222) @ org.apache.catalina.core.standardcontextvalve.invoke(standardcontextvalve.java:123) @ org.apache.catalina.authenticator.authenticatorbase.invoke(authenticatorbase.java:502) @ org.apache.catalina.core.standardhostvalve.invoke(standardhostvalve.java:171) @ org.apache.catalina.valves.errorreportvalve.invoke(errorreportvalve.java:100) @ org.apache.catalina.core.standardenginevalve.invoke(standardenginevalve.java:118) @ org.apache.catalina.valves.accesslogvalve.invoke(accesslogvalve.java:953) @ org.apache.catalina.connector.coyoteadapter.service(coyoteadapter.java:408) @ org.apache.coyote.http11.abstracthttp11processor.process(abstracthttp11processor.java:1041) @ org.apache.coyote.abstractprotocol$abstractconnectionhandler.process(abstractprotocol.java:603) @ org.apache.tomcat.util.net.jioendpoint$socketprocessor.run(jioendpoint.java:312) @ java.util.concurrent.threadpoolexecutor.runworker(threadpoolexecutor.java:1145) @ java.util.concurrent.threadpoolexecutor$worker.run(threadpoolexecutor.java:615) @ java.lang.thread.run(thread.java:745)

importcsvserviceimpl importcsvservice = new importcsvserviceimpl(destination + file.getfilename()); 

you creating service here manually , not getting spring container, not spring managed. bean autowired using annotation within class not injected spring unless of course have explicitly initialized asking spring application context in constructor or initializing method anyway make use of auto-wiring annotation useless).

your fileuploadcontroller jsf managed bean , if importcsvservice intended spring managed need follow instructions here make work autowiring.


Comments

Popular posts from this blog

c# - Validate object ID from GET to POST -

node.js - Custom Model Validator SailsJS -

php - Find a regex to take part of Email -