Konuyu görüntüle
IUCODERS FORUM > Programlama > JAVA > Web Service
Yazar
extreme


avatar
Kahramanmaras
admin
Kayıt: 24.10.2006
11.08.2009-10:16 #62939
Basit bir servis oluşturup bunu farklı bir projede kullanmak istiyorum. Bununla ilgili örnek kodlar varsa yazabilirmisiniz.
teşekkürler şimdidenapplause





The Man Who Loved Algorithm&Ubuntu.
www.burakamasyali.com





Yazar
orhan


avatar
istanbul
admin
Kayıt: 17.11.2005
11.08.2009-10:44 #62940
gerekli malzemeler
- 1 adet tomcat ya da herhangi bir webserver örn. http://tomcat.apache.org/
- 1 adet webservice işlemlerini yapacak kütüphane örn. http://cxf.apache.org/
- 1 adet ide örn. http://www.eclipse.org/
yapılışı
Eclipse ile dinamik web projesi oluştur.
Daha sonra indirdiğin webservice kütüphanelerini web-inf/lib altına kopyala.
Bu işleri yaptıktan sonra web.xml dosyamıza şu cxf servlet i için gerekli parametreleri ve service.xml dosyamızı ekliyoruz.
service.xml dosyasını daha sonra oluşturacağız.
<?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

	xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"

	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"

	id="WebApp_ID" version="2.5">

	<display-name>kpsws</display-name>

	<context-param>

		<param-name>contextConfigLocation</param-name>

		<param-value>classpath:tr/edu/iu/kps/service.xml</param-value>

	</context-param>

	<listener>

		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

	</listener>

	<servlet>

		<servlet-name>CXFServlet</servlet-name>

		<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>

	</servlet>

	<servlet-mapping>

		<servlet-name>CXFServlet</servlet-name>

		<url-pattern>/services/*</url-pattern>

	</servlet-mapping>

	<welcome-file-list>

		<welcome-file>index.html</welcome-file>

		<welcome-file>index.htm</welcome-file>

		<welcome-file>index.jsp</welcome-file>

		<welcome-file>default.html</welcome-file>

		<welcome-file>default.htm</welcome-file>

		<welcome-file>default.jsp</welcome-file>

	</welcome-file-list>

	<login-config>

  <auth-method>BASIC</auth-method>

  <realm-name>auth only</realm-name>

</login-config>

</web-app>

Şimdi bir adet webservice interface i oluşturuyoruz.
package tr.edu.iu.kps;
import javax.jws.WebService;

@WebService

public interface KPSService {

	public String hello(@WebParam(name = "name")String name,@WebParam(name = "surname")String surname);

}

@WebParam o parametrenin oluşan xml dosyasında verilen isimle görünmesini sağlıyor.
Bu işlemi yaptıktan sonra bu interface i implement eden servisi yazıyoruz.
package tr.edu.iu.kps;
import javax.jws.WebService;
@WebService(endpointInterface = "tr.edu.iu.kps.KPSService", serviceName = "kps-service")

public class KPSServiceImpl implements KPSService {

	String username;

	String password;

	public KPSServiceImpl() {

	}

	public String hello(String name, String surname) {
		return "Hello " +name+" "+surname;
	}
}


Bunları da yaptıktan sonra service.xml dosyamızı oluşturuyoruz.
<beans xmlns="http://www.springframework.org/schema/beans"

	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jaxws="http://cxf.apache.org/jaxws"

	xsi:schemaLocation="http://www.springframework.org/schema/beans

                          http://www.springframework.org/schema/beans/spring-beans.xsd

                          http://cxf.apache.org/jaxws

                          http://cxf.apache.org/schemas/jaxws.xsd">



	<import resource="classpath:META-INF/cxf/cxf.xml" />

	<import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" />

	<import resource="classpath:META-INF/cxf/cxf-servlet.xml" />

	<bean id="kpsServiceBean" class="tr.edu.iu.kps.KPSServiceImpl" />

	<jaxws:endpoint id="kpsService" implementor="#kpsServiceBean"

		address="/kps-service">

		

	</jaxws:endpoint>

</beans>

Uygulamanı tomcat e publish edip http://localhost:port/proje/services/ adresine girersen web servisini orada görebilirsin.





N/A
Yazar
extreme


avatar
Kahramanmaras
admin
Kayıt: 24.10.2006
11.08.2009-11:36 #62945
# public interface KPSService {
#
# public Test hello(@WebParam(name = "name")String name,@WebParam(name = "surname")String surname);
#
# }

Bu test tipinde ama classda String oldu o nasıl oldud oh





The Man Who Loved Algorithm&Ubuntu.
www.burakamasyali.com





Yazar
extreme


avatar
Kahramanmaras
admin
Kayıt: 24.10.2006
11.08.2009-11:39 #62946
Ben netbeansda yapıyorum yine şu illet hatayı aldımfrown

C:Documents and SettingsBurak AMASYALIMy DocumentsNetBeansProjectsLoginService
bprojectuild-impl.xml:695: The module has not been deployed.
BUILD FAILED (total time: 5 seconds)






The Man Who Loved Algorithm&Ubuntu.
www.burakamasyali.com





Yazar
orhan


avatar
istanbul
admin
Kayıt: 17.11.2005
11.08.2009-11:39 #62947
Bendeki kodu değiştirip yazdım buraya. O kısmı unutmuşum. Onları da biz zahmet kavrayı ver : )





N/A
Yazar
extreme


avatar
Kahramanmaras
admin
Kayıt: 24.10.2006
11.08.2009-13:26 #62951
Tamam servisi kurdum şimdi dışardan nasıl bağlanıcam biggrin





The Man Who Loved Algorithm&Ubuntu.
www.burakamasyali.com





Yazar
orhan


avatar
istanbul
admin
Kayıt: 17.11.2005
11.08.2009-18:10 #62961
http://localhost:port/proje/services/ adresine girdiğinde orda zaten servisi görüyor olman lazım.





N/A
Yazar
extreme


avatar
Kahramanmaras
admin
Kayıt: 24.10.2006
11.08.2009-18:13 #62962
orhan yazdi
 
http://localhost:port/proje/services/ adresine girdiğinde orda zaten servisi görüyor olman lazım.


Evet görüyorum peki o fonksyonu nasıl çağırablirim başka bir java projesinden?





The Man Who Loved Algorithm&Ubuntu.
www.burakamasyali.com





Yazar
orhan


avatar
istanbul
admin
Kayıt: 17.11.2005
11.08.2009-18:31 #62963
netbeans de projene sağ tıkla add webservice client gibi birşey olması lazım. wsdl adresini ekrana yaz. sana yazmış olduğum konfigurasyon jax-ws kullanır. aşağıdaki listeden onu seç gerisini wzard hallediyor. webservice çağrısını yapacağın kod bloğu iiçerisine sağ tık yapıp call web service operation vs...vs.. vs..





N/A
Yazar
extreme


avatar
Kahramanmaras
admin
Kayıt: 24.10.2006
11.08.2009-18:43 #62965
Bulamadım d oh





The Man Who Loved Algorithm&Ubuntu.
www.burakamasyali.com





Yazar
orhan


avatar
istanbul
admin
Kayıt: 17.11.2005
11.08.2009-19:54 #62967
extreme yazdi
 
Bulamadım d oh

Bulamadım derken? web service client projene sağ tık yapıp new dediğinde çıkıyor.





N/A
Yazar
safter


avatar

Kayıt: 18.04.2006
11.08.2009-23:08 #62970
eclipse ait web servis pluginleri var wsdl ile kullandıgım bir adet var elimde istersen yollarım plugini ekledikten sonra bir wsdl oluştur kendi wsdlini oluşturdugunun üzerine yaz daha sonra file-->new--> wsdl client service oluştur ve browse'den oluşturdugun wsdl'i göster kendisi var olan tüm methodların için bir fonksiyon yazıyor onları kod içerisinde çağır ve kullan..

bu arada eğer jdk 1.4 kullanacaksan web servis metodlarına sakın bigdecimal olan bir değişken verme :) acı tecrübedir :)





q
Yazar
extreme


avatar
Kahramanmaras
admin
Kayıt: 24.10.2006
12.08.2009-11:33 #62972
orhan yazdi
 
extreme yazdi
 
Bulamadım d oh

Bulamadım derken? web service client projene sağ tık yapıp new dediğinde çıkıyor.


web service client gibi bir proje seçeneği yokki netbeans 6.7 ded oh.





The Man Who Loved Algorithm&Ubuntu.
www.burakamasyali.com





Yazar
extreme


avatar
Kahramanmaras
admin
Kayıt: 24.10.2006
12.08.2009-11:34 #62973
safter yazdi
 
eclipse ait web servis pluginleri var wsdl ile kullandıgım bir adet var elimde istersen yollarım plugini ekledikten sonra bir wsdl oluştur kendi wsdlini oluşturdugunun üzerine yaz daha sonra file-->new--> wsdl client service oluştur ve browse'den oluşturdugun wsdl'i göster kendisi var olan tüm methodların için bir fonksiyon yazıyor onları kod içerisinde çağır ve kullan..

bu arada eğer jdk 1.4 kullanacaksan web servis metodlarına sakın bigdecimal olan bir değişken verme :) acı tecrübedir :)


netbeans kullanıyorum ben yinede teşekkür ederim. Ben sadece login yapıcam String bi değer lazım banabiggrin





The Man Who Loved Algorithm&Ubuntu.
www.burakamasyali.com





Yazar
orhan


avatar
istanbul
admin
Kayıt: 17.11.2005
12.08.2009-12:17 #62976
extreme yazdi
 


web service client gibi bir proje seçeneği yokki netbeans 6.7 ded oh.

Ya olm sen herhangi bir proje oluşturacan sonra projene sağ tık yapacan diyorum.







N/A
1 2 3
Del.icio.us
Digg
Facebook
Furl
Google
Blink
Simpy
Spurl
Y! MyWeb