- •Отчет по лабораторной работе «Мини-банк»
- •Инструкция для администратора
- •Запуск административной web-консоли GlassFish
- •Регистрация источника данных в jndi
- •MiniBankSession.Java
- •Add_account_post.Jsp
- •Add_money.Jsp
- •Add_money_post.Jsp
- •Index.Jsp
- •Logs.Jsp
- •Show_account.Jsp
- •Error.Jsp
- •Show_account_post.Jsp
- •Withdrawal_money.Jsp
- •Withdrawal_money_post.Jsp
- •Тестирование
Регистрация источника данных в jndi
В случае, если приложение использует БД, при переносе на другой компьютер
необходимо зарегистрировать соответствующий источник данных (Data Source) в JNDI. При использовании NetBeans эта операция осуществляется автоматически при создании Persistence Unit. Без NetBeans администрирование JNDI может быть выполнено с помощью web-консоли. Соответствующие записи находятся во вкладке Resources → JDBC.
В первую очередь необходимо создать пул соединений с БД (Connection Pool). В
соответствующем разделе выбираем New, далее вводим уникальное имя пула, Resource Type: javax.sql.DataSource, DataBase Vendor: JavaDB. В следующем окне необходимо в разделе Additional Properties ввести название БД (bank), имя сервера БД и порт (по умолчанию — localhost:1527), пользователя User (по умолчанию — APP, в нашем случае bank) и пароль Password (bank). Для того, чтобы при развертывании приложения автоматически создалась необходимая БД, следует добавить в свойства пула атрибут connectionAttributes со значением ;create=true.
После создания пула соединений необходимо создать источник данных во вкладке
JDBC Resources → New. Назначаем имя источника данных (JNDI Name), совпадающее с тем, которое использовалось при разработке приложения. Указываем созданный ранее пул соединений (Pool Name).
Развертывание приложения с помощью web-консоли
Выбрать вкладку Applications → Enterprise Applications, затем Deploy. Далее
необходимо указать EAR-файл приложения, отметить галочку Java Web Start.
Запуск корпоративного web-приложения EJB
Поскольку приложение с web-интерфейсом работает в стандартном тонком клиенте
(браузере), то для его функционирования нет необходимости устанавливать
дополнительное программное обеспечение. После развертывания приложения на сервере, ему назначается URL (например, http://localhost:8080/AddressBook- war).
Исходный код
MiniBank-ejb – модуль EJB:
Accounts.java
package bank;
import java.io.Serializable;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import javax.xml.bind.annotation.XmlRootElement;
@Entity
@Table(name = "ACCOUNTS")
@XmlRootElement
@NamedQueries({
@NamedQuery(name = "Accounts.findAll", query = "SELECT a FROM Accounts a"),
@NamedQuery(name = "Accounts.findById", query = "SELECT a FROM Accounts a WHERE a.id = :id"),
@NamedQuery(name = "Accounts.findByName", query = "SELECT a FROM Accounts a WHERE a.name = :name"),
@NamedQuery(name = "Accounts.findByAccount", query = "SELECT a FROM Accounts a WHERE a.account = :account")})
public class Accounts implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Basic(optional = false)
@NotNull
@GeneratedValue
@Column(name = "ID")
private Integer id;
@Basic(optional = false)
@NotNull
@Size(min = 1, max = 120)
@Column(name = "NAME")
private String name;
@Basic(optional = false)
@NotNull
@Column(name = "ACCOUNT")
private int account;
public Accounts() {
}
public Accounts(Integer id) {
this.id = id;
}
public Accounts(Integer id, String name, int account) {
this.id = id;
this.name = name;
this.account = account;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAccount() {
return account;
}
public void setAccount(int account) {
this.account = account;
}
@Override
public int hashCode() {
int hash = 0;
hash += (id != null ? id.hashCode() : 0);
return hash;
}
@Override
public boolean equals(Object object) {
if (!(object instanceof Accounts)) {
return false;
}
Accounts other = (Accounts) object;
if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) {
return false;
}
return true;
}
@Override
public String toString() {
return "bank.Accounts[ id=" + id + " ]";
}
}
