We are designing a Java middleware web application, something like a ESB, such as IBM message broker or mule.
We have many Oracle EBS interfaces(soap web services), and now the salesforce CRM wants to call the EBS interfaces through the middleware application.
Slaesforce CRM calls the middleware by rest json, and the middleware calls EBS by SOAP webservice. The picture below helps you know my meanings.
We have struggled many days to design the middleware with Spring Integration. But we found it difficult to do this. We still need to generate a jar file(by CXF) for every EBS interface(each wsdl with a jar file), and call the EBS interface by the traditional web service way.
We do not want to generate the webservice client jar files for each EBS interface. Is spring integration suitable for this(no generating the jar files for each WSDL, just some configuration or not much coding)? If not, can you suggest some other product else?
Thank you very much in advance.
For the SOAP interaction Spring Integration provides the WS module which is fully based on the Spring WS project.
I don't see reason to generate something, if you just can use the Spring Integration's <int-ws:outbound-gateway> to call that Oracle ESB service.
For this purpose you just need to know which XML to build for the request and which to parse from the response.
Seems for me for this purpose it would be enough for you to know the service WSDL and investigate it from the SOAP UI.
If I were you I'd just forget the CXF when we are with Spring :-).
An API gateway is one product which can be used here. Typically, it acts as a proxy between the client and the applications, but it can also do transformation between JSON and XML, which is what would happen in a REST to SOAP conversion.
MuleESB, although not a gateway can also be used for this purpose, see this link How to convert SOAP web service to REST web service in Mule
We did this by ourselves.
We developed the middleware by ourselves with Java.
We used java with freemarker template to convert the json request to required soap envelope body. Then used apache httpclient to call the web service(oracle EBS).
Related
I have a simple question if it make sense in the context of WSO2 Application server.
I want to write a module, which tells me if i updated a service. The service is an axis2 SOAP service. I know how to write modules for axis2 services inside axis2 engine. But if i use the WSO2 interface, and either delete a service, update a service or add a service, Is there a way to find out that i performed these activities?.
In short, can i intercept the messages that i uploaded a new module or i uploaded a new service or i changed the service.
thanks you...
You could write a Axis2 Observer for this, take a look http://asanka.abeysinghe.org/2008/10/how-to-writing-axis2-observer.html
i'd like your help to designing a wb serice but I don't know how i can't do this.
In fact my application handles data management clients. My application is developped in struts 1.0, spring, weblogic and build-in maven.
He was asked to me to make an evolution because an external application need to access data such as displaying the address of the client or displaying data bank. For this, it was planned to create a web service to retrieve in real time.
I would like to know the strategy to use for designing a web service. Do I need to create a new Dynamite projet maven + JAX WS to my web service and deploy my war on my weblogic server?
Or they have something else to do ?
Thanks a lot !
I am not sure that this question is related to maven.
Adding a WebService (or RestService) could be quite easy with springframework and apache cxf (http://cxf.apache.org/)
see jaxws or jaxrs for more.
create web service in a two types but real time applications using jax-ws web services reason for consumer want to send data into provider.consumer can know the entire information about the provider by seeing its WSDL Document.
i am new to REST Service development. I compared the development mechanism for both REST and WS web services and i found that you can create a WS web service using WSDL file that is the top down appraoch (Correct me if i am wrong) and using bottom up approach also, that is generating the classes manually.
But when it comes to REST web service development you have to follow bottom up approach only that is generating the classes manually. NetBeans IDE provides certain wizards for creating REST web service quickly from databases, entity classes and patterns.
I had also seen when you are developing web service in eclipse and you are using wizard in eclipse IDE, you can create a REST web service from WSDL file. I found this very strange. My question here is what are the approaches we can have for creating REST web services. Can we create REST web services using top-down and bottom up approached. If yes then please provide me details.
Thanks.
It is possible to describe a REST service using a contract. This is the intent of WADL and WSDL 2.0. WADL is specifically a REST contract, whereas WSDL 2.0 evolved from the original WSDL spec. to support all HTTP bindings. Since REST services rely on the use of HTTP methods and headers to exchange messages a WSDL 2.0 contract can work. There is a really good explanation here: http://ajaxonomy.com/2008/xml/web-services-part-2-wsdl-and-wadl
For development of REST services, I'm not sure if NetBeans, Eclipse or other tools specifically support automated REST service from WSDL generation. I would imagine that most are still intended for SOAP service creation. At this point I think WSDL 2.0 and WADL can be used to describe a REST service, but are not intended for automated generation of a REST service.
REST services are simple HTTP request/response,and therefore don't require complex stubs. In most cases it would probably take more time to write the WSDL describing the REST service, than it would take to write the REST service itself.
Situation:
We are planning to build a set of new services a long side a set of old SOAP (Spring, apache CXF) web services. Our customers are used to being able to use ?wsdl to get a wsdl describing a service and the content it will accept/return.
I'm looking at providing the new services via spring controllers and RESTful urls. However not all of a request can be handled via a RESTful url, so we still need to have a payload request and responses. I'm looking at use #RequestBody and #ResponseBody and spring's Message Converters to auto(magically) handle both XML and JSON content. The idea being to let spring do as much of the heaving lifting as possible.
The problem:
I'm trying to figure out if it's possible given the REST/Message converter concept, to be able to provide a description of a service and it's request/response data in a similar fashion to the ?wsdl request. I understand that there are WADL documents that can be generated by some systems, but they appear to be a proposel and not fully accepted yet.
Does anyone know if spring can generate WADLs or something else that I can use to allow clients to query the RESTful services data structures?
SpringMVC doesn't support WADL auto generation, mostly because it doesn't use the JSR-311 standard REST API.
I have create a blog entry with a simple WADL generation Controller in java :
Tuxgalaxy Blog Entry.
But Tomasz Nurkiewicz also provide a WADL generation Controller in scala :
nurkiewicz Blog Entry.
You could use CXF JAX-RS for your REST services since you're already using it for SOAP (you can even expose the same service as SOAP and REST with CXF), and CXF gives you the WADL that you want by adding ?_wadl&_type=xml
The following code will work with Spring REST 4x and its based on the suggested code by tuxgalaxy provided on below https://jira.spring.io/browse/SPR-8705
http://javattitude.com/2014/05/26/wadl-generator-for-spring-rest/
I am implementing SOAP web services for a commercial application, and I am using GroovyWS to speed up the development.
But, when I deploy it on Tomcat, I am not using Grails, as the software has it's own J2EE framework, so how I do I get it to react to wsdl requests?
Do I need to write a groovy-based servlet?
Ideally I would like the WSDL generated upon request, so I can easily change the interface and see the change.
It seems I will miss the annotations that JAX-WS provides for, though, to help fine-tune the WSDL.
Using the example web application, the WSDL can be retrieved as follows:
http://localhost:6980/MathService?wsdl