2009-09-04 2 views
3

Je souhaitais connecter le service utilisateur de Google App Engine à Spring en créant d'abord un bean UserServiceFactory, puis en l'utilisant pour obtenir une instance de UserService.Câblage d'une UserServiceFactory de Google App Engine à l'aide de Spring

<bean id="googleUserServiceFactory" 
     class="com.google.appengine.api.users.UserServiceFactory"></bean> 

<bean id="googleUserService" 
     class="com.google.appengine.api.users.UserService" 
     factory-bean="googleUserServiceFactory" 
     factory-method="getUserService"></bean> 

Je suis tout à fait sûr que ce soit la bonne façon de câbler un haricot que vous obtenez à partir d'une usine mais je reçois cette erreur:

Error creating bean with name 'googleUserService' defined in ServletContext resource [/WEB-INF/hardwire-service.xml]: No matching factory method found: factory bean 'googleUserServiceFactory'; factory method 'getUserService'

Il dit que la méthode de l'usine ne peut pas être trouvé. Peut-il être que le nom de la méthode d'usine a changé?

Répondre

2

J'ai obtenu cela à travailler à l'aide d'un MethodInvokingFactoryBean à la place. Cela me dérange toujours de penser à ce qui ne va pas avec ce que j'ai fait plus tôt. Quoi qu'il en soit:

<bean id="googleUserService" 
     class="org.springframework.beans.factory.config.MethodInvokingFactoryBean"> 

     <property name="staticMethod" 
       value="com.google.appengine.api.users. 
          UserServiceFactory.getUserService"> 
     </property> 
</bean> 
1

vous pouvez aussi le faire:

@Configuration 
public class AppConfig { 

    @Bean 
    public UserService userService() { 
     return UserServiceFactory.getUserService(); 
    }