Business Interface
Create the bean interface and mark it either as @Remote, @Local or @WebService.
Remote Interface
import javax.ejb.Remote;
@Remote
public interface ProductRegistry {
double getPrice(int id);
void setPrice(int id, double price);
}
Local Interface
import javax.ejb.Local;
@Local
public interface ProductRegistry {
double getPrice(int id);
void setPrice(int id, double price);
}
Web service interface
import javax.jws.WebService;
@WebService
public interface ProductRegistry {
double getPrice(int id);
void setPrice(int id, double price);
}
Bean implementation class
Create a class which implements the business interface. Mark this class as singleton session bean using @Singleton annotation before the class signature.
package com.ibytecode.businesslogic;
import java.util.HashMap;
import java.util.Map;
import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
import javax.ejb.Singleton;
import com.ibytecode.business.ProductRegistry;
@Singleton
public class ProductRegistryBean implements ProductRegistry {
Map<Integer, Double> pdtRegistry;
@PostConstruct
void initialize()
{
pdtRegistry = new HashMap<Integer, Double>();
pdtRegistry.put(100, 5000.00);
pdtRegistry.put(101, 6000.00);
pdtRegistry.put(102, 7000.00);
pdtRegistry.put(103, 8000.00);
pdtRegistry.put(104, 9000.00);
}
public double getPrice(int id) {
return pdtRegistry.get(id);
}
public void setPrice(int id, double price) {
pdtRegistry.put(id, price);
}
@PreDestroy
void cleanup()
{
pdtRegistry = null;
}
}
