Hi,

I'm having a hell of a time trying to get my head around the WebApp
configuration to get EJB tests to work correctly. I think my main problem is
that I don't understand the relationship between the weblogic.xml file and
the EJB. So here's my setup. If someone can pinpoint my problem, I'd be so
ever thankful!

META-INF/
META-INF/MANIFEST.MF
META-INF/weblogic-ejb-jar.xml <I'm not sure I need this>
META-INF/ejb-jar.xml <If I include this I get a NPE when starting WL>
WEB-INF/
WEB-INF/classes/<contains all my classes including the junit/home/remote/bean class>
WEB-INF/lib/
WEB-INF/lib/aspectjrt.jar
WEB-INF/lib/cactus-ant.jar
WEB-INF/lib/cactus.jar
WEB-INF/lib/crimson.jar
WEB-INF/lib/httpunit.jar
WEB-INF/lib/junit.jar
WEB-INF/lib/log4j.jar
WEB-INF/lib/mockobjects-core.jar
WEB-INF/lib/mockobjects-doc.jar
WEB-INF/lib/mockobjects-j2ee1.3.jar
WEB-INF/lib/mockobjects-jdk1.3.jar
WEB-INF/lib/xalan.jar
WEB-INF/lib/<some other jars specific to our project>
WEB-INF/weblogic.xml
WEB-INF/web.xml

in my web.xml I have the following:

<web-app>
        <display-name>
                handler
        </display-name>
        <description>
                bla bla bla
        </description>

<!-- Cactus configuration
Note: Do not place any XML comments in this Cactus configuration section
(Ant's filtered copy is used to activate this configuration when the test
web application is built)
-->
<!-- Begin Cactus Configuration -->
<servlet>
<servlet-name>ServletRedirector</servlet-name>
<servlet-class>org.apache.cactus.server.ServletTestRedirector</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>ServletRedirector</servlet-name>
<url-pattern>/ServletRedirector</url-pattern>
</servlet-mapping>

<ejb-ref>
  <ejb-ref-name>create_subscriber_profile</ejb-ref-name>
  <ejb-ref-type>Session</ejb-ref-type>
  <!-- these two classes are in the classes directory -->
  <home>ca.masq.fido.handler.HandlerHome</home>
  <remote>ca.masq.fido.handler.Handler</remote>
</ejb-ref>

<!-- End Cactus Configuration -->


</web-app>


In my weblogic.xml I have:

<!DOCTYPE weblogic-web-app PUBLIC "-//BEA Systems, Inc.//DTD Web Application 6.0//EN"
        "http://www.bea.com/servers/wls610/dtd/weblogic-web-jar.dtd";>

<weblogic-web-app>

     <description>
        Web app to test cactus
     </description>

     <weblogic-version/>

         <reference-descriptor>
                <ejb-reference-description>
                  <ejb-ref-name>create_subscriber_profile</ejb-ref-name>
                  <jndi-name>create_subscriber_profile</jndi-name>
                </ejb-reference-description>
         </reference-descriptor>


</weblogic-web-app>

In my ejb-jar.xml file, I have the following. If I put this in my META-INF directory, 
I get a
null pointer exception.

<?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>
        <enterprise-beans>
        
        <!-- CreateSubscriberHandler -->
                <session>
                        <ejb-name>createSubscriberHandler</ejb-name>
                        <home>ca.masq.fido.handler.HandlerHome</home>
                        <remote>ca.masq.fido.handler.Handler</remote>
                        
<ejb-class>ca.masq.fido.handler.registration.CreateSubscriberHandlerBean</ejb-class>
                        <session-type>Stateless</session-type>
                        <transaction-type>Container</transaction-type>                 
                                                                     
            <env-entry>
                                <description>EndUserManager Jndi Name</description>
                                
<env-entry-name>END_USER_MANAGER_JNDI_NAME</env-entry-name>
                                <env-entry-type>java.lang.String</env-entry-type>
                                
<env-entry-value>endusermanager.EndUserManagerHome</env-entry-value>
                        </env-entry>
                </session>

        </enterprise-beans>
        
        <assembly-descriptor>

                <container-transaction>
                        <method>
                                <ejb-name>createSubscriberHandler</ejb-name>
                                <method-intf>Remote</method-intf>
                                <method-name>*</method-name>
                        </method>
                        <trans-attribute>Supports</trans-attribute>
                </container-transaction>
    </assembly-descriptor>    

</ejb-jar>

in my weblogic-ejb-jar file, I have this:

<?xml version="1.0"?>
<!DOCTYPE weblogic-ejb-jar PUBLIC '-//BEA Systems, Inc.//DTD WebLogic 5.1.0 EJB//EN' 
'http://www.bea.com/servers/wls510/dtd/weblogic-ejb-jar.dtd'>
<weblogic-ejb-jar>

        <weblogic-enterprise-bean>
                <ejb-name>createSubscriberHandler</ejb-name>
                <caching-descriptor>
                        <max-beans-in-cache>10</max-beans-in-cache>
                </caching-descriptor>
                <jndi-name>create_subscriber_profile</jndi-name>
        </weblogic-enterprise-bean>     

</weblogic-ejb-jar>

ant in my setUp() I have:

  context = new InitialContext();
  home    = (HandlerHome) EjbUtil.lookupHome(Handler.class, 
"create_subscriber_profile", context);

which throws a NamingException.

Does anyone know what part of my setup is messed up?

Thanks,

L

-- 
Laurent Duperval <mailto:[EMAIL PROTECTED]>

BOWIE'S THEOREM
    If an experiment works, you must be using the wrong equipment.




--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to