PDA

View Full Version : How to reference a bean from another eclipse project


jakim8915
Aug 29th, 2005, 07:56 PM
I have 2 projects (one struts project and a java project to contain my DAOs and business logic in eclipse). In my Struts project, I've setup my spring context to refer to beans within the same Struts project and it works fine. But when I need to to set some bean references to my java library project, it fails. Here are the error messages:

[2005-08-29 16:41:26,218][INFO][ContextLoader][initWebApplicat ionContext][146]- Root WebApplicationContext: initialization started
[2005-08-29 16:41:26,375][INFO][XmlBeanDefinitionReader][loadB eanDefinitions][150]- Loading XML bean definitions from ServletContext resource [/WEB-INF/config/spring-context.xml]
[2005-08-29 16:41:26,609][ERROR][ContextLoader][initWebApplica tionContext][177]- Context initialization failed
org.springframework.beans.factory.BeanDefinitionSt oreException: Error registering bean with name 'partnerService' defined in ServletContext resource [/WEB-INF/config/spring-context.xml]: Bean class [tuinsurance.lib.business.service.impl.PartnerServ iceImpl] not found; nested exception is java.lang.ClassNotFoundException: tuinsurance.lib.business.service.impl.PartnerServi ceImpl
java.lang.ClassNotFoundException: tuinsurance.lib.business.service.impl.PartnerServi ceImpl
at org.apache.catalina.loader.WebappClassLoader.loadC lass(WebappClassLoader.java:1340)
at org.apache.catalina.loader.WebappClassLoader.loadC lass(WebappClassLoader.java:1189)
at java.lang.ClassLoader.loadClassInternal(ClassLoade r.java:319)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:242)
at org.springframework.util.ClassUtils.forName(ClassU tils.java:87)
at org.springframework.beans.factory.support.BeanDefi nitionReaderUtils.createBeanDefinition(BeanDefinit ionReaderUtils.java:64)
at org.springframework.beans.factory.xml.DefaultXmlBe anDefinitionParser.parseBeanDefinitionElement(Defa ultXmlBeanDefinitionParser.java:369)
at org.springframework.beans.factory.xml.DefaultXmlBe anDefinitionParser.parseBeanDefinitionElement(Defa ultXmlBeanDefinitionParser.java:335)
at org.springframework.beans.factory.xml.DefaultXmlBe anDefinitionParser.parseBeanDefinitions(DefaultXml BeanDefinitionParser.java:266)
at org.springframework.beans.factory.xml.DefaultXmlBe anDefinitionParser.registerBeanDefinitions(Default XmlBeanDefinitionParser.java:186)
at org.springframework.beans.factory.xml.XmlBeanDefin itionReader.registerBeanDefinitions(XmlBeanDefinit ionReader.java:238)
at org.springframework.beans.factory.xml.XmlBeanDefin itionReader.loadBeanDefinitions(XmlBeanDefinitionR eader.java:155)
at org.springframework.beans.factory.support.Abstract BeanDefinitionReader.loadBeanDefinitions(AbstractB eanDefinitionReader.java:124)
at org.springframework.beans.factory.support.Abstract BeanDefinitionReader.loadBeanDefinitions(AbstractB eanDefinitionReader.java:140)
at org.springframework.web.context.support.XmlWebAppl icationContext.loadBeanDefinitions(XmlWebApplicati onContext.java:116)
at org.springframework.web.context.support.XmlWebAppl icationContext.loadBeanDefinitions(XmlWebApplicati onContext.java:84)
at org.springframework.context.support.AbstractRefres hableApplicationContext.refreshBeanFactory(Abstrac tRefreshableApplicationContext.java:87)
at org.springframework.context.support.AbstractApplic ationContext.refresh(AbstractApplicationContext.ja va:267)
at org.springframework.web.context.support.AbstractRe freshableWebApplicationContext.refresh(AbstractRef reshableWebApplicationContext.java:134)
at org.springframework.web.context.ContextLoader.crea teWebApplicationContext(ContextLoader.java:230)
at org.springframework.web.context.ContextLoader.init WebApplicationContext(ContextLoader.java:156)
at org.springframework.web.context.ContextLoaderListe ner.contextInitialized(ContextLoaderListener.java: 48)
at org.apache.catalina.core.StandardContext.listenerS tart(StandardContext.java:3831)
at org.apache.catalina.core.StandardContext.start(Sta ndardContext.java:4323)
at org.apache.catalina.core.ContainerBase.addChildInt ernal(ContainerBase.java:823)
at org.apache.catalina.core.ContainerBase.addChild(Co ntainerBase.java:807)
at org.apache.catalina.core.StandardHost.addChild(Sta ndardHost.java:595)
at org.apache.catalina.core.StandardHostDeployer.inst all(StandardHostDeployer.java:277)
at org.apache.catalina.core.StandardHost.install(Stan dardHost.java:832)
at org.apache.catalina.startup.HostConfig.deployDirec tories(HostConfig.java:701)
at org.apache.catalina.startup.HostConfig.deployApps( HostConfig.java:432)
at org.apache.catalina.startup.HostConfig.start(HostC onfig.java:983)
at org.apache.catalina.startup.HostConfig.lifecycleEv ent(HostConfig.java:349)
at org.apache.catalina.util.LifecycleSupport.fireLife cycleEvent(LifecycleSupport.java:119)
at org.apache.catalina.core.ContainerBase.start(Conta inerBase.java:1091)
at org.apache.catalina.core.StandardHost.start(Standa rdHost.java:789)
at org.apache.catalina.core.ContainerBase.start(Conta inerBase.java:1083)
at org.apache.catalina.core.StandardEngine.start(Stan dardEngine.java:478)
at org.apache.catalina.core.StandardService.start(Sta ndardService.java:480)
at org.apache.catalina.core.StandardServer.start(Stan dardServer.java:2313)
at org.apache.catalina.startup.Catalina.start(Catalin a.java:556)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Nativ e Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Native MethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(De legatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.apache.catalina.startup.Bootstrap.start(Bootst rap.java:287)
at org.apache.catalina.startup.Bootstrap.main(Bootstr ap.java:425)
Aug 29, 2005 4:41:26 PM org.apache.catalina.core.StandardContext start

In eclipse, I have set the struts project to be dependent on the java library project. Im not sure if there's anything else I need to do to create bean references in my struts project that reference the java library project. Im new to Spring and any help/suggestions is appreciated.

FYI. Im using Spring 1.2.3, Eclipse 3.1, MyEclipse 4.0M3, Tomcat 5.0.


Thanks.

Jade

dcengija
Aug 30th, 2005, 08:24 AM
It seems that Tomcat you're starting from MyEclipse doesn't see your Java project (where needed classes are). You should check MyEclipse on how to set referenced projects, or something similar. Nothing to do with Spring itself, really.

jakim8915
Aug 30th, 2005, 01:16 PM
Thanks dcengija, thats what I thought so I just packaged the java project in a jar and placed it in my WEB-INF\lib folder and it works. I know I have MyEclipse setup properly because I can reference the Java project (ex. I can access the business service objects in my struts action classes.)

Is there a better way of developing a web app with struts & spring in one project and a java project with business logic and DAOs? I mean, I dont want to be exporting my java project as a jar every single time just so I can test my web app. Or maybe Im just taking the wrong approach. Any help is appreciated.

Jade