मैं जर्सी का उपयोग कर एक रेस्ट क्लास में सेवाओं को इंजेक्ट करने की कोशिश कर रहा हूं।जर्सी और वसंत एकीकरण - बीन इंजेक्शन रनटाइम पर शून्य हैं
कोई फर्क नहीं पड़ता कि मैं इस कक्षा में इंजेक्ट करने का प्रयास कैसे करता हूं या रनटाइम पर शून्य के रूप में दिखाई देता है। लॉग फाइलों में दिखने से पता चलता है कि जब वेब ऐप शुरू होता है तो सेटजेसनटेस्ट सेवा को कॉल किया जा रहा है और यह इस बिंदु पर शून्य नहीं है। लेकिन, जब इसे इस कक्षा में एक पुट अनुरोध के साथ बाद में एक्सेस किया जाए, तो यह शून्य है।
मैं पूरी तरह से परेशान हूं।
@Named
@Path("JsonTest")
public class JsonTest {
@Context
Request request;
@Context
UriInfo uriInfo;
protected final Logger log = Logger.getLogger(getClass());
private JsonTestService jsonTestService;
@Autowired
public void setJsonTestSerivce(JsonTestService jsonTestService) {
log.info("Setting JsonTestService.");
if (jsonTestService == null) {
log.info("JsonTestService is null at injection");
}
this.jsonTestService = jsonTestService;
}
@Inject
public ScrapIntermediate scrapIntermediate; // just a plain empty class with an is true method
@PUT
@Path("{id}")
@Produces(MediaType.APPLICATION_JSON)
public void putJson(@PathParam("id") String id) {
log.info("Putting some json at " + id);
if (scrapIntermediate == null) {
log.info("scrapIntermediate is null...");
}
if (jsonTestService != null) {
jsonTestService.sendUpdate();
} else {
log.info("jsonTestService is null...");
}
}
}
कोई भी विचार:
वर्ग इस तरह दिखता है?
अद्यतन:
web.xml (जर्सी)
<servlet>
<servlet-name>Jersey REST Service</servlet-name>
<servlet-class>com.sun.jersey.spi.spring.container.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>com.sun.jersey.config.property.packages</param-name>
<param-value>EDAS</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Jersey REST Service</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
इस जर्सी कक्षा में वेब अनुरोध मैप किए गए हैं? वसंत की तरह लगता है कि इस वर्ग का एक उदाहरण तत्काल है, लेकिन जर्सी अनुरोधों को संभालने में उपयोग करने के लिए एक और उदाहरण तत्काल करता है। –
मैंने अपने web.xml के जर्सी भाग को दिखाने के लिए प्रश्न अपडेट किया है। जर्सी का जिक्र करने वाला यह एकमात्र अन्य स्थान है। – zclark
और हल हो गया। मेवेन और मेरे जर्सी आयात के साथ झूठ बोलने वाला मुद्दा वसंत-संदर्भ 2.5.6 और 3.0.5 दोनों आयात किया जा रहा है। इसने एनोटेशन संघर्ष का कारण बना दिया और उसी वर्ग के विभिन्न तत्कालताओं को जन्म दिया। एक बार यह मुझे जवाब देने के बाद इसे एक उत्तर के रूप में पोस्ट करेगा ... अंतर्दृष्टि मैट के लिए धन्यवाद। – zclark