JAX – WS – 11 – Creating a Bottom-Up Java Web Service

Merhaba Arkadaslar
Bu bolumde Eclipse yardimiyla otomatik olarak Web Service olusturmayi inceleyecegiz.

Implementation approaches

Web Service implemantasyonu icin 2 yaklasim vardir ;

  • Bottom-up development
  • Top-down development

Create Dymamic Web Project

Oncelikle Eclipse’te yeni bir Dynamic Web Project olusturalim.

Bottom-up yaklasiminda once Java service siniflarimizi yazariz. WSDL dosyamiz otomatik olarak uretilir.

This is where the code that implements the operations performed by the service is written first. 
Then the XML description (WSDL) of the service is produced and published in UDDI.

Simple Web Service

Simdi de onceki bolumlerde kullandigimiz basit message service sinifimizi ekleyelim.

MessageWriter.java

package injavawetrust.ws.service;

import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
import javax.jws.soap.SOAPBinding.Style;

@WebService
@SOAPBinding(style = Style.RPC)
public interface MessageWriter {

	@WebMethod
	public String getWelcomeMessage(@WebParam(name = "name") String name, 
					@WebParam(name = "surname") String surname);
}

MessageWriterImpl.java

package injavawetrust.ws.service;

import javax.jws.WebService;

@WebService(endpointInterface = "injavawetrust.ws.service.MessageWriter")
public class MessageWriterImpl implements MessageWriter {

	@Override
	public String getWelcomeMessage(String name, String surname) {
		return "Welcome , " + name + " " + surname + ". This message is sent by MessageWriterImpl#getWelcomeMessage.";
	}

}

Create Web Service

Sonrasinda Projemize sag tiklayip New -> Other -> Web Services -> Web Service

Sonrasinda karsimiza yeni menu cikacaktir.

  • Web Service type : Burada Java bean siniflarindan Web Service oln Bottom Up yaklasimini seciyoruz.
    Eger WSDL dosyasindan olusturacaksak bu durumda Top down secenegini kullanmamiz gerekmektedir.
  • Service implementation : Browse butonuna basarak ilgili injavawetrust.ws.serviceMessageWriterImpl sinifimizi gosterelim gosteriyoruz.
  • Start Service (default) : Bu bolumde ise Eclipste’ten bizim icin yapmasini istedigimiz isi belirtiyoruz. Start Service seviyesinden daha az bir talep belirtigimizde bu durumda Client’i bu menude olusturamayiz. Bir derece daha artirdigimizda Test service level’i olacaktir. Bu durumda Eclipste Web Service menusu acilacaktir.
  • Client type : Java Proxy
  • No Client (default) : Varsayilan olarak bu menude Client otomatik olarak olusmaz. Bunun icin level artirmamiz gerekmektedir. Test client diyebiliriz.
    Bu durumda bizim icin otomatik olarak bir proje olusturacaktir. Varsayilan olarak ismi [projectName]Client seklinde olacaktir. Simdilik No Client olarak kalsin.
  • Configuration :
    Server Runtime ; mevcut kullandigimiz server.
    Web Service runtime : Apache Axis ( varsayilan olarak Apache Axis kullanilacaktir)
    Apache Axis2 , CXF gibi cesitli implemantasyonlar kullanabiliriz.
  • Next diyerek cesitli konfigurasyonlar yapabiliriz. Burada default olani kullansin direkt finish ile olayi tamamliyorum.

Output

Eclipse bizim icin mevcut projemizde yeni dosyalar olusturdu.

  • WebContent
    Oncelikle WebContent altina bakacak olursak burada wsdl klasoru icerisinde wsdl dosyamizi olusturdu.Varsayilan olarak ismi implemantasyon sinifimizin ismi ile ayni olmaktadir.
    Bunu yukaridaki konfigurasyondan next -> next adimlarinda degistirebilirdik.
  • WEB-INF
    WEB-INF klasoru altinda lib klasorunde jar dosyalari yer alacaktir.
    WEB-INF klasoru altinda MessageWriterImplService klasoru yer alacaktir.
    WEB-INF klasoru altinda server-config.wsdd dosyasi olusacaktir.
    (wsdd – Web Service Deployment Descriptor)
    An Axis specific web service deployment configuration file.
    WEB-INF/web.xml dosyasi konfigurasyonu eklenecektir.

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns="http://xmlns.jcp.org/xml/ns/javaee"
	xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
	id="WebApp_ID" version="3.1">
	<display-name>injavawetrust.jaxws.axis</display-name>
	<servlet>
		<display-name>Apache-Axis Servlet</display-name>
		<servlet-name>AxisServlet</servlet-name>
		<servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>AxisServlet</servlet-name>
		<url-pattern>/servlet/AxisServlet</url-pattern>
	</servlet-mapping>
	<servlet-mapping>
		<servlet-name>AxisServlet</servlet-name>
		<url-pattern>*.jws</url-pattern>
	</servlet-mapping>
	<servlet-mapping>
		<servlet-name>AxisServlet</servlet-name>
		<url-pattern>/services/*</url-pattern>
	</servlet-mapping>
	<servlet>
		<display-name>Axis Admin Servlet</display-name>
		<servlet-name>AdminServlet</servlet-name>
		<servlet-class>org.apache.axis.transport.http.AdminServlet</servlet-class>
		<load-on-startup>100</load-on-startup>
	</servlet>
	<servlet-mapping>
		<servlet-name>AdminServlet</servlet-name>
		<url-pattern>/servlet/AdminServlet</url-pattern>
	</servlet-mapping>
</web-app>

Web Services Explorer

Eclipse’te Web Services Explorer menusu acilacaktir, bu menu uzerinden test yapabiliriz.

http://localhost:8080/injavawetrust.jaxws.axis/services
http://localhost:8080/injavawetrust.jaxws.axis/services/MessageWriterImpl?wsdl

Ornegimizi SOAP UI uzerinde de test edebiliriz…

Github kaynak kodlar / source folder
injavawetrust.jaxws.axis

Yazimi burada sonlandiriyorum.
Herkese bol Javali gunler dilerim.
Be an oracle man , import java.*;

Print Friendly, PDF & Email

Leave a Reply

Your email address will not be published.