Re: JBoss 4, EJB 3.0 и простой пример
От: ekshibarov Россия  
Дата: 01.03.07 03:58
Оценка: 1 (1)
Здравствуйте, Pavel M., Вы писали:

PM>Беру станадартный пример из NetBeans 5.5, StatelessBean, на JBoss не работет, не происходит выполнение IoC бина. Пожалуйста, подкиньте простой пример, который точно работал на JBoss, чтобы попробовать, либо подскажите, какие настройки, кроме аннотаций нужно делать и чем могне подойти стандартный пример. На Java AS пример работает. Вот код.


В Jboss 4 в web приложениях не поддерживается аннотация @EJB, вам нужно искать компонент используя его глобальное JNDI имя. По умолчанию в JBOSS
для локальных интерфейсов назначается JNDI name EARNAME/EJBNAME/local и соответственно для удаленных EARNAME/EJBNAME/remote.

То есть вам нужно что то типа:




    private StatelessSession lookupStatelessSessionBean() {
        try {
            Context c = new InitialContext();
            return (StatelessSession) c.lookup("EARNAME/StatelessSessionBean/local");
        }
        catch(NamingException ne) {
            Logger.getLogger(getClass().getName()).log(Level.SEVERE,"exception caught" ,ne);
            throw new RuntimeException(ne);
        }
    }
Re[3]: JBoss 4, EJB 3.0 и простой пример
От: ekshibarov Россия  
Дата: 01.03.07 08:01
Оценка: 1 (1)
Здравствуйте, Pavel M., Вы писали:


PM>БОльшое спасибо! Обязательно попробую . А можете мне подсказать, ради интереса, почему так? И является ли это отклонением от стандарта?


Потому что jboss 4.x не есть полностью совместимый с java EE 5 сервер. Хоть в нем и есть поддержка EJB 3.0.
Можно об этом посмотреть на:
http://docs.jboss.org/ejb3/app-server/tutorial/ear/ear.html
в секции Lookup of EJBs.
JBoss 4, EJB 3.0 и простой пример
От: Pavel M. Россия  
Дата: 28.02.07 23:31
Оценка:
Беру станадартный пример из NetBeans 5.5, StatelessBean, на JBoss не работет, не происходит выполнение IoC бина. Пожалуйста, подкиньте простой пример, который точно работал на JBoss, чтобы попробовать, либо подскажите, какие настройки, кроме аннотаций нужно делать и чем могне подойти стандартный пример. На Java AS пример работает. Вот код.
Хелп



package enterprise.servlet_stateless_ejb;

public interface StatelessSession {

    public String sayHello(String name);

}


package enterprise.servlet_stateless_ejb;

import javax.ejb.Stateless;

@Stateless
public class StatelessSessionBean
    implements StatelessSession {

    public String sayHello(String name) {
        return "Hello, " + name + "!\n";
    }

}


package enterprise.servlet_stateless_war;

import java.io.*;

import javax.ejb.EJB;

import javax.servlet.*;
import javax.servlet.http.*;

import javax.naming.*;

import enterprise.servlet_stateless_ejb.*;

// Though it is perfectly fine to declare the dependency on the bean
// at the type level, it is not required for stateless session bean
// Hence the next two lines are commented and we rely on the
// container to inject the bean.
// @EJB(name="StatelessSession", beanInterface=StatelessSession.class)

public class Servlet2Stateless
    extends HttpServlet {

    // Using injection for Stateless session bean is still thread-safe since
    // the ejb container will route every request to different
    // bean instances. However, for Stateful session beans the
    // dependency on the bean must be declared at the type level

    @EJB
    private StatelessSession sless;

    public void service(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {

        resp.setContentType("text/html");
        PrintWriter out = resp.getWriter();

        try {

            out.println("<HTML> <HEAD> <TITLE> Servlet Output </TITLE> </HEAD> <BODY BGCOLOR=white>");
            out.println("<CENTER> <FONT size=+1> Servlet2Stateless:: Please enter your name </FONT> </CENTER> <p> ");
            out.println("<form method=\"POST\">");
            out.println("<TABLE>");
            out.println("<tr><td>Name: </td>");
            out.println("<td><input type=\"text\" name=\"name\"> </td>");
            out.println("</tr><tr><td></td>");
            out.println("<td><input type=\"submit\" name=\"sub\"> </td>");
            out.println("</tr>");
            out.println("</TABLE>");
            out.println("</form>");
            String val = req.getParameter("name");

            if ((val != null) && (val.trim().length() > 0)) {
                out
                        .println("<FONT size=+1 color=red> Greeting from StatelessSessionBean: </FONT> "
                                + sless.sayHello(val) + "<br>");
            }
            out.println("</BODY> </HTML> ");

        } catch (Exception ex) {
            ex.printStackTrace();
            System.out.println("webclient servlet test failed");
            throw new ServletException(ex);
        }
    }

}
--------------------------
less think — do more
Re[2]: JBoss 4, EJB 3.0 и простой пример
От: Pavel M. Россия  
Дата: 01.03.07 07:40
Оценка:
Здравствуйте, ekshibarov, Вы писали:

E>Здравствуйте, Pavel M., Вы писали:



E>


E>    private StatelessSession lookupStatelessSessionBean() {
E>        try {
E>            Context c = new InitialContext();
E>            return (StatelessSession) c.lookup("EARNAME/StatelessSessionBean/local");
E>        }
E>        catch(NamingException ne) {
E>            Logger.getLogger(getClass().getName()).log(Level.SEVERE,"exception caught" ,ne);
E>            throw new RuntimeException(ne);
E>        }
E>    }
E>



БОльшое спасибо! Обязательно попробую . А можете мне подсказать, ради интереса, почему так? И является ли это отклонением от стандарта?
--------------------------
less think — do more
Re[4]: JBoss 4, EJB 3.0 и простой пример
От: Pavel M. Россия  
Дата: 01.03.07 08:21
Оценка:
Здравствуйте, ekshibarov, Вы писали:

E>Здравствуйте, Pavel M., Вы писали:



PM>>БОльшое спасибо! Обязательно попробую . А можете мне подсказать, ради интереса, почему так? И является ли это отклонением от стандарта?


E>Потому что jboss 4.x не есть полностью совместимый с java EE 5 сервер. Хоть в нем и есть поддержка EJB 3.0.

E>Можно об этом посмотреть на:
E>http://docs.jboss.org/ejb3/app-server/tutorial/ear/ear.html
E>в секции Lookup of EJBs.

спасибо за оперативность, все понятно, будем пробовать!
--------------------------
less think — do more
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.