ejb@glassfish.java.net

Re: war not see ejb jar...

From: Kenneth Saks <Kenneth.Saks_at_Sun.COM>
Date: Thu, 02 Oct 2008 17:12:16 -0400

On Oct 1, 2008, at 1:05 PM, Eve Pokua wrote:

>
>
> Kenneth,
>
> Great to know. Does this also mean that EB would be package within
> Application client
> as well as Web packages?

Hi Eve,

Our plans for client execution of enterprise beans are more geared
towards plain Java SE clients rather than Java EE Application Client
components. We're defining an Embeddable API that will make unit
testing much easier by allowing a plain SE client to bootstrap a
lightweight EJB container for the purpose of executing one or more
beans. Here's a blog post on that :

http://blogs.sun.com/kensaks/entry/embeddable_ejb

  --ken

>
>
> eve
>
>
>
>
>
> Date: Wed, 1 Oct 2008 12:08:42 -0400
> From: Kenneth.Saks_at_Sun.COM
> To: ejb_at_glassfish.dev.java.net
> Subject: Re: war not see ejb jar...
>
>
>
> On Sep 30, 2008, at 2:05 PM, Martin Renaud wrote:
>
> Hi,
>
> i really don't understand what you mean. I've separated the client
> (.war) and ejbs (ejb .jar). Java EE seems to be very tricky...
>
> Yes, many people feel that way about the the requirement that EJB
> components be packaged in their own ejb-jar. We're fixing it
> in EJB 3.1 so that enterprise beans can be packaged directly in
> a .war.
>
>
>
> an example would be appreate. I joined a zip file which contain the
> exercice. This project have been created whit MyEclipse.You're going
> to find 3 directories: BeanProject which englobe the Web and the
> EJB. BeanProjectWeb include JSP/servlet/etc and BeanProjectEJB
> include ejb objects. Both are deployed to a Glassfish server. In
> debug mode, only directories are deployed (directory
> BeanProjectWeb.war and directory BeanProjectEJB.jar (these are not
> file)). I whish to not create a .ear file. Because eventually,
> other .war files are going to use that BeanProjectEJB.jar file.
>
> I don't know the details of the support for expanded directory
> deployment. If that's the root of your problem I would suggest
> posting to the glassfish forum :
> http://forums.java.net/jive/forum.jspa?forumID=56&start=0.
>
>
>
> thank.
>
> Martin Renaud
>
>
>
> On Tue, Sep 30, 2008 at 1:40 PM, Kenneth Saks <Kenneth.Saks_at_sun.com>
> wrote:
> Hi Martin,
>
> There are two typical ways this is done. The first is simply to
> repackage the interface within the .war. The second is to refactor
> the EJB client view classes and put them in a .jar file that is
> placed within a directory named "lib" at the top-level of
> the .ear. Any .jars in that directory are required to be visible
> to all modules in the .ear.
>
>
> On Sep 30, 2008, at 1:34 PM, Martin Renaud wrote:
>
> Hi Experts,
>
> I've created a bean project which use a JSP/Servlet client and EJB
> objects (sessionBean). Both are on the same server. From them, i've
> deployed on the server a war and a ejb-jar... but i'm having a
> problem. The war file seems unable to see the ejb-jar once deployed.
> In fact the only way to get ejb-jar visible from the war is to add
> it into the classpath of the war file. But i didn't see any example
> or tutorial who talk about adding the ejb-jar into the classpath of
> the war.
> I'm using annotation according to this example:https://glassfish.dev.java.net/javaee5/ejb/examples/Sful.html
> .
>
> I'm using MyEclipse 6.x and a Glassfish 2.x server.
>
>
> ClientSessionRemote.java
> Code:
>
> package com.imagem;
>
> import javax.ejb.Remote;
>
> @Remote
> public interface ClientSessionRemote {
>
> public java.lang.String SayHello();
>
> }
>
>
> ClientSession.java
> Code:
>
> package com.imagem;
>
> import javax.ejb.Stateful;
>
> @Stateful
> public class ClientSession implements ClientSessionRemote {
>
> public String SayHello(){
> String msg="Hello! I am Session Bean";
> System.out.println(msg);
> return msg;
> }
>
> }
>
>
> Controller.java (servlet)
> Code:
>
> public class Controller extends HttpServlet {
>
> @EJB
> private ClientSessionRemote m_testClientSessionBean;
>
> ...some code...
>
> public void doGet(HttpServletRequest request, HttpServletResponse
> response) throws ServletException, IOException {
>
> PrintWriter out;
> response.setContentType("text/html");
> String title = "EJB Example";
> out = response.getWriter();
>
> out.println("<html>");
> out.println("<head>");
> out.println("<title>Hello World Servlet!</title>");
> out.println("</head>");
> out.println("<body>");
> out.println("<p align=\"center\"><font size=\"4\" color=
> \"#000080\">Servlet Calling Session Bean</font></p>");
>
> try{
>
> //ClientSessionRemote client = (ClientSessionRemote) new
> InitialContext().lookup("java:comp/env/StatefulClientSession");
> //ClientSessionRemote client = (ClientSessionRemote) new
> InitialContext().lookup(ClientSessionRemote.class.getName());
>
> //out.println("<p align=\"center\"> Message from Session
> Bean is: <b>" + client.SayHello() + "</b></p>");
> //System.out.println("Message = " + client.SayHello());
>
> out.println("<p align=\"center\"> Message from Session Bean
> is: <b>" + m_testClientSessionBean.SayHello() + "</b></p>");
> }
> catch(Exception CreateException){
> CreateException.printStackTrace();
> }
>
> out.println("<p align=\"center\"><a href=
> \"javascript:history.back()\">Go to Home</a></p>");
> out.println("</body>");
> out.println("</html>");
> out.close();
>
>
>
>
> }
>
> ...some code...
>
> }
>
>
> What else do i need to do?? any help would be appreciate!!!
>
> thks
>
> Martin Renaud
>
>
>
>
>
> --
> Martin Renaud
>
> <
> BeanProject
> .zip
> >---------------------------------------------------------------------
> To unsubscribe, e-mail: ejb-unsubscribe_at_glassfish.dev.java.net
> For additional commands, e-mail: ejb-help_at_glassfish.dev.java.net
>
>
> Try Facebook in Windows Live Messenger! Try it Now!