Web Services in Java, beginner question - java

Im new to the subject of web services in java, though im familiar with the concept of web services. As im new to this topic,i have the following questions which i would like someone to help me with.
1) How are web services created in Java ?.Ive come across methods like using Eclipe WTP (Web Tools Platform), Sun WSDP (Web Services Developer Pack). What is the difference between them and which one to use ?
2) Is there any particular book or article on the web which i can refer to for learning how to create a basic web service using Java ?
3) If i have a WSDL file, is there any way i can test it ?
Thank You

1) Actually you have a lot of choices. See this question for a discussion about Java Web Services Frameworks. The two methods actually use a different framework, Eclipse uses Axis2.
2) Most, if not all, frameworks support 'contract first' development (from an existing WSDL), both for services and clients. For testing, SoapUI may also suit your needs.

Before choosing any tool and technology, first understand what webservice technology is about and what benefits it offers.
Its always better to understand the proper semantics of xml, xsd and other concepts(including namespaces).
Then pickup a book/article that explains how to implements one in java.
Choose a framework (Apache Axis, Spring ws etc) and implement one.
There are lot of resources available online that help you in your learning path.
Happy webservices.

For #3, you can test it using the web services explorer in Eclipse. Its really nice actually. Copy the source for the WSDL and copy it into some file in your project (xxxx.wsdl). Then, right click on that file in the navigator and choose "Web Services" -> "Test with Web Services Explorer"
If you dont have this option, then you need to install the necessary plugins into Eclipse to do this (or I think if you install the EE version of Eclipse it already has this). I dont recall which plugin I installed that added this functionality, but it was something relating to web work.
Once you've opened this, you can input values as the wsdl specifies and view the source xml as needed.
I'm also new to web development and I've found this incredibly helpful.
Best of luck!

Related

Spring-WS project creation

I'm trying to develop a simple starter project on Spring-WS using STS 3.9.
I'm new to this technology I'm done with theoretical concepts of web services and Spring-WS.
I have also gone through the spring.io official website for project creation but things over there were not very clear to me.
Can anyone please share some links that shows step by step development of project creation.
Also i also want to know apart from STS spring framework jars what all jars file are required for the same project.
I would highly recommend to take a look at the guides at https://spring.io/guides/. They provide simple-to-follow guides for a wide variety of topics around Spring, including web services. Not sure exactly what kind of web service you are looking for (RESTful or SOAP, whereas RESTful services are the preferred way nowadays), but you will find guides for both.
In case you found a guide that helps you, you can import the guides directly into a workspace in STS via the "Import Spring Getting Started Content" wizard, which you can find via the "New -> Other" and search for "Spring".

Can you implement Vue.js in a Java EE web application?

I just develop a tool with my classmates and we want to use Vue.js as Web interface.
For Description what we programmed. We developed a Java EE web application in Eclipse. We use Tomcat 7 as web server. I search a long time and i found nothing.
Vue.js is a javascript front-end framework. There is nothing to stop you from using that with a middle-layer/back-end technology like Java EE.
In your HTML pages(or JSP) just include the Vue.js file as mentioned in the documentation, and other .js files that you create as part of your vue.js frontend application.
The library can then interface with any HTTP-based backend methods that you expose (using Servlets, Controllers, etc.) depending on how your Java EE project is structured and what frameworks it uses.
While investigating the same question, I found this good blog that has a git repository too
https://blog.codecentric.de/en/2018/04/spring-boot-vuejs/
From a glance it looks like a read solid implementation, however it has some sticky setup i haven't come across before.
It dose however seem like a professional and scalable solution i will definitely
give a try.
https://github.com/jonashackt/spring-boot-vuejs
Thankyou 04/24/18 by Jonas Hecht
For sure you can.
Your java application, which is your "backend", has to expose its functionalities as Web services (REST Json WS should be the easiest for what you are trying to do).
To expose your services as Web services, you need to find the easiest framework fitting your need. You will probably need to dive into Maven if you haven't yet, because these frameworks tend to have tons of dependencies.
Your Vue.js interface will make calls to the backend via HTTP requests each time necessary (get a resource, update a resource, ...).

From Basic Java Project With Web Service To Deployable Glassfish Artifacts?

