Override bean

cancel
Showing results for 
Search instead for 
Did you mean: 
rcortesr
Active Member II

Override bean

Jump to solution

Quiero sobreescribir el bean "publicApiCMISServiceFactory" definido en el fichero "public-rest-context.xml" y ubicado en la librería remote-api.

Con otros beans no he tenido problema, los he podido sobreescribir perfectamente, pero con este hay algo que se me escapa...

Me he creado el fichero "custom-public-rest-context.xml" en /src/main/amp/config/alfresco/extension y he copiado el bean original cambiando únicamente la clase pero no se hace el override correctamente. Curiosamente, aunque ponga una clase que no exista en mi proyecto, Alfresco no da ningún error y arranca correctamente sin quejarse de que la clase no existe, entiendo que por algún motivo el bean no llega a cargarse.

Si en este mismo fichero defino un nuevo bean, este se carga sin problema.

Alguna idea sobre lo que está pasando?

Gracias

1 Solution

Accepted Solutions
angelborroy
Alfresco Employee

Re: Override bean

Jump to solution

Cierto, ese bean está en el web client.

Entonces tienes que ponerlo en src/main/resources/alfresco/extension/custom-web-context.xml

El fichero tiene que llamarse así, porque se carga desde aquí:

https://github.com/Alfresco/community-edition-old/blob/master/projects/web-client/source/web/WEB-INF... 

Hyland Developer Evangelist

View solution in original post

6 Replies
angelborroy
Alfresco Employee

Re: Override bean

Jump to solution

Prueba a declararlo en el scope del módulo:

/src/main/resources/alfresco/module/approved-task-list-repo/context/webscript-context.xml
Hyland Developer Evangelist
rcortesr
Active Member II

Re: Override bean

Jump to solution

Hola Angel,

he probado lo que comentas pero sigue sin cargar el bean. Si cambio el id del bean entonces la carga se hace bien.

Crees que el problema podría estar relacionado con la ubicación? lo comento porqué hasta la fecha nunca había tenido problemas con la sobreescritura de beans y aparentemente la única diferencia es que el bean "publicApiCMISServiceFactory" está en remote-api.

Esta es la definición del bean:

<beans>

    <bean id="publicApiCMISServiceFactory" class="com.raul.test" init-method="init">
        <property name="cmisConnector"          ref="CMISConnector" />
        <property name="cmisTransactions"       ref="CMISService_Transactions" />
        <property name="cmisExceptions"         ref="CMISService_Exceptions" />
        <property name="cmisControl"            ref="CMISService_Control" />
        <property name="cmisStreams"            ref="CMISService_Streams" />
        <property name="authorityService"       ref="AuthorityService" />
        <property name="tenantAdminService"     ref="tenantAdminService"/>
        <property name="networksService"        ref="networksService"/>
    </bean>

</beans>

Gracias.

angelborroy
Alfresco Employee

Re: Override bean

Jump to solution

No creo que sea un problema de ubicación.

¿Tienes un método "init" en la clase "com.raul.test"? Por cierto, las clases en Java deberían ir en mayúsculas...

Hyland Developer Evangelist
rcortesr
Active Member II

Re: Override bean

Jump to solution

Sí, la clase tiene un método init, pero nunca se ejecuta.

Lo más curioso de todo es que si pongo una clase que no existe no se produce ningún error, spring no se queja de que la clase no existe.

angelborroy
Alfresco Employee

Re: Override bean

Jump to solution

Cierto, ese bean está en el web client.

Entonces tienes que ponerlo en src/main/resources/alfresco/extension/custom-web-context.xml

El fichero tiene que llamarse así, porque se carga desde aquí:

https://github.com/Alfresco/community-edition-old/blob/master/projects/web-client/source/web/WEB-INF... 

Hyland Developer Evangelist
rcortesr
Active Member II

Re: Override bean

Jump to solution

Correcto Angel, poniendo el bean donde indicas funciona perfectamente.

Muchas gracias por la ayuda.