We have a very legacy application which is talking to an DMS via SOAP protocol. We are moving contents from that DMS to Alfresco. Now situation is that, our business doesn't want to touch the legacy application due to it's criticality. We want Alfresco to serve the content when legacy application sends SOAP request.
After exploring fourms it seems like only REST is allowed? Is there a way to achieve ?
Solved! Go to Solution.
Refer this documentation: https://docs.alfresco.com/5.2/pra/1/concepts/cmis-bindings.html
It says that there is SOAP webservice binding available via CMIS. Check to see if it works for you. I am not sure if it even works.
I worked with a similar requirement couple of years ago and i choose to write a SOAP webservices middle layer between Alfresco repo (AlfrescoOne 5.0.0.5) and third party consumer, where third party consumer (in your case the legacy system that can consume and send only SOAP request/response only at this moment) sends the SOAP request to the middle layer, middle layer parses the request and then talks to alfresco repo over the REST (OOTB REST APIs and custom develped) and returns the SOAP message back to consumer.
So may be you can try similar approach as an alternative if its viable for your business needs.
Steps to follow:
1- Get the WSDL that DMS endpoint produces and used by the legacy system at present.
2- Implement a middle layer SOAP webservice. You can either use axis2 or jaxws and develop a spring boot app. Check some useful links below:
Developing soap webservice using spring boot: https://spring.io/guides/gs/producing-web-service/ https://www.baeldung.com/spring-boot-soap-web-service Apache Axis2 SOAP webservice: https://javaworld-abhinav.blogspot.com/2016/11/quick-start-with-apache-axis2-soap.html Sample soap webservice project: https://github.com/abhinavmishra14/soap-demo
3- Using the wsdl (as per step 1) develop the SOAP endpoints in the middle layer application in accordance with the legacy system's expectations in terms of request and respose it needs. Middle layer will get soap request, parse the request and then call Alfresco's rest apis, prepare the soap response upon response from alfresco's rest apis and return the soap response back to legacy system.
4- Deploy the middle layer on same host where alfresco is deployed or on different host making sure middle layer is able to connect to alfresco. Test the services via soap client/soapui etc.
5- Integrate with legacy system
thanks for responding @sanjaybandhniya , the requirement is other way. In our case alfresco need to expose soap endpoint instead of invoking soap endpoint. we are looking to enable soap endpoint to serve content from alfresco. The documentation is other way it seems. please correct me
Refer this documentation: https://docs.alfresco.com/5.2/pra/1/concepts/cmis-bindings.html
It says that there is SOAP webservice binding available via CMIS. Check to see if it works for you. I am not sure if it even works.
I worked with a similar requirement couple of years ago and i choose to write a SOAP webservices middle layer between Alfresco repo (AlfrescoOne 5.0.0.5) and third party consumer, where third party consumer (in your case the legacy system that can consume and send only SOAP request/response only at this moment) sends the SOAP request to the middle layer, middle layer parses the request and then talks to alfresco repo over the REST (OOTB REST APIs and custom develped) and returns the SOAP message back to consumer.
So may be you can try similar approach as an alternative if its viable for your business needs.
Steps to follow:
1- Get the WSDL that DMS endpoint produces and used by the legacy system at present.
2- Implement a middle layer SOAP webservice. You can either use axis2 or jaxws and develop a spring boot app. Check some useful links below:
Developing soap webservice using spring boot: https://spring.io/guides/gs/producing-web-service/ https://www.baeldung.com/spring-boot-soap-web-service Apache Axis2 SOAP webservice: https://javaworld-abhinav.blogspot.com/2016/11/quick-start-with-apache-axis2-soap.html Sample soap webservice project: https://github.com/abhinavmishra14/soap-demo
3- Using the wsdl (as per step 1) develop the SOAP endpoints in the middle layer application in accordance with the legacy system's expectations in terms of request and respose it needs. Middle layer will get soap request, parse the request and then call Alfresco's rest apis, prepare the soap response upon response from alfresco's rest apis and return the soap response back to legacy system.
4- Deploy the middle layer on same host where alfresco is deployed or on different host making sure middle layer is able to connect to alfresco. Test the services via soap client/soapui etc.
5- Integrate with legacy system
thanks @abhinavmishra14 for providing directions. cmis soap link is not working. I get 404 not found error.
doc link could be wrong, however we are thinking to go the route you mentioned as it will enable us to scale in a better way. I will update here when we finalize
We did POC to test authentication and custom mini search requests by the SOAP middle layer and it is working as a workaround as I updated previously that we cannot change anything on consumer side which can only consume and send SOAP request.
thnk you @abhinavmishra14 for directions and links, it helped us setting up soap middle layer.
thnks forum, you guys are the best intelligent brains here
Ask for and offer help to other Alfresco Content Services Users and members of the Alfresco team.
Related links:
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.