16
मैं दो सेवा वर्ग है जो एक ही इंटरफ़ेस
ServiceClass1
@Service
public class ServiceClass1 implements ItemsService{
@Autowired
Class1DaoImpl class1Dao;
@Transactional
public List<Class1> getAllItems() {
return class1Dao.getAllItems();
}
ServiceClass2
@Service
public class ServiceClass2 implements ItemsService{
@Autowired
Class2DaoImpl class2Dao;
@Transactional
public List<Class2> getAllItems() {
return class2Dao.getAllItems();
}
लागू है और यह नियंत्रक वर्ग
@Controller
public class IndexController {
@Autowired
ServiceClass1 serviceClass1;
@Autowired
ServiceClass1 serviceClass2;
............
.....
}
है
मैं जब पेज
java.lang.IllegalArgumentException: Can not set com.package.ServiceClass1 field com.package.IndexController.serviceClass1 to $Proxy25
sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:146)
sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:150)
sun.reflect.UnsafeObjectFieldAccessorImpl.set(UnsafeObjectFieldAccessorImpl.java:63)
java.lang.reflect.Field.set(Field.java:657)
org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:500)
org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:84)
org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:284)
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1074)
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517)
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225)
org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:580)
org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:913)
org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:464)
org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:609)
org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:571)
org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:623)
org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:491)
org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:432)
org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:133)
javax.servlet.GenericServlet.init(GenericServlet.java:212)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
java.lang.Thread.run(Thread.java:662)
अनुरोध किया गया था यह त्रुटि आई मैंने किया था कुछ गूगल-इंग और कारण है कि मैं इस त्रुटि हो रही है करने के लिए कोई ठोस जवाब खोजने के लिए प्रतीत नहीं कर सकते हैं?
@skaffman .. तो मैं संसाधन बीन नाम कहां निर्दिष्ट करूं? मेरा मतलब है कि मैं एक्सएमएल फाइल में सेवा बीन्स घोषित नहीं कर रहा हूं या कम से कम मैंने सोचा था कि ऐसा करना जरूरी नहीं है क्योंकि मैं "घटक-स्कैन" का उपयोग कर रहा था .. बीन कॉन्फ़िगरेशन फ़ाइल में स्पष्ट रूप से घोषित किए बिना, "serviceClass1" नाम कैसे हैं "और" serviceClass2 "हल हो गए हैं? – RKodakandla
@rrkwells: बीन नाम वर्ग नामों से अनुमानित हैं (उदा। 'Com.x.y.ServiceClass1' => 'serviceClass1'। – skaffman
मुझे वास्तव में यह दृष्टिकोण पसंद नहीं है - जैसा कि कक्षा का नाम बदलता है? – Dejell