Inject Resource In Servlet : EJB Servlet « EJB3 « Java Tutorial






File: application.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE application PUBLIC "-//Sun Microsystems, Inc.//DTD J2EE Application
1.3//EN" "http://java.sun.com/dtd/application_1_3.dtd">
<application>
    <display-name>Hello Ear File</display-name>
    <!-- <module>
        <ejb>java2s.jar</ejb>
    </module> -->
    <module>
        <web>
            <web-uri>java2s.war</web-uri>
            <context-root>/webapp</context-root>
        </web>
    </module>
</application>

File: Customer.java

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

@Entity
@Table(name = "CUSTOMER_TABLE")
public class Customer implements java.io.Serializable {
  private int id;

  private String lastName;

  private String firstName;

  private Date timeCreated = new Date();

  @Id
  @GeneratedValue
  @Column(name = "CUST_ID")
  public int getId() {
    return id;
  }

  public void setId(int pk) {
    id = pk;
  }

  public String getLastName() {
    return lastName;
  }

  public void setLastName(String lastName) {
    this.lastName = lastName;
  }

  public String getFirstName() {
    return firstName;
  }

  public void setFirstName(String firstName) {
    this.firstName = firstName;
  }

  @Temporal(TemporalType.TIME)
  public Date getTimeCreated() {
    return timeCreated;
  }

  public void setTimeCreated(Date time) {
    timeCreated = time;
  }

}

File: HelloService.java

import javax.ejb.Local;

@Local
public interface HelloService {
    public void doAction();

}

File: HelloServiceBean.java

import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

@Stateless
public class HelloServiceBean implements HelloService {
  public void doAction(){


  }
}

File: MyServlet.java

import java.io.IOException;
import java.io.PrintWriter;

import javax.annotation.Resource;
import javax.ejb.EJB;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.transaction.NotSupportedException;
import javax.transaction.SystemException;
import javax.transaction.UserTransaction;

public class MyServlet extends HttpServlet {
  @EJB
  HelloService hello;

  @Resource
  UserTransaction tx;

  public void doGet(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
    response.setContentType("text/html");

    PrintWriter out = response.getWriter();
    out.println("<body>");
    out.println("<html>");
    out.println("<head><title>TITLE </title></head><body>");

    // try {

    // service = (HelloService) new
    // InitialContext().lookup("java:comp/env/ejb/HelloService");
    // service = (HelloService) new
    // InitialContext().lookup("HelloService/Local");
    // } catch (Exception e) {
    // throw new ServletException(e);
    // }

    hello = new HelloServiceBean();

    try {
      tx.begin();
      hello.doAction();
      tx.commit();
    } catch (Exception e) {
    }
    out.println("saved:");
    
    out.println("</body></html>");
  }

  public void doPost(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
    doGet(request, response);
  }

}
  Download:  EJB-InjectResourceInServlet.zip( 509 k)








27.2.EJB Servlet
27.2.1.Transaction In Servlet
27.2.2.Inject Resource In Servlet