how to use web service API? - java

Our application is written in Java. Now we are integrating with a different company which offers web service API. This API allows Microsoft.NET or SOAP enabled application to integrate. Please consider me in this naive. So how do I verify if my application is SOAP enabled or how do I make it? Actually our current plan to integrate is through data transfer between two systems. But some customers want single sign on. So I am thinking of using their API in our application.

There are many web service libraries available for Java. One is included by default in Java 6, and is available for Java 5 here https://metro.dev.java.net/

Related

Developing app with web and Android client with Java

I'm going to start developing a new simple "X management" kind app, like contact management or events management. What I want to know is which tools would be the best to achieve it in the way I want.
My app needs to be a web app running on a server that has a mysql database to save and retrieve some simple information. This app must have a web client but I want it to be able to be extended to work with an Android app client.
Things I've thought:
I've worked on Java with facelets and JPA travels management app running on a GlassFish server on localhost with a JSF web view, so maybe my web client and the full app could be done with this.
I've worked with web services such as SOAP and REST with Jaxb and xml schemes to retrieve information parsing some webs into xml or json to show on a client .net app. So I've thought I can add to my app, like last topic we talked about, a REST web service layer to easily work as I want, or at least I think it would be easy. If I do this the Android app could share the same app core code but using the REST service.
My question is what could be the best way to do an app with 2 client side in different platforms that could share some code to be easy to extend it moreover to a desktop app. I've talked about these 2 options because I'm a students of computers at university and those are the tools I know, but I can easy learn more. I've also think about just a REST service and create a web and an Android client to work on same service or something like that.
This post is getting long, so here is the summary: What technologies and tools do you think are the best choice to create an java web app that needs to have web and Android client? Also what server, like tomcat, GlassFish or another, should I use? And what about persistence layer? JPA with mysql is the best I know to work with.
Thanks a lot.
P.D: I work with eclipse
From my point of view:
You can use java jersey and java spring both ( java spring as Dependency injection) for creating RESTful Web service. So, In server side you will create endpoint and you can access data from any platform through those endpoint.
Server can be anyone. It's up to you. I always try to use tomcat but tomcat is not a full JavaEE container it's only a servlet container. So if you want to use full JavaEE version then you should use Glassfish.
And yes JPA .It can be easily used in any environment supporting JPA including Java SE applications, Java EE application servers, Enterprise OSGi containers etc.
On the other hand, still choice is yours.

Issues with Creating application as a Web Service vs Regular MVC

I am working on a web application. The requirement is that is the future the application may also be used by other web application and mobile application.
My idea was the build the whole business logic layer as rest web service and build web client to consume this.
Later I can use the same thing in case I want to build a mobile client or give it to external parties. This saves me from writing a separate api code.
Is this the correct way?
Will it have any performance impact?
What is the primary reason of not adopting such an approach.?
I am using Java ,spring MVC,spring,hibetnate and Mysql as the development stack

Does iPad development work with interacting through Java code with Spring Framework using TomCat to host the web service on a server? How?

Here is the background of my situation:
I want to create an iPad application that interacts with a oracle SQL database. I have existing Java code from my Flex application that handles all the database requests, and modifications using the Spring Framework. The Flex Application ran as a web service through TomCat. Now I want to make that flex application into a mobile iPad version. I am having trouble figuring out what is the easiest way to use existing Java code and use it for the iPad because the iPad interacts using URL requests instead of direct with the Java.
My question is, can I use the existing Java code with the Spring framework to save time from coding all the back-end handling? Basically I want to access all the classes from my Java code by doing Requests from the iPad. Is this possible and will I need JSON or XML to interact between the iPad and the Java code?
Summary:
Can I use
iPad Objective-C <-----> Java (with spring framework) on TomCat Web Service to handle oracle SQL data handeling? If so, how and what technologies do I need? Will I need JSON or XML and how does that factor between the iPad and Java?
Thanks!
A good approach would be to design your app to communicate with RESTful services that return JSON. Once this is done your iPad app doesn't have to even know that the server code is written in Java.. it's just interacting over HTTP.
Here's a good tutorial on setting up your tomcat to host your RESTful services: http://www.vogella.com/articles/REST/article.html - I've used this for an app I'm developing. Spring isn't even necessary.
You could go XML, but JSON is just easier in my opinion. Here's a good blog outlining the good and bad of both sides. http://digitalbazaar.com/2010/11/22/json-vs-xml/
OK, I'm making the following presumptions.
Your flex application runs on a different machine from the Tomcat
server
Your flex application makes web service calls to the Tomcat server
So, the flex application doesn't know the underlying technology that provides the web services. It's just seeing/consuming the output
There's no reason why the iPad app can't do the same thing. There's no reason why it can't use the same web services that the Flex application uses. It could consume the same messages (Assuming it can handle the request/response format currently employed by the Flex application).
You can make changes if you like if you want to change the structure of the requests/responses between the clients. But the clients don't know (nor care) how the web services are implemented. They are just requesting and consuming info.

How to publish a java web-service publicly?

In my java based web application (struts 2 and hibernate 3). I have made a web-service using apache axis.
The web-service has to return data from the database which will be used by the android application.
Now, that service obviously has to be published on a public ip so that I can access it in the android app.
What are the options to publish it on free public ip's or domains ?
Would it be better if I use REST instead of apache-axis to make a web-service? What is JAX?
And for android developers , How a web service is consumed in android?
Please answer its urgent and important.
In order to publish on the web you need to put it on a web enabled server, you can do it in several ways:
Turn your computer to a server (thuis is one article, just search in google "how to turn my computer to web server").
Upload your files to a free host
Upload your files to a paid host (usually for a very small fee)
REST vs SOAP (apache-axis):
I would recommend going with REST as it is more lighweight and more flexible (it enables you to get a response as xml,json,html while soap is usually just XML).
JAX-RS id java API for creating REST web services. Look at the jersey framework.
AJAX is a way to send/get data asynchronously and is used wideley in web applications.
How a web service is consumed in android can wideley vary depending on the technology you are using.

What type of java project can serve web services?

Do I have been writing a java application, application is a console application.
Now, I want my application to listen to request at a port coming from web application and process those request and affect DB data.
I am not sure how to do it in a simple java project. Can I use some java webservices, and how?
Socket programming in Java is quite nice - a Socket is an abstraction that listens for data coming in on a single port from a single web address or server and can also send out.
http://zerioh.tripod.com/ressources/sockets.html
Note that listening for data blocks program flow.
Most likely you're looking at learning Java Servlet programming. There are a lot of good resources to learn from.
However, from my experience something like Netty could serve you really well from both learning and actual application development perspectives. The site contains very reasonable example driven documentation, which takes user from non-blocking TCP/IP programming to HTTP support.
Yes , web service API (JAX-WS 2.0) is added to the Java SE 6. You can use these API to create a simple web service for the Java SE application.
See the section "Using JAX-WS 2.0 to Create a Simple Web Service" for the example .It shows how to create a standard web service end-point using JAX-WS 2.0 for the Java SE application.
Beside , this 5 minutes tutorial is very good at introducing JAX-WS .It includes the demo for implementing the web-service end-point and client and provide the eclipse project source code to download too. Please note that it misses the step to use wsgen to generate the service classes for the WebService end-point ,but it is not so difficult to figure out how to use wsgen

Categories

Resources