Z końmi, grubasami i armatą, które rozmieszczone są w kolejnych wagonach ciągniętych przez pojazd się przy okazji dzisiejszego wpisu nie spotkamy, ale... z parą jak najbardziej.
Przedstawię jak najprościej wygenerować aplikację CRUD z wykorzystaniem szkieletu aplikacyjnego JBoss Seam. Posłużę się środowiskiem Eclipse 3.4.2 z zainstalowaną wtyczką JBoss Tools 3.0. Użyję też bazy MySql 5.0 oraz serwera aplikacji Java EE JBoss 5.0.1.GA. Niezbędna okaże się również instalacja Seama. Użyję wersji 2.1.1.GA.
Jeżeli potrzebujesz aplikacji webowej, aby zaliczyć projekt, świetnie trafiłeś. Wystarczy przerwa między zajęciami, ale ad rem...
Instaluję Eclipse, bazę MySQL, JBossa 5.0.1.GA oraz wtyczkę JBoss Tools oraz Pudelek Eclipse Plugin.
W Eclipsie, konfiguruje środowisko uruchomieniowe JBossa. W tym celu otwieram menu preferencji
Window -> Preferences
i znajduję tam zakładkę
Server / Runtime Environments
na której klikam przycisk
Add...
Odszukuję pozycję
JBoss 5.0 Runtime
która znajduje się w katalogu
JBoss Comunity
Klikam
Next
wskazuję katalog z zainstalowanym JBossem
i klikam
Finish
Pora stworzyć nowy projekt. Z menu
File -> New -> Project...
wybieram
Seam Web Project
Nadaję nazwę projektowi (radzę zacząć małą literą):
seamApplication
Z menu
Configuration
wybieram
Dynamic Web Project With Seam 2.1 (technology preview)
Klikam kilka razy
Next >
i zatrzymuję się na zakładce, na której muszę wskazać środowisko uruchomieniowe Seam
Seam Runtume.
W tej samej zakładce wybieram rodzaj aplikacji jako
ear.
Definiuję środowisko uruchomieniowe Seama, klikając
Add...
i wskazuję katalog, w którym zainstalowałem Seama 2.1.1.GA.
Na tej samej zakładce konfiguruję połączenie z bazą danych. Pobieram sterownik JDBC MySQL Connector.
W sekcji Database wybieram typ bazy danych jako
MySQL (InnoDB)
oraz tworze nowy profil połączenia z bazą. Jako
Profile Type
wybieram
MySQL
Klikam
Next >
i definiuję nowy sterownik
Na zakładce
Jar List
wskazuję plik jar który znajdował się w paczce z pobranym sterownikiem JDBC.
Podaję nazwę bazy danych oraz nazwę użytkownika i hasło do bazy
Od razu tworzę taką bazę wydając polecenie w konsoli mysql
create database test default character set utf8;
a w Eclipsie klikam
Finish.
Komputer chwilkę pomyśli, po czym stworzy 4 projekty:
seamApplication z aplikacją webową
seamApplication-ear z deskryptorem aplikacji EAR
seamApplication-ejb z aplikacją EJB
seamApplication-test z testami aplikacji
Startuję serwer aby sprawdzić, czy aplikacja się uruchamia.
Po wpisaniu w przeglądarkę adresu:
http://localhost:8080/seamApplication/
moim oczom ukazuje się aplikacja:
So far, so good...
Jako, że mamy do stworzenia aplikację CRUD, trzeba by stworzyć encję, którą będziemy mogli edytować. Tworzę więc klasę
pl.matt.model.Employee:
package pl.matt.model;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import org.hibernate.validator.Email;
import org.hibernate.validator.Length;
import org.hibernate.validator.Max;
import org.hibernate.validator.Min;
import org.hibernate.validator.NotNull;
@Entity
@Table(name="employees")
public class Employee {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private int id;
@Length(max=128)
@NotNull
private String name;
@Column(length=128)
@NotNull
private String surname;
@NotNull
@Column(length=128)
private String email;
@Min(0)
@Max(130)
@NotNull
private int age;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSurname() {
return surname;
}
public void setSurname(String surname) {
this.surname = surname;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
Następnie generuję do niej interfejs użytkownika. Klikam prawym przyciskiem myszy na projekcie, wybieram
New... -> Other
i
Seam Generate Entities
Zaznaczam opcję
Use existing entities
i klikam
Finish
Restartuję JBossa i aplikacja gotowa.
Pojawiła się lista pracowników, ich wyszukiwarka oraz strony umożliwiające ich dodawanie, kasowania oraz aktualizację.
Do tego działa logowanie użytkowników, ajaxowa walidacja adresu email, wieku i wymagalności pól.
Żyć nie umierać.
Kod źródłowy przykładu zamieszczam tutaj, tu, tu i tu.