cancel
Showing results for 
Search instead for 
Did you mean: 

Servicio REST custom sin webscripts en Alfresco AIO 5.2 enterprise

imingo
Champ on-the-rise
Champ on-the-rise

Buenos días, estoy intentando hacer la implementación de un servicio REST con alfresco aio 5.2 enterprise edition. El problema con el que me encuentro de primeras es que no existe un archivo web.xml dónde pueda registrar un nuevo servlet (ya que se genera de alguna manera transparente para mi). He seguido el siguiente ejemplo: https://docs.alfresco.com/process-services1.6/topics/custom_rest_endpoints.html , que aunque es referente a activiti, pensaba que me podía servir para aunque fuera solo para poder exponer un endpoint custom. He buscado y no he encontrado documentación ni ejemplos para hacerlo. La parte de lógica no me importa en este punto lo que me preocupa es poder exponer un endpoint custom o saber cual sería la manera de poder realizarlo (sin webscripts a ser posible).

Un saludo y gracias.

1 ACCEPTED ANSWER

Podrías prescindir del framework Web Scripts para la implementación, aunque para mí es una manera muy sencilla y eficiente para crear un endpoint REST. De hecho no se me ocurre una manera mejor de hacerlo, así que me interesará conocer vuestra experiencia.

Creo que para vuestro enfoque la mejor alternativa sería utilizar un web fragment para añadir lo que necesitéis en la parte del descriptor web.

Esto os puede servir de referencia: https://github.com/covolution/enablecors/blob/master/src/main/resources/META-INF/web-fragment.xml

Hyland Developer Evangelist

View answer in original post

5 REPLIES 5

angelborroy
Community Manager Community Manager
Community Manager

La mejor manera es con Web Scripts. ¿Por qué "no utilizar Web Scripts" es un requisito?

Hyland Developer Evangelist

Nos gustaría no tener que utilizar webs cripts ya que nos resulta muy engorroso y querríamos prescindir de ellos. No se si sería posible de realizarlo sin tener que utilizarlos. Un saludo y gracias por la ayuda

Podrías prescindir del framework Web Scripts para la implementación, aunque para mí es una manera muy sencilla y eficiente para crear un endpoint REST. De hecho no se me ocurre una manera mejor de hacerlo, así que me interesará conocer vuestra experiencia.

Creo que para vuestro enfoque la mejor alternativa sería utilizar un web fragment para añadir lo que necesitéis en la parte del descriptor web.

Esto os puede servir de referencia: https://github.com/covolution/enablecors/blob/master/src/main/resources/META-INF/web-fragment.xml

Hyland Developer Evangelist

imingo
Champ on-the-rise
Champ on-the-rise

Muchas gracias, te informaremos si lo conseguimos hacer funcionar.

Un saludo

imingo
Champ on-the-rise
Champ on-the-rise

Lo prometido es deuda y por fin conseguimos exponer el servicio rest sin necesidad de web scripts (de momento sin autenticación). Nuestra solución ha sido:

1º   Crear un archivo web-fragment.xml en el módulo platform en src/main/resources/META-INF/web-fragment.xml en el cual hemos definido nuestro servlet.

<web-fragment>

<servlet>

   <servlet-name>mvc-dispatcher</servlet-name>

   <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

   <load-on-startup>1</load-on-startup>

   <init-param>

           <param-name>contextConfigLocation</param-name>

           <param-value>classpath:alfresco/module/${project.artifactId}/mvc-dispatcher-servlet.xml</param-value>

       </init-param>

</servlet>

<servlet-mapping>

   <servlet-name>mvc-dispatcher</servlet-name>

   <url-pattern>/customapi/*</url-pattern>

</servlet-mapping>

</web-fragment>

2º Crear el archivo mvc-dispatcher-servlet.xml en la ruta previamente definida:

<?xml version='1.0' encoding='UTF-8'?>

<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

   xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc"

   xsi:schemaLocation="http://www.springframework.org/schema/beans

    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd

    http://www.springframework.org/schema/context

    http://www.springframework.org/schema/context/spring-context-3.0.xsd

    http://www.springframework.org/schema/mvc

    http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">

   

   <!-- Enable autowiring of Spring Beans -->

   <context:annotation-config />

   <!-- Scan com.enterprise.controller package for beans -->

   <context:component-scan base-package="com..enterprise.controller" />

   <!-- Enable RequestMapping annotations -->

   <mvc:annotation-driven />  

</beans>

3º Crear un controlador con spring:

@Controller

@RequestMapping(value = "rest")

public class MyController {     

   private static final org.slf4j.Logger LOGGER = LoggerFactory.getLogger(NodeController.class);

      @RequestMapping(value = "/check", method = RequestMethod.GET)

   @Produces(MimetypeMap.MIMETYPE_JSON)

   public @ResponseBody CustomModel getActivities() {

        return new CustomModel();

   }

Muchas gracias por la ayuda un saludo!

Getting started

Tags


Find what you came for

We want to make your experience in Hyland Connect as valuable as possible, so we put together some helpful links.