cancel
Showing results for 
Search instead for 
Did you mean: 

Override bean

rcortesr
Star Contributor
Star Contributor

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 ACCEPTED ANSWER

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 answer in original post

6 REPLIES 6

angelborroy
Community Manager Community Manager
Community Manager

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

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.

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

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.

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

Correcto Angel, poniendo el bean donde indicas funciona perfectamente.

Muchas gracias por la ayuda.