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.
Solved! Go to Solution.
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
La mejor manera es con Web Scripts. ¿Por qué "no utilizar Web Scripts" es un requisito?
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
Muchas gracias, te informaremos si lo conseguimos hacer funcionar.
Un saludo
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();
}
Discussions about Alfresco Content Services and Alfresco Process Services in Spanish
Related:
By using this site, you are agreeing to allow us to collect and use cookies as outlined in Alfresco’s Cookie Statement and Terms of Use (and you have a legitimate interest in Alfresco and our products, authorizing us to contact you in such methods). If you are not ok with these terms, please do not use this website.