Wednesday, February 10, 2010
Sunday, January 17, 2010
Step By Step Create Simple Calculator using Eclipse Galileo & EJB 3.0
this is the tutorial available in pdf book : Step By Step Create Simple Calculator using Eclipse Galileo & EJB 3.0
We will use in this tutorial:
we will create an application in the server side based on EJB 3.0, and an author web client application
- Server Application Using EJB:
- Configuration JBoss Server:
The second step is to configuarate the Jboss server in Eclipse Galieo IDE:
in Eclipse Menu choose Window--> Preferences, then choose
Server --> Runtime Environments.
Server --> Runtime Environments.
click add Button then choose JBoss--> JBoss v5.0 and check" Create a new local server"
In Application Server Directory select the JBoss Server directory,
not the Content of the directory! :
not the Content of the directory! :
you added the Jboss Server to Eclipse , now let's add the Jboss Server
to this section:
to this section:
select the Server section clik and choose new->Server then next next
until finish
until finish
the server appears like this in Server section:
Now we will verify that Jdk is the default installed JRE's :
select Window-->Preferences in this windows select Java--> Installed JREs
then if jdk is not checked check it ,or add it if it doesn't exist:
then if jdk is not checked check it ,or add it if it doesn't exist:
we finished configuration step let's move now to programming an
EJB Application.
EJB Application.
- EJB Application:
in this application we will create :
Remote Interface calc,
Class calcImpl which implements calc.
select File-->New--> Other.. then create EJB Project :
specify the name of the project for example SimpleCalculator , and choose the JBoss v5 in target field:
now we created a simple ejb project ,we will create source code in ejbModule directory :
we finished creating EJB project, create the interface calc with package first :
add this code to your calc interface:
package ejb;
import javax.ejb.Local;
@Local
public interface calc {
public float sum(float a,float b);
public float mult(float a,float b);
public float minus(float a,float b);
public float div(float a,float b);
}
next step is to create calcImpl with the same way dont forgit to specify the same package (ejb), and add this code to class:
package ejb; import javax.ejb.Stateless;
@Stateless(mappedName="Firstcalc")
public class calcImpl implements calc {
public float sum(float a,float b)
{ return a+b; }
public float mult(float a,float b)
{ return a*b; }
public float minus(float a,float b)
{ return a-b; }
public float div(float a,float b) {
try {
return a/b;
}catch(Exception e){
System.out.println("Error:devision by 0!!");
return 0;
}
}
}
@Stateless(mappedName="Firstcalc")
public class calcImpl implements calc {
public float sum(float a,float b)
{ return a+b; }
public float mult(float a,float b)
{ return a*b; }
public float minus(float a,float b)
{ return a-b; }
public float div(float a,float b) {
try {
return a/b;
}catch(Exception e){
System.out.println("Error:devision by 0!!");
return 0;
}
}
}
now we finished EJB Application let's move to The Web Client Application.
HttpSession session=request.getSession(true);
RequestDispatcher rd=this.getServletContext().getRequestDispatcher("/index.jsp");
float a=Float.parseFloat(request.getParameter("n1"));
float b=Float.parseFloat(request.getParameter("n2"));
char oper=request.getParameter("oper").charAt(0);
float result=0;
try {
Context ctx=new InitialContext();
// call the calcImpl class of the SimpleCalculator EJB with the mappedName
calc cl=(calc) ctx.lookup("Firstcalc");
switch(oper)
{
case '+': result=cl.sum(a, b); break;
case '-': result =cl.minus(a, b); break;
case '*': result =cl.mult(a, b); break;
- Web Client Application:
select File-->New-->Dynamic Web Project , it's name: SimpleCalculatorWeb
add a jsp page called index to the WebContent directory :
add this form to index.jsp:
<h2> <b> Hello World To The Simple Calculator </b> </h2>
<% float a=2,b=1;
if (request.getAttribute("a")!=null)
a=Float.parseFloat(request.getAttribute("a").toString());
if( request.getAttribute("b")!=null)
b=Float.parseFloat(request.getAttribute("b").toString()); %>
<form method="post" action="calcServlet">
<b>Number 1:</b><input type='text' name='n1' value="<%=a%>" /> <br/>
<b>Number 2:</b><input type='text' name='n2' value="<%=b%>" /> <br/>
<u><b>Options:</b></u> <br/>
<ul>
<li><b>+</b><input type='radio' name="oper" value='+' checked /></li>
<li><b> -</b><input type='radio' name="oper" value='-' /></li>
<li><b>*</b><input type='radio' name="oper" value='*' /></li>
<li> <b>/</b><input type='radio' name="oper" value='/' /></li> </ul>
<b>-------------------------------------------</b> <br/>
<input type="submit" value="Executer" /> </form>
<font color='blue'><b>Result is: </b> <%=session.getAttribute("result")%> </font> <br/>
<font color='red' >Error: <%=session.getAttribute("error")%></font>
<h2> <b> Hello World To The Simple Calculator </b> </h2>
<% float a=2,b=1;
if (request.getAttribute("a")!=null)
a=Float.parseFloat(request.getAttribute("a").toString());
if( request.getAttribute("b")!=null)
b=Float.parseFloat(request.getAttribute("b").toString()); %>
<form method="post" action="calcServlet">
<b>Number 1:</b><input type='text' name='n1' value="<%=a%>" /> <br/>
<b>Number 2:</b><input type='text' name='n2' value="<%=b%>" /> <br/>
<u><b>Options:</b></u> <br/>
<ul>
<li><b>+</b><input type='radio' name="oper" value='+' checked /></li>
<li><b> -</b><input type='radio' name="oper" value='-' /></li>
<li><b>*</b><input type='radio' name="oper" value='*' /></li>
<li> <b>/</b><input type='radio' name="oper" value='/' /></li> </ul>
<b>-------------------------------------------</b> <br/>
<input type="submit" value="Executer" /> </form>
<font color='blue'><b>Result is: </b> <%=session.getAttribute("result")%> </font> <br/>
<font color='red' >Error: <%=session.getAttribute("error")%></font>
now create a calServlet with web package in the JavaResources :src directory :
servlet is created like this:
add those import to your servlet class:
import java.io.IOException;
import javax.naming.*;
import javax.servlet.*;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.naming.*;
import javax.servlet.*;
import javax.servlet.*;
import javax.servlet.http.*;
copy this code to the doGet function :
HttpSession session=request.getSession(true);
RequestDispatcher rd=this.getServletContext().getRequestDispatcher("/index.jsp");
float a=Float.parseFloat(request.getParameter("n1"));
float b=Float.parseFloat(request.getParameter("n2"));
char oper=request.getParameter("oper").charAt(0);
float result=0;
try {
Context ctx=new InitialContext();
// call the calcImpl class of the SimpleCalculator EJB with the mappedName
calc cl=(calc) ctx.lookup("Firstcalc");
switch(oper)
{
case '+': result=cl.sum(a, b); break;
case '-': result =cl.minus(a, b); break;
case '*': result =cl.mult(a, b); break;
case '/': result =cl.div(a, b); break;
}
session.setAttribute("result",result); request.setAttribute("a", a); request.setAttribute("b", b);
}catch(NamingException e){
session.setAttribute("erreur: ",e.getMessage());
}
rd.forward(request,response);
}
session.setAttribute("result",result); request.setAttribute("a", a); request.setAttribute("b", b);
}catch(NamingException e){
session.setAttribute("erreur: ",e.getMessage());
}
rd.forward(request,response);
to let the the web client application to know the calc interface we must configure the build path of the project in adding the first project SimpleCalculator :
in the project section click add and select SimpleCalculator:
now add this import to your servlet class :
import ejb.calc;
let's deploy the two project ,firstly play the JBoss Server in Server section:
deploying the EJB Project :
with the same way deploy SimpleCalculatorWeb:
if you have any remarks or questions dont hesitate to post it.
Subscribe to:
Posts (Atom)