java - Getting factory null in spring SessionFactory property with Resource configurated -


त्रुटि इसलिए है क्योंकि सत्र फीचर प्राइवेट प्रोव्हाइजरी रिक्त है:

 < कोड> java.lang.NullPointerException providers.DataProvider.getAll (DataProvider.java:31) controllers.JSONService.listDepartments (JSONService.java:22) sun.reflect.NativeMethodAccessorImpl.invoke0 (मूल निवासी विधि) sun.reflect.NativeMethodAccessorImpl.invoke ( NativeMethodAccessorImpl.java:57) sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) java.lang.reflect.Method.invoke (Method.java:606) com.sun.jersey.spi.container.JavaMethodInvokerFactory $ 1.invoke (JavaMethodInvokerFactory.java:60) com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider $ TypeOutInvoker._dispatch (एब्रेटरासोर्समॉइडडिस्पैकप्रोवाइडर.जावाआइ 8585) com.sun.jersey.server.impl.model.method.dispatch .ResourceJavaMethodDispatcher.dispatch (ResourceJavaMethodDispatcher.java:75) com.sun.jersey.server.impl.uri.rules.HttpMethodRu le.accept (HttpMethodRule.java:288) com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept (RightHandPathRule.java:147) com.sun.jersey.server.impl.uri.rules.ResourceClassRule। स्वीकार करते हैं (ResourceClassRule.java:108) com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept (RightHandPathRule.java:147) com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept ( RootResourceClassesRule.java:84) com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest (WebApplicationImpl.java:1469) com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest (WebApplicationImpl.java:1400) com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest (WebApplicationImpl.java:1349) com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest (WebApplicationImpl.java:1339) com.sun.jersey। Spi.container.servlet.WebComponent.service (WebComponent.java:416) com.sun.jersey.spi.container.servlet.ServletContainer.service (सर्लेटकॉन्टेनइयर.जावाक्षेत्र37) com.sun.jersey .spi.container.servlet.ServletContainer.service (ServletContainer.java:699) javax.servlet.http.HttpServlet.service (HttpServlet.java:728)  

क्लास जो सत्र फेक्टर इस शरीर में है:

  @Resource (name = "sessionFactory") सेवेशनफ़ेक्टरी फ़ैक्टरी संरक्षित; सुरक्षित क्लास & lt; E & gt; इकाई; संरक्षित स्ट्रिंग तालिकानाम; सार्वजनिक डेटाप्रदाता (कक्षा ई) {this.entity = e; This.tableName = entity.getAnnotation (तालिका। वर्ग) .name (); } @ लेनदेन (केवल पढ़ने योग्य = सत्य) सार्वजनिक सूची & lt; E & gt; GetAll () {सत्र s = कारखाना .getCurrent सत्र (); // अपवाद यहाँ वृद्धि वापसी s.createQuery ("FROM" + tableName) .list (); }  

वें पर वसंत सेम applicationContext.xml है:

  & lt; बीन आईडी = "sessionFactory" class = "org .springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean "& gt; & Lt; संपत्ति नाम = "डेटा स्रोत" रिफ = "डेटा स्रोत" / & gt; & Lt; प्रॉपर्टी नाम = "packagesToScan" value = "मॉडल" / & gt; & Lt; संपत्ति नाम = "कॉन्फ़िगरेशन क्लास" मान = "org.hibernate.cfg. एनोटेशन कॉन्फ़िगरेशन" / & gt; & Lt; प्रॉपर्टी नाम = "हाइबरनेट प्रॉपर्टीज़" & gt; & LT; रंगमंच की सामग्री & gt; & Lt; prop key = "hibernate.dialect" & gt; org.hibernate.dialect.Oracle10gDialect & lt; / prop & gt; & Lt; prop key = "hibernate.show_sql" & gt; सच & lt; / prop & gt; & Lt; prop key = "hibernate.hbm2ddl.auto" & gt; अपडेट & lt; / prop & gt; & Lt; / रंगमंच की सामग्री & gt; & Lt; / संपत्ति & gt; & Lt; / सेम ​​& gt;  

क्या मैं कुछ गलत कर रहा हूं?

एक ही रास्ता एक इंजेक्शन लक्ष्य हो सकता है null है अगर आप बीन को अपने आप बनाते हैं दूसरे शब्दों में, आपने किया

  YourClass उदाहरण = नया आपका क्लास (); वसंत के  ApplicationContext  से प्रबंधित बीन प्राप्त करने के बजाय  

अन्यथा, स्प्रिंग फ़ील्ड autowire और अपवाद छोड़ देता है अगर यह विफल रहता है ।

अपने कोड की समीक्षा करें।


वास्तव में फ़ील्ड के लिए null रहने के अन्य तरीके हैं, लेकिन आपको वास्तव में कड़ी मेहनत करना है इसलिए मुझे शक है कि क्या हो रहा है।


Comments