2012-02-07 3 views
0

Faisant suite à How do I inject a Spring bean into Apache Wink?Les haricots injectés dans Apache avec Clin d'oeil du printemps ne sont pas enregistrés

Je suis maintenant en utilisant clin d'oeil-printemps-soutien et je croyais avoir mis en place les choses correctement.

web.xml comprend:

<context-param> 
    <param-name>contextConfigLocation</param-name> 
    <param-value> 
     classpath:META-INF/wink/wink-core-context.xml 
     classpath:applicationContext.xml 
    </param-value> 
</context-param> 

<listener> 
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
</listener> 

<servlet> 
    <servlet-name>restServlet</servlet-name> 
    <servlet-class>org.apache.wink.server.internal.servlet.RestServlet</servlet-class> 
</servlet> 

<servlet-mapping> 
    <servlet-name>restServlet</servlet-name> 
    <url-pattern>/rest/*</url-pattern> 
</servlet-mapping> 

META-INF/wink/clin d'oeil-core-context.xml contient:

<bean class="org.apache.wink.spring.Registrar"> 
    <property name="instances"> 
     <set> 
      <ref bean="myservice" /> 
     </set> 
    </property> 
</bean> 

<bean id="myservice" class="mystuff.ServiceImpl"/> 

Il y a une annotation dans @Autowiredmystuff.ServiceImpl qui consiste à injecter d'autres choses de printemps, et mystuff.ServiceImpl implémente une interface annotée JAX-RS et inclut elle-même une annotation JAX-RS @Path("/services").

Je peux voir Spring charger ce truc très bien, y compris le haricot myservice. Cependant quand je demande mes ressources, je reçois un 404 non trouvé. Comme Clin d'oeil commence, je peux voir deux entrées du journal qui pourraient indiquer le problème:

applicationConfigLocation property was not defined

Using application classes null named in init-param applicationConfigLocation

Ai-je manqué quelque chose quelque part? Aucun conseil?

Répondre

0

Le problème était mon malentendu les docs.

Il existe une configuration de ressort META-INF/server/wink-core-context.xml fournie avec wink-spring-support. Cela enregistre les BeanPostProcessors qui exécutent réellement l'installation et doivent être référencés à partir de contextConfigLocation.

Je pensais que j'avais mis ma configuration dedans, ce qui explique pourquoi l'application n'a pas été enregistrée avec Wink au démarrage.

Questions connexes