I have a kind of "HelloWorld" EJB here, but I must be screwing something up and am 
going
nuts trying to figure out what.  

I'm trying to stuff everything into a war file and go to
http://localhost/servlet/FarmServlet and see the message. 

Here is everything I have to make this go.  Can anyone tell me what I'm doing wrong?  
Or,
can you tell me that you can get this to work (so I must have something configured
wrong)?  

The problem I'm having is that the orion server seems to deploy everything okay, but 
when
I try to pull up the servlet, it's as if the servlet isn't even there.

Here are the relevant files to creating what I have:

--------- build.bat

@echo off

echo ************************************** compiling EJB ....
javac eieio\*.java

echo ************************************** creating EJB jar ....
          
del critters.jar                  
jar -cf critters.jar META-INF\ejb-jar.xml eieio\*.class

echo ************************************** compiling servlet ....

javac FarmServlet.java

echo ************************************** creating war ....
          
del farm.war                  
jar -cf farm.war WEB-INF\web.xml FarmServlet.class

echo ************************************** creating ear ....
          
del oldmcdonald.ear
jar -cf oldmcdonald.ear META-INF\application.xml critters.jar farm.war

echo ************************************** copying ear to orion ....

copy oldmcdonald.ear \orion\applications

echo ************************************** done.


--------- CowRemote.java

package eieio ;

import javax.ejb.* ;
import java.rmi.* ;

public interface CowRemote extends EJBObject
{
    public String getText() throws RemoteException;
}

--------- CowHome.java

package eieio ;

import javax.ejb.* ;
import java.rmi.* ;

public interface CowHome extends EJBHome
{
    public CowRemote create() throws CreateException, RemoteException;
}

--------- CowBean.java

package eieio ;

import java.util.*;
import javax.ejb.*;

public class CowBean implements SessionBean 
{
    
    public String getText()
    {
        return "Mooooooo ...";
    }

    public void setSessionContext( SessionContext ctx ){}
    public void ejbCreate() throws CreateException{}
    public void ejbRemove(){}
    public void ejbActivate(){}
    public void ejbPassivate(){}

}


--------- ejb-jar.xml

<?xml version="1.0"?>

<!DOCTYPE ejb-jar PUBLIC '-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 1.1//EN'
'http://java.sun.com/j2ee/dtds/ejb-jar_1_1.dtd'>

<ejb-jar>
    <display-name>AnimalBeans</display-name>
    <enterprise-beans>
        <session>
            <ejb-name>CowEJB</ejb-name>
            <home>eieio.CowHome</home>
            <remote>eieio.CowRemote</remote>
            <ejb-class>eieio.CowBean</ejb-class>
            <session-type>Stateless</session-type>
            <transaction-type>Container</transaction-type>
        </session>
    </enterprise-beans>
</ejb-jar>


--------- FarmServlet.java

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.naming.*;
import eieio.* ;

public class FarmServlet extends HttpServlet 
{

    public void doGet( HttpServletRequest req , HttpServletResponse resp )
    {
        try
        {
            PrintWriter out = resp.getWriter();
            try 
            {
                resp.setContentType("text/html");
                InitialContext context = new InitialContext();
                CowHome home = (CowHome)context.lookup( "CowEJB" );
                CowRemote cow = home.create();
                out.println( cow.getText() );
            }
            catch( Exception e ) 
            {
                out.println( "damn! " + e );
            }
            finally
            {
                out.close();
            }
        }
        catch ( Exception e )
        {
            System.out.println( "could not get writer! " + e );
        }
        
    }
}



--------- web.xml


<web-app>

  <display-name>Old McDonald's Farm</display-name> 
  
  <servlet>
    <servlet-name>FarmServlet</servlet-name> 
    <description>Servlet that calls the CowBean</description> 
    <servlet-class>FarmServlet</servlet-class> 
  </servlet>
  
  <ejb-ref>
    <ejb-ref-name>CowEJB</ejb-ref-name> 
    <ejb-ref-type>Session</ejb-ref-type> 
    <home>eieio.CowHome</home> 
    <remote>eieio.CowRemote</remote> 
  </ejb-ref>
  
  <servlet-mapping>
    <servlet-name>FarmServlet</servlet-name> 
    <url-pattern>/</url-pattern> 
  </servlet-mapping>
  
</web-app>
  



--------- application.xml

<application>

  <display-name>The Old McDonald Farm Application</display-name> 
  
  <module>
    <ejb>critters.jar</ejb> 
  </module>

  <module>
    <web>
      <web-uri>farm.war</web-uri> 
      <context-root>/</context-root> 
    </web>
  </module>

</application>


------------

I think the build.bat file makes it clear where everything goes.  

Any ideas?




__________________________________________________
Do You Yahoo!?
Get email at your own domain with Yahoo! Mail. 
http://personal.mail.yahoo.com/

Reply via email to