ejb@glassfish.java.net

Re: war not see ejb jar...

From: Kenneth Saks <Kenneth.Saks_at_Sun.COM>
Date: Wed, 01 Oct 2008 12:08:42 -0400

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