Bài này hướng dẫn các bạn tạo một Webservices trong Java.
Nguồn: Thầy Sơn
Để tìm hiểu thêm về Webservices các bạn nên tham khảo thêm ở đây
http://congdongjava.com/showthread.php?t=571
Tìm hiểu về công dụng của Ws
Trong java bạn thường xây dựng một ứng dụng phân tán. Bằng cách sử dụng RMI, hoặc cổ hơn nữa là Corba. Tuy nhiên thì khi số lượng người dùng lớn, truy cập nhiều địa điểm khác nhau. khó khăn đầu tiên mà bạn gặp phải là sự giao tiếp giữa Client và Server bị tường lửa (firewalls) và Proxy Server ngăn chặn lại.
Webservices da đời đã giải quyết những khó khăn đó
Ưu điểm của nó là: Nó có khả năng vượt tường lửa, đồng thời sử dụng XML để giao tiếp. Và một ưu đỉểm nổi trội nhất, đó là tính độc lập nền tảng, tức là chúng ta có thể viết Webservices bằng Java và có thể gọi trong Dot.Net và ngược lại. Có thể nói nó là sự dung hòa giữa các ngôn ngữ, các trường phái khác nhau.
Cách tạo một WS đơn giản:Trước tiên ta sẽ gọi Webservices trong Java, sau này tôi sẽ làm ví dụ gọi nó trong .Net.
Trong ví dụ này chúng ta xây dựng Webservices đơn giản, với bài toán convert nhiệt độ từ độ C sang độ F và ngược lại.
Create Project (Web Application) Name : Conversions
Deploying and Testing the Web Service
Để gọi Webservices thì ta có thể gọi bằng Swing, Jsp, hoặc gọi trong cửa sổ dòng lệnh cosole. Ở đây ta gọi trong Swing. Vì thế ta cần phải tạo Jframe.
Nguồn: Thầy Sơn
Để tìm hiểu thêm về Webservices các bạn nên tham khảo thêm ở đây
http://congdongjava.com/showthread.php?t=571
Tìm hiểu về công dụng của Ws
Trong java bạn thường xây dựng một ứng dụng phân tán. Bằng cách sử dụng RMI, hoặc cổ hơn nữa là Corba. Tuy nhiên thì khi số lượng người dùng lớn, truy cập nhiều địa điểm khác nhau. khó khăn đầu tiên mà bạn gặp phải là sự giao tiếp giữa Client và Server bị tường lửa (firewalls) và Proxy Server ngăn chặn lại.
Webservices da đời đã giải quyết những khó khăn đó
Ưu điểm của nó là: Nó có khả năng vượt tường lửa, đồng thời sử dụng XML để giao tiếp. Và một ưu đỉểm nổi trội nhất, đó là tính độc lập nền tảng, tức là chúng ta có thể viết Webservices bằng Java và có thể gọi trong Dot.Net và ngược lại. Có thể nói nó là sự dung hòa giữa các ngôn ngữ, các trường phái khác nhau.
Cách tạo một WS đơn giản:Trước tiên ta sẽ gọi Webservices trong Java, sau này tôi sẽ làm ví dụ gọi nó trong .Net.
PHP:
Bước 1:Các bước xây dựng Webservices
Create Project (Web Application) Name : Conversions




PHP:
Adding an Operation to the Web Service

PHP:
Adding an Operation to the Web Service


PHP:
=>0K

PHP:
Open conversion.java

PHP:
package org.me.convert;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;
@WebService()
public class conversion {
@WebMethod(operationName = "celsiusToFarenheit")
public float celsiusToFarenheit(@WebParam(name = "celsius")
float celsius) {
//TODO write your implementation code here:
return (celsius*9/5)+32;
}
@WebMethod(operationName = "farenheitToCelsius")
public float farenheitToCelsius(@WebParam(name = "farenheit")
float farenheit) {
//TODO write your implementation code here:
return (farenheit-32)*5/9;
}
}


PHP:
=>View WSDL
PHP:
http://localhost:8080/Conversions/conversionService?WSDL
PHP:
Bước 2:Tiến hành gọi Webservices vừa tạo ra.
PHP:
Create Project (ConversionClient) Name : ConversionClient

PHP:
Create Web service Client



PHP:
Create Java Application frmConversion.java

PHP:
package app;
import org.me.convert.*;
public class frmConversions extends javax.swing.JFrame {
/** Creates new form frmConversions */
ConversionService service; //gọi Services
Conversion ports; //tạo port để gọi
public frmConversions() {
initComponents();
service = new ConversionService();
ports = service.getConversionPort();
}
private void btnConvertActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
float value = Float.valueOf(txtValue.getText());
String type = cboType.getSelectedItem().toString().trim();
float result;
if (type.equals("Celcius to Franenheit")) {
result = ports.celsiusToFarenheit(value); //gọi Method của Services
lblResult.setText(value + " Celcius =" + result + " Franenheit"); //kết quả trả về
} else {
result = ports.farenheitToCelsius(value);
lblResult.setText(value + " Franenheit=" + result + " Celcius ");
}
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new frmConversions().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JButton btnConvert;
private javax.swing.JComboBox cboType;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel lblResult;
private javax.swing.JTextField txtValue;
// End of variables declaration
}
