Avatar billede kube Nybegynder
10. januar 2006 - 13:24 Der er 6 kommentarer og
1 løsning

Spring og servlet

Hej,
jeg har en Servlet som skal have fat i en Bean fra Spring:

XmlBeanFactory bf =
    new XmlBeanFactory(new ClassPathResource("/WEB-INF/applicationContext.xml", getClass()));
        MyBean bean = MyBean bf.getBean("mybean");

Men da der i mybean er en reference til i mybean til et dao objekt, som ligger er defineret i filen /WEB-INF/applicationContextJDBC.xml kan bean factorien ikke finde min ref!

<bean id="mybean" class="MinBoenne">
        <property name="dao"><ref bean="DAO" /></property>
...

Hvordan kan man få den til at finde og sætte ref.?

Ps. web.xml er filerne registreret:
  <!-- Spring framework configuration -->
  <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/applicationContext*.xml</param-value>
  </context-param>
Avatar billede kube Nybegynder
10. januar 2006 - 13:26 #1
fejlen er: ...Can't resolve reference to bean 'DAO' while setting property 'dao'
Avatar billede kube Nybegynder
10. januar 2006 - 13:28 #2
Rettelse... -> <bean id="mybean" class="MyBean">
Avatar billede arne_v Ekspert
10. januar 2006 - 13:32 #3
Jeg tror ikke at 2 konfigurations filer med afhængigheder mellem dem er
en god ting
Avatar billede kube Nybegynder
10. januar 2006 - 13:35 #4
Jeg har Myfaces og Spring hvor det virker med referencer mellem filerne. Så er det en opdeling mellem 
Manager beans og DAO objekter.. Her virker det med flere filer!
Avatar billede kube Nybegynder
10. januar 2006 - 14:24 #5
virker ;-) -->
XmlBeanFactory bfDS =
                new XmlBeanFactory(new ClassPathResource("/WEB-INF/applicationContextDS.xml", getClass()));
       
        XmlBeanFactory bfJDBC =
                new XmlBeanFactory(new ClassPathResource("/WEB-INF/applicationContextJDBC.xml", getClass()), bfDS);
       
        XmlBeanFactory bf =
                new XmlBeanFactory(new ClassPathResource("/WEB-INF/applicationContext.xml", getClass()), bfJDBC);
Avatar billede simonvalter Praktikant
10. januar 2006 - 16:35 #6
ja der er den måde eller alternativt at kombinere dine resources hvis du vil have den opdeling.

<import resource="services.xml"/>
<import resource="dao.xml"/>
osv.

Jeg synes iøvrigt ikke det er særligt pænt at dine servlets, eller dit view i det hele taget kender til spring. Med dependency injection er det jo netop sådan en kobling du prøver at undgå. Lav evt en service locator og hold den slags kode til den.
Avatar billede kube Nybegynder
19. januar 2006 - 17:34 #7
...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester