eu estava terminando o exemplo aqui que estava fazendo e vi que o paulo1911 ja tinha postado um... (puxa vida estamos inclusive acostumados a usar calculadora hein...rs)
bom de qualquer jeito segue abaixo... depois do almoço eu vejo se descubro como que eu permito download aqui no forum... testado no jboss 6.
a interface local pra esse caso nem precisava...
package pacote;
import javax.ejb.Remote;
@Remote
public interface CalculadoraRemote {
public int soma(int a, int b);
public int multiplicacao(int a, int b);
public int divisao(int a, int b);
public int subtracao(int a, int b);
}
package pacote;
import javax.ejb.Local;
@Local
public interface CalculadoraLocal {
public int soma(int a, int b);
public int multiplicacao(int a, int b);
public int divisao(int a, int b);
public int subtracao(int a, int b);
}
package pacote;
import javax.ejb.Stateless;
@Stateless(mappedName="calculadoraStateless")
public class Calculadora implements CalculadoraRemote, CalculadoraLocal {
public Calculadora() {
}
@Override
public int soma(int a, int b) {
return a + b;
}
@Override
public int multiplicacao(int a, int b) {
return a * b;
}
@Override
public int divisao(int a, int b) {
return a * b;
}
@Override
public int subtracao(int a, int b) {
return a / b;
}
}
nos clientes eu usei servlets uma exemplificando usar a injeção via anotação e outra via jndi como no seu exemplo, caso seu não seja no servidor lembre-se do jar como nosso amigo disse:
package pacote.web;
import java.io.IOException;
import java.io.PrintWriter;
import javax.ejb.EJB;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import pacote.CalculadoraRemote;
/**
* Servlet implementation class TesteAnotacao
*/
public class TesteAnotacao extends HttpServlet {
private static final long serialVersionUID = 1L;
@EJB
private CalculadoraRemote calculadora;
public TesteAnotacao() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
processRequest(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
processRequest(request, response);
}
private void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
PrintWriter pw = response.getWriter();
pw.print(calculadora.soma(2, 3));
pw.flush();
pw.close();
}
}
package pacote.web;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Properties;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import pacote.CalculadoraRemote;
/**
* Servlet implementation class TesteIC
*/
public class TesteIC extends HttpServlet {
private static final long serialVersionUID = 1L;
public TesteIC() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
processRequest(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
processRequest(request, response);
}
private void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
PrintWriter pw = response.getWriter();
try {
InitialContext ctx = getInitialContext();
CalculadoraRemote calculadora = getCalculadora(ctx);
pw.print(calculadora.soma(2, 3));
} catch (NamingException e) {
pw.print("deu erro <br />");
e.printStackTrace(pw);
}
pw.flush();
pw.close();
}
private InitialContext getInitialContext() throws NamingException{
Properties env = new Properties();
env.put(Context.SECURITY_PRINCIPAL, "guest");
env.put(Context.SECURITY_CREDENTIALS, "guest");
env.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");
env.put(Context.PROVIDER_URL, "jnp://localhost:1099");
return new InitialContext(env);
}
private CalculadoraRemote getCalculadora(InitialContext ctx) throws NamingException{
return (CalculadoraRemote) ctx.lookup("calculadoraStateless");
}
}
depois de volta eu vejo se coloco os projetos do eclipse aqui...