I am trying to learn about Web Services, Glassfish, Eclipse, etc. and the way I learn is I like to do things manually Instead of playing around with Dynamic Web Projects as many of the tutorials online ask you to do. I am starting with a basic Java project and creating the WSDLs, client stubs, etc. by hand.
I have (remarkably) come pretty far along. What I have done so far is create a web service class and used wsgen to create the WSDL and then used wsimport to create client stubs.
The part that I am stuck on is how do I deploy my service to Glassfish? I have been able to do it using Eclipse (right-click, -> Web Services -> Create Web Service) but as I stated above I want to learn how things work under the covers. So let's say I was using nothing but Notepad and a Java command line compiler how would I go from my current Web Service project to something that is deployable in Glassfish?
Thanks!
You find a hell lot of examples on the Apache TomEE website. This one might fit your needs.
http://openejb.apache.org/examples-trunk/simple-webservice/
You need to package your Webservice and deploy it to the container. There is merely anything happening "under the hood". It's just bred and butter stuff for your IDE. you could also do everything "by hand" (war, http://www.openscope.net/2010/01/25/war-deployment-file-structure/ ; asadmin deploy http://docs.oracle.com/cd/E19798-01/821-1751/giobi/index.html).
M

Building my first Java Web Application

I have to build a java web application and I'm not sure where to start.
I have a good amount of experience with java but I would like to know if anybody can point me to a good example of how to integrate java into a web page?
I searched google without much luck. Is there a decent example on how to do this? Is it similar to adding a flash object with an object tag? Thanks
You can start creating sample web application based on html and servlets, This site will guide you in doing so.
http://www.servletworld.com/servlet-tutorials/simple-servlet-example.html
You will need
JDK
Apache Tomcat(jars will be in tomcat so no need to download separatly)
There's an app for that.
http://www.appfuse.org
AppFuse is an open source project and application that uses open source tools built on the Java platform to help you develop Web applications quickly and efficiently. It was originally developed to eliminate the ramp-up time found when building new web applications for customers. At its core, AppFuse is a project skeleton, similar to the one that's created by your IDE when you click through a wizard to create a new web project.
You ahould start searching about :
Servlets (and Apache Tomcat)
JSP
Java Faces (and Apache MyFaces)
Existing web frameworks
I think the easiest is to download Netbeans for Java EE with Glassfish, install it and use a wizard to create your first Hello World web application.
Then I recommend learning Spring MVC - I think it is the easiest to start with and very flexible so you can add more and more functionalities later. For templating, I recommend FreeMarker or Velocity.

wcf and java interop

How can I interop easily between WCF and a Java app.?
WCF is a web service framework. Java also provides its own web service frameworks. They should be able to interoperate quite easily, although you'll need to ask a much more specific question if you want a better answer.
edit: The ProjectTango link you ask about says it all in the first paragraph:
... to ensure interoperability of
enterprise features, such as security,
reliable messaging, and atomic
transactions.
These are fancy additions to basic web services, and the specifications alone are not enough to ensure compatibility.
Basic web service interaction, which is all 99.9% of us ever need, will work just fine between WCF and Java.
Short Answer, Yes.
Long Answer, the interoperability depends on several factors. Basic interoperability is very easy. Only when you throw in factors such as security that things get complicated. We did some research on availabe Java web service frameworks and found out that the best suited one for our scenario is the metro stack along with netbeans 6.5 IDE. We achieved message secuity which has mandatory for the project using client/server mutual certificate authentication.
Some gotchas discovered in the process are:
- You have to add the webservices-rt.jar library from glassfish directory in netbeans project. (doesn't need glassfish to be running, just the jar file)
- WCF generates multifile WSDL files and netbeans cannot use them to generate proxy, although if netbeans is configured to use the URL (http://../?wsdl) it can generate the proxy.
- You have to put [IsRequired=true] on all datamembers in WCF. Java's handling of optional datamembers is quite complicated.
- Dictionaries as datamembers comes out as list
We have done this successfully on several projects. We use WCF basicHttpBinding, it is the simplest option if you just need to get it to work.
One of the things that can be a show stopper is if a service uses a platform specific datatype, like a Java vector or a .net dataset.
You can use JAX-WS services on the Java side, and then use WCF in .NET.
First create the JAX-WS services (glassfish libraries will allow you to do this). Create your POJO's, add the JAX-WS annotations, and deploy your WAR. Then, get the WSDL generated by your server and give it to VisualStudio. VisualStudio can generate the client for you.
That is the simple way, but your mileage will vary of course.

Categories

Resources