I am developing a new application and I want that to be deployed on PCF(Cloud Foundry). I am thinking which flavor of REST services that I have to use. Should I use Jersey or RestEasy to expose services? or cloud foundry provides default rest implementations?
Cloud Foundry does not provide any rest implementation, and can support almost any, if it's supported by a language with a buildpack. Jersey and RestEasy would both be supported as they can run in a JVM, as is Spring Boot (which is my personal favorite). You can also write REST services in ruby, python, go, php, and nodejs--and those are just the languages that are supported out of the box!
Related
I am using wildfly for exposing my APIs and swagger for API documentation.
I am in a situation where I need to expose only some APIs to some people and other APIs to others.
How to achieve this
I recommend using MicroProfile OpenAPI (recently integrated in WildFly 19.0.0.Final) which allows you to filter your OpenAPI document.
https://download.eclipse.org/microprofile/microprofile-open-api-1.1.2/microprofile-openapi-spec.html#_filter
I have gone through the ATG oracle guide for rest web service Architecture. Kindly provide a basic example/ steps to consume a rest service in oracle ATG.
If you are looking to consume an external REST API from within your ATG application, then ATG does not provide you any specific way to do so, but ATG is Java, and there are many ways to call REST services in Java.
If you are looking to expose REST APIs from your ATG application, then ATG 9 onwards has a REST Services framework, and ATG 11 onwards has a REST MVC framework that you can use. If these are not suitable for you, then there are other, third-party, ways of doing it too.
Using Mule ESB I noticed that you can connect (via anypoint connectors) applications, databases, web services etc.
Since I am making a comparison between different ESB (Enterprise Service Bus) I ran into WSO2 ESB and reading the documentation it seems that allows to interact only web services (through SOAP communications).
Someone confirms what I wrote? Or WSO2 ESB is flexible as Mule ESB and I'm wrong (if so what are the differences)?
WSO2 ESB also has the concept of connectors which you can use to connect to external applications, databases, file systems and web services hosted in cloud or in internal networks. Here is a webinar which you can follow to get more information.
http://wso2.com/library/webinars/2014/09/esb-connectors-for-on-premise-and-cloud-integration-solutions/
I can't help as my knowledge of WSO2 is limited. What I could do is to recommend you the book open source ESB in action, although outdated its data, the introduction is amazing and the comparison methodology is also good. You could follow the same approach with the state of the art today.
Most of the connectivity to applications, databases, different protocols are already available with wso2 ESB and wso2 product stack out of the box. However there are some connectors that will support integration with on-premises legacy systems and additional protocols. eg: ejb, is08583, kafka, etc.
We have an old JBoss 3.2.3 server which hosted an application and exposed EJBs for remote access.
This application has only received minor maintenance in years, and we did not put some effort to migrate it to newer releases of the app server.
Now, we are integrating it with another application, and we have a requirement to also expose SOAP Web Services.
At first, I wasn't worried, since JBoss 3.2.3 announces compliance with the J2EE 1.4 spec (JSR151), which specifies the APIs for web services: web services (JSR109) and JAXRPC (JSR101).
However, my first deploy using the JAX-RPC api failed, because JBoss did not find the JAX-RPC classes.
So my questions are:
Is JBoss 3.2.3 really a J2EE 1.4 app server ? The lack of JAX-RPC classes seem to indicate otherwise.
What are the APIs for exposing a web services in JBoss 3.2.3 ?
What are the APIs for consuming a web services from an EJB deployed in JBoss 3.2.3 ?
In the end, I can always deploy additional APIs and libraries with my application, but I'd like to avoid overlapping existing libraries.
JBoss 3.2.3.GA is not a fully compliant J2EE 1.4 server. For instance, it does not implement the EJB 2.1 interface, only EJB 2.0 [1].
Also, JBoss 4.0 announces being the first J2EE 1.4 compliant server; I conclude that JBoss.org did not certify JBoss 3.2.3 as compliant.
Even though not-compliant, JBoss 3.2.3 has some features for consuming SOAP Web-Services. For instance, it ships with Apache Axis 1.1 and JAX-RPC apis, so one can easily generate java classes for a WS client outside the server and have them run in an enterprise app.
Exposing web services is a more difficult task. One way of exposing web services is to create a Stateless EJB and expose it as a webservice endpoint. However, that's part of the EJB2.1 spec, which is not available in 3.2.3.
Too bad ! In the end, we will look for other alternatives in exposing our web services.
The newer JavaEE specs and servers are so much easier to develop for. It's the old specs and servers that gave JavaEE a bad rep.
Is it possible to invoke Java EE web services from iPhone? and how?
It hasn't been formally updated in a while, but this project can be used to access traditional SOAP web services. I have used it in production.
And I wrote two tutorials for wsdl2objc: they're here