1
Tạo WebService với Java và Eclipse
GV: Nguyễn Hữu Thể
1. Tạo class Java: HelloWorld.java (lưu trong Project thứ nhất, Ví dụ Project tên: WebService)
package nguyenhuuthe;
public class HelloWorld {
public String sayHello(String name){
return "Hello " + name;
}
}
Chú ý: phải tạo Web server với JRE Runtime + Apache Tomcat và khởi động Web server
trước khi tạo Web Service ở bước 2.
2. Chuyển class thành WebService (file WSDL)
Right click vào tên class HelloWorld.java, chọn Web Services/Create Web Service, xuất hiện hộp
thoại sau:
2
- Chọn các thông số cấu hình mặc định, Next, Next, Finish
- Xuất hiện file HelloWorld.wsdl trong thư mục WebContent/wsdl
3
3. Đăng ký WebService lên Service Registry
- Right click HelloWorld.wsdl, chọn Web Services/Generate Client
4
- Chọn lại Client project khác với project chứa class HelloWorld.java, ví dụ hình bên dưới chọn tên
project thứ 2 là WebServiceClient
5
- Nhấn Next, Finish
- Đến đây bạn đã đăng lý xong WebService lên Service Registry ở project thứ 2. Xuất hiện 5 class
mới như hình bên dưới.
6
4. Sử dụng WebService
- Tạo một class java hoặc 1 file JSP để gọi và sử dụng WebService
- Ví dụ: tạo class Test.java trong package client, trong package client phải import package chứa
các class đã được đăng ký, như hình bên dưới
- Run class, kết quả:
7
8
Tạo WebService truy vấn database
− Tạo database: db_news
− Tạo table: categories
CREATE TABLE IF NOT EXISTS `categories` (
`category_id` int(11) NOT NULL,
`category_name` varchar(50) NOT NULL,
PRIMARY KEY (`category_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
INSERT INTO `categories` (`category_id`, `category_name`) VALUES
(1, 'Văn hóa'),
(2, 'Kinh doanh'),
(3, 'Thể thao'),
(4, 'Công nghệ');
1. Tạo class Database.java
package nguyenhuuthe;
import java.sql.Connection;
import java.sql.DriverManager;
public class Database {
static final String url =
"jdbc:mysql://localhost:3306/db_news?useUnicode=true&characterEncoding=UTF-8";
static final String username = "root";
static final String password = "123456";
public static Connection conn(){
try{
Class.forName("com.mysql.jdbc.Driver");
Connection con =DriverManager.getConnection(url, username,
password);
return con;
}
catch (Exception e) {
return null;
}
}
}
- Tạo class ProcessData.java để viết các phương thức truy vấn dữ liệu
package nguyenhuuthe;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
9
import java.sql.Statement;
public class ProcessData {
public void insertCategories1(){
try {
Connection con = nguyenhuuthe.Database.conn();
Statement st = con.createStatement();
String sql = "insert into categories values(15, 'Công
nghệ')";
st.executeUpdate(sql);
} catch (SQLException e) {
e.printStackTrace();
}
}
public void insertCategories2(String sql){
try {
Connection con = Database.conn();
Statement st = con.createStatement();
st.executeUpdate(sql);
} catch (SQLException e) {
e.printStackTrace();
}
}
public void insertData(String sql){
try {
Connection con = Database.conn();
Statement st = con.createStatement();
st.executeUpdate(sql);
} catch (SQLException e) {
e.printStackTrace();
}
}
public void insertCategories(int id, String name){
try {
Connection con = Database.conn();
Statement st = con.createStatement();
String sql = "insert into categories values(" + id + ", '"
+ name + "')";
st.executeUpdate(sql);
} catch (SQLException e) {
e.printStackTrace();
}
}
}
2. Tạo WebService (cho class ProcessData.java, class Database.java không tạo WebService)
3. Đăng ký WebService
10
4. Sử dụng WebService
- Tạo class java hoặc file JSP để gọi các phương thức trên
- Tạo trang add_categories.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<html>
<body>
<form action="process_add_categories.jsp" method="post">
Nhập thông dữ liệu cho Categories <br>
Category ID: <input type=text name="id"><br>
Category name: <input type=text name="name"><br>
<input type=submit value="Thêm">
</form>
</body>
</html>
- Tạo trang process_add_categories.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="nguyenhuuthe.*" %>
<html>
<body>
<%
ProcessDataProxy in = new ProcessDataProxy();
in.setEndpoint("http://localhost:8080/WebService/services/ProcessData");
int id2 = Integer.parseInt(request.getParameter("id"));
String name2 = request.getParameter("name");
name2 = Database.toUTF8(name2);
in.insertCategories(id2, name2);
out.println("Đã thêm: " + name2);
%>
</body>
</html>
- Kiểm tra database và xem dòng kết quả.