I want some recommendation on best way to communicate RCP thick client and a set of business functionality implemented in Spring on the server side. Please provide urls on the net wherever possible.
I would prefer to pass domain objects directly between the two.
Is osgi a good option for me?
For RESTful web services you could use the Jersey client library. If your exchange format is XML it is really easy to exchange your objects (see here for a tutorial).
Generally, you can use any client library depending on you exchange protocol also in an Eclipse RCP app (see here how to convert a jar into an OSGI bundle).
Related
I am building a middle tier which will consume information from multiple downstream systems. The ask is to talk to them over 1 way SSL. I looked up samples but this concept is a bit if a mystery to me. Please help.
The question is too vague IMHO, I'll try to provide general insights
The answer may vary depending on the actual requirements in your organization security department and your actual spring boot configuration.
Spring Boot is a Java framework that usually allows the deployment architecture with an embedded tomcat, jetty or undertow servers that serve Http endpoints exposed by Spring MVC or without an embedded server at all (usually for legacy deployments)
If you in a "legacy" mode (build a WAR) - then HTTPs configuration should be done on the actual server and not in spring boot application.
If you use an embedded server, then the actual technical solution can actually depend on the server you use underneath, at least to some extent.
Indeed like Steffen Ullrich has stated in the comment section, there are many examples of doing this.
For example, take a look at This one
If you want to redirect HTTP requests to HTTPs you should configure your server to do so, and this solution is Tomcat specific.
Another thing to consider is whether you want to use SSL at the level of spring boot at all. Maybe you're running under the gateway / some kind of proxy. In this case, it can make sense to use https for accessing the proxy from outside, but from a proxy to java application you could use HTTP.
I know I'm just speculating about this solution, I've just decided to mention it because in my experience there are many organizations that work like this.
In addition, since spring boot is used for microservice development, the chances are that you have many spring boot artifacts that somehow "talk" to each other, so maybe running HTTPs between them is redundant.
I have web application on Spring MVC and looking for SOAP consumer - frameworks to be used with Spring MVC. The web app is only the consumer and doesn't host any web service.
Options I am looking for SOAP client are :
1. JAX-WS
2. Spring MVC & Spring-WS
3. Apache Axis or CXF
4. Spring Integration or Camel. Can these be used for consumption of
services too? Won't that be overhead?
What do you suggest? Please recommend the best option if also not in the above list.
Thanks in advance.
Look at this excellent post about this subject.
Which framework is better CXF or Spring-WS?
My advise based on the fact that you only have to develop one client, is to consider making your choice based on your context to optimize your productivity and avoid adding tones of layer and libs in your app:
Pure Java EE app or already using Spring APP
Your current Application Server : Jboss for example already provide a CXF implementation that is very suggested to use
Service providers "age": I have met some problems in calling AS400 or old IBM system webservices. Any client was not working.
Your IDE and Plugins : for example, if you have eclipse, Axis/CXF plugins are very interesting.
Concerning Camel, it is interesting if you have different source and destination like HTTP to JMS.
For Camel, read this post:
What exactly is Apache Camel?
I wanna create spring app which will consists of 2 parts :
spring backend + spring mvc (server + web app)
desktop app which need to acces to backend
Whats best protocol to comunicate between spring and desktop app? Can i use SOAP for this? Can someone do quick overview of avaliable technologies (why not/yes)?
And whats best choice for desktop app GUI framework? or its better to use pure Swing / AWT.
I want to notice that i wanna use solutions which is most popular in software companies.
I appreciate every opinions.
The companies I work for aren't interested in Swing. Apps are web-based, not desktop. You're more likely to find mobile apps rather than Swing these days.
With that said, your instinct is a good one: separate the services, which are unlikely to change, from the UIs that come and go.
Start with Spring POJO, interface-based services and remote them any way you like.
An HTTP-based protocol will be more reusable by different clients.
Spring allows you to use HTTP remoting, SOAP or REST web services. If you write web services, learn how to write "contract first". Start with the .xsd for your XML messages.
im trying to understand where WSDL's fit in, in a typical web service backend application. i am coming from a Spring background and in my experience so far, in Spring, each url request gets mapped to a specific controller class via a dispate servlet running in the web container. you can specify which url matches a given controller via xml config or from annotations.
is using a WSDL the same thing as using an xml config file to map url requests to java objects?
Thanks in advance. im moving from Spring to standard j2ee/EJB3.
WSDL is just a description of Web Service interface, most Web Service systems generate those descriptions on fly like for example when you create asmx web services you can generate WSDL on fly by typing http://yourhost/yourwebcontext/yourwebservicename.asmx?wsdl and it will return you the description of that web service. Then you can use a tools that generate stub proxies for coding using those descriptions automatically, for example in Visual Studio when you add an Web Service Reference those operations are done automatically
No, WSDLs are not like a dispatch servlet.
A WSDL file is a description of a web service (SOAP, REST, etc.). A WSDL can (theoretically) be used by anyone to generate executable code which consumes the web service described by that WSDL.
From the WSDL tag info:
"WSDL" stands for "Web Services Description Language." It is an XML language used to describe a web service to code that wishes to consume it. It describes the messages sent and received, the possible faults, and the communication and security requirements.
From WSDL Essentials:
In a nutshell, WSDL represents a contract between the service requestor and the service provider, in much the same way that a Java interface represents a contract between client code and the actual Java object. The crucial difference is that WSDL is platform- and language-independent and is used primarily (although not exclusively) to describe SOAP services.
Using WSDL, a client can locate a web service and invoke any of its publicly available functions. With WSDL-aware tools, you can also automate this process, enabling applications to easily integrate new services with little or no manual code. WSDL therefore represents a cornerstone of the web service architecture, because it provides a common language for describing services and a platform for automatically integrating those services.
I want to write a ruby web service client for a SOAP (JAX-WS) web service. I looked into soap4r and handsoap but couldn't find useful resources to write a (JAX-WS) client
Can you help me to find some resources and some way of doing it. Because as I can see, my web service is developed using oracle JDeveloper and looks little different than examples find in web.
I'm a beginner for SOAP, WSDL web services and finding it hard.
Has anyone done something like this before, or can you turn me to the correct direction?
JAX-WS is an API for the development of web services in Java. Know then that, in order to consume a SOAP/WSDL based web service, it is not necessary to know how that web service was implemented. It could be Java, .NET or any other number of languages. All that is required to create a SOAP based web service client is the WSDL for the service. It is self contained and self descriptive, including all operations and data types supported by the web service.
In order to familiarize yourself with web services, I would recommend trying to exercise some web services directly, for example using SoapUI. This will allow you to import a WSDL for an active web service, try out some of the operations, and see what the corresponding SOAP messages look like. Then, I would look at "What's the best way to use soap with ruby?" for more ruby specific approaches.