geronimo-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Aaron Mulder <ammul...@alumni.princeton.edu>
Subject Re: Reference question
Date Wed, 25 Jan 2006 00:06:07 GMT
If you put the WAR and EJB JAR in an EAR it should certainly solve the
class loading problem immediately.  I think part of the pain here has
been trying to get a standalone WAR working with a standalone EJB JAR.

Aaron

On 1/24/06, Stein Kråbøl <steinkr@tellussoft.com> wrote:
> Can somebody please send me a simple workable ear (+ source) with a simple
> web app that I can deploy on my server. In this way I will understand that
> Geronimo is a great server and that I can recommend it to my customers.
> Without that I am afraid my last week has been useless, working almost day
> and night trying to understand how Geronimo works (I've learned a lot
> though...). I am an 6 years java developer and I just happend to have this
> time available this days, and I have 24 hours left before I must decide
> which server I am going to use. Help me out... lets grow together...
> It's over midnight here in Norway. I'll stay awake for a little while...
>
> Stein Kråbøl
>
> Stein Kråbøl writes:
>
> > The only place I can see this entry (my-webapp.1.0) is in the web.xml
> > displayname:
> > <?xml version="1.0" encoding="UTR-8"?>
> > <web-app xmlns="http://java.sun.com/xml/ns/j2ee"
> >        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> >        xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
> >        http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
> >        version="2.4">
> >
> > <display-name>my-webapp-1.0</display-name>
> >   <ejb-ref>
> >       <ejb-ref-name>ejb/BCalcREJB</ejb-ref-name>
> >       <ejb-ref-type>Session</ejb-ref-type>
> >       <home>com.tellussoft.Test.BonusCalculatorHome</home>
> >       <remote>com.tellussoft.Test.BonusCalculator</remote>
> >   </ejb-ref>
> > --------------------------------------------------
> > Doing deploy with geronimo-web.xml on the
> > commandline:C:\web\geronimo-1.0\bin>deploy --user system --password
> > manager deploy c:\projec
> > t\my-webapp\target\my-webapp-1.0.war
> > c:\project\my-webapp\src\main\webapp\WEB-IN
> > F\geronimo-web.xml
> >   Error: Unable to distribute my-webapp-1.0.war: Could not find an EJB
> >   for reference ejb/BCalcREJB to a remote session  bean that has the
> >   home interface com.tellussoft.Test.BonusCalculatorHome and the
> >   remote interface com.tellussoft.Test.BonusCalculator
> > --------------------------------------------------
> > I beleave the EJB is not deploy properly.
> >
> > Stein
> >
> > Aaron Mulder writes:
> >
> >> I'm confused -- the geronimo-web.xml that you show has a configId of
> >> "MyWebApp-1.0" but the error is for a module called "my-webapp-1.0"...
> >>  Are you sure you're using the geronimo-web.xml that you think you
> >> are?  Have you tried passing both the WAR file and the
> >> geronimo-web.xml on the command line to the deploy tool?
> >>
> >> I wouldn't rule out the possibility that we have a problem in the
> >> class loader we using while validating EJB references, but so far I
> >> don't think I'm convinced that the problem isn't with the plans and
> >> deployment and so on.
> >>
> >> Thanks,
> >>     Aaron
> >>
> >> On 1/24/06, Stein Kråbøl <steinkr@tellussoft.com> wrote:
> >>> The error now:
> >>>    Error: Unable to distribute my-webapp-1.0.war: Error processing
> >>>    'remote' element for EJB Reference 'ejb/BCalcREJB' for module
> >>>    'my-webapp-1.0': Remote interface class not found:
> >>>    com.tellussoft.Test.BonusCalculator
> >>>  --------------------------------------------------
> >>> web.xml:
> >>> ?xml version="1.0" encoding="UTR-8"?>
> >>> <web-app xmlns="http://java.sun.com/xml/ns/j2ee"
> >>>         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> >>>         xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
> >>>         http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
> >>>         version="2.4">
> >>> still with:
> >>>    <ejb-ref>
> >>>        <ejb-ref-name>ejb/BCalcREJB</ejb-ref-name>
> >>>        <ejb-ref-type>Session</ejb-ref-type>
> >>>        <home>com.tellussoft.Test.BonusCalculatorHome</home>
> >>>        <remote>com.tellussoft.Test.BonusCalculator</remote>
> >>>    </ejb-ref>
> >>>  --------------------------------------------------
> >>> geronimo-web.xml:
> >>> ?xml version="1.0" encoding="UTR-8"?>
> >>> <web-app xmlns="http://geronimo.apache.org/xml/ns/j2ee/web-1.0"
> >>>         xmlns:naming="http://geronimo.apache.org/xml/ns/naming-1.0"
> >>>         configId="MyWebApp-1.0"
> >>>         parentId="test-ejb-1.0.1">
> >>>  --------------------------------------------------
> >>> openejb-jar.xml:
> >>>
> >>> <?xml version="1.0" encoding="UTF-8"?>
> >>> <openejb-jar
> >>>  xmlns="http://www.openejb.org/xml/ns/openejb-jar-2.0"
> >>>  xmlns:naming="http://geronimo.apache.org/xml/ns/naming-1.0"
> >>>  xmlns:security="http://geronimo.apache.org/xml/ns/security-1.1"
> >>>  xmlns:sys="http://geronimo.apache.org/xml/ns/deployment-1.0"
> >>>  xmlns:pkgen="http://www.openejb.org/xml/ns/pkgen-2.0"
> >>>  inverseClassloading="false"
> >>>  configId="test-ejb-1.0.1">
> >>>  --------------------------------------------------
> >>> ejb-jar.xml:
> >>> <?xml version="1.0" encoding="UTR-8"?>
> >>> <ejb-jar xmlns="http://java.sun.com/xml/ns/j2ee"
> >>>    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> >>>    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
> >>>    http://java.sun.com/xml/ns/j2ee/ejb-jar_2_1.xsd"
> >>>    version="2.1">
> >>>  --------------------------------------------------
> >>> What about my other question: files in geronimo after deploing?
> >>> Stein
> >>>
> >>> Aaron Mulder writes:
> >>>
> >>> > Your ejb-jar.xml should not have a configId or parentId -- those are
> >>> > Geronimo tags.  So that's causing the error below, and removing that
> >>> > stuff from ejb-jar.xml should fix it.
> >>> >
> >>> > Your openejb-jar.xml correctly has configId="test-ejb-1.0.1" -- that's
> >>> good.
> >>> >
> >>> > However, your geronimo-web.xml has parentid="test-ebj-1.0.1" -- as
> >>> > David pointed out this should be parentId not parentid, and also the
> >>> > value should be test-ejb-1.0.1 (to match the configId in
> >>> > openejb-jar.xml) and not test-ebj-1.0.1 (which does not match
> >>> > anything!).
> >>> >
> >>> > Thanks,
> >>> >    Aaron
> >>> >
> >>> > On 1/24/06, Stein Kråbøl <steinkr@tellussoft.com> wrote:
> >>> >> I see what you mean, but this is now the errormessage:
> >>> >>
> >>> >>   Invalid deployment descriptor: [error: cvc-complex-type.3.2.1:
> >>> >>   Attribute not allowed (no wildcards allowed): configId in element
> >>> >>   web-app@http://java.sun.com/xml/ns/j2ee, error:
> >>> >>   cvc-complex-type.3.2.1: Attribute not allowed (no wildcards
> >>> >>   allowed): parentId in element
> >>> >>   web-app@http://java.sun.com/xml/ns/j2ee]
> >>> >>  --------------------------------------------------
> >>> >> Is ther someting with the deployment of the EJB when it's not
> >>> possible
> >>> >> to se the classes in Geronimo filesystem?
> >>> >>
> >>> >> Stein
> >>> >>
> >>> >>
> >>> >> David Jencks writes:
> >>> >>
> >>> >> > According to our deployer the actual plan you are deploying
has a
> >>> typo,
> >>> >> > parentid (lower case i) instead of parentId (upper case I)
> >>> >> >
> >>> >> > hope this helps
> >>> >> > david jencks
> >>> >> >
> >>> >> > On Jan 24, 2006, at 8:52 PM, Stein Kråbøl wrote:
> >>> >> >
> >>> >> >> Thank you for your response!
> >>> >> >>
> >>> >> >> The error now is:
> >>> >> >> C:\web\geronimo-1.0\bin>deploy --user system --password
manager
> >>> deploy
> >>> >> >> c:\project\my-webapp\target\my-webapp-1.0.war
> >>> >> >>   Error: Unable to distribute my-webapp-1.0.war: Unable
to load
> >>> first
> >>> >> >>   parent of configuration MyWebApp-1.0
> >>> >> >>       No configuration with id: test-ebj-1.0.1
> >>> >> >> ------------------------------------------------------
> >>> >> >> Header of web.xml:
> >>> >> >> web-app xmlns="http://java.sun.com/xml/ns/j2ee"
> >>> >> >>        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> >>> >> >>        xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
> >>> >> >>        http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
> >>> >> >>        version="2.4">
> >>> >> >> When I put configId and parentID here I got error when
deployd:
> >>> >> >>  Error: Unable to distribute my-webapp-1.0.war: xml problem
> >>> >> >>      Invalid deployment descriptor: [error:
> >>> cvc-complex-type.3.2.1:
> >>> >> >>  Attribute not allowed (no wildcards allowed): parentid]
> >>> >> >>  Descriptor: <xml-fragment configId="MyWebApp-1.0"
> >>> >> >>  parentid="test-ebj-1.0.1"
> >>> >> >>  xmlns:naming="http://geronimo.apache.org/xml/ns/naming-1.0"
> >>> >> >>  xmlns:jet="http://geronimo.apache.org/xml/ns/j2ee/web/jetty-1.0">
> >>> >> >> It is here I have:
> >>> >> >>   <ejb-ref>
> >>> >> >>       <ejb-ref-name>ejb/BCalcREJB</ejb-ref-name>
> >>> >> >>       <ejb-ref-type>Session</ejb-ref-type>
> >>> >> >>       <home>com.tellussoft.Test.BonusCalculatorHome</home>
> >>> >> >>       <remote>com.tellussoft.Test.BonusCalculator</remote>
> >>> >> >>   </ejb-ref>
> >>> >> >> --------------------------------------------------------
> >>> >> >> Header of geronimo.xml:
> >>> >> >> <web-app xmlns="http://geronimo.apache.org/xml/ns/j2ee/web-1.0"
> >>> >> >>        xmlns:naming="http://geronimo.apache.org/xml/ns/naming-1.0"
> >>> >> >>        configId="MyWebApp-1.0"
> >>> >> >>        parentId="test-ebj-1.0.1">
> >>> >> >> (so this cased the error abowe...)
> >>> >> >> --------------------------------------------------------
> >>> >> >> ejb-jar.xml:
> >>> >> >> <?xml version="1.0" encoding="UTR-8"?>
> >>> >> >> <ejb-jar xmlns="http://java.sun.com/xml/ns/j2ee"
> >>> >> >>   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> >>> >> >>   xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
> >>> >> >>   http://java.sun.com/xml/ns/j2ee/ejb-jar_2_1.xsd"
> >>> >> >>   version="2.1"
> >>> >> >>   configId="test-ejb-1.0.1">
> >>> >> >> --------------------------------------------------------
> >>> >> >> openejb.xml:
> >>> >> >> <openejb-jar
> >>> >> >> xmlns="http://www.openejb.org/xml/ns/openejb-jar-2.0"
> >>> >> >> xmlns:naming="http://geronimo.apache.org/xml/ns/naming-1.0"
> >>> >> >> xmlns:security="http://geronimo.apache.org/xml/ns/security-1.1"
> >>> >> >> xmlns:sys="http://geronimo.apache.org/xml/ns/deployment-1.0"
> >>> >> >> xmlns:pkgen="http://www.openejb.org/xml/ns/pkgen-2.0"
> >>> >> >> inverseClassloading="false"
> >>> >> >> configId="test-ejb-1.0.1">
> >>> >> >> --------------------------------------------------------
> >>> >> >> Stein
> >>> >> >> Give me more options please! I'm in a hurry...
> >>> >> >>
> >>> >> >> Aaron Mulder writes:
> >>> >> >>> In your geronimo-web.xml (the one with the EJB reference)
add a
> >>> >> >>> parentId attribute to the web-app element right after
the
> >>> configId. The
> >>> >> >>> parentId of the WAR file should be set to be the 
same as the
> >>> >> >>> configId of the EJB JAR file.  That will add the EJB
JAR classes
> >>> to
> >>> >> >>> the class path of the WAR so it should be able to
access the EJB
> >>> >> >>> classes. Thanks,
> >>> >> >>>     Aaron On 1/24/06, Stein Kråbøl <steinkr@tellussoft.com>
> >>> wrote:
> >>> >> >>>> The thing is (as posted earlier) that when I put
> >>> >> >>>>    <ejb-ref>
> >>> >> >>>>        <ejb-ref-name>ejb/BCalcREJB</ejb-ref-name>
> >>> >> >>>>        <ejb-ref-type>Session</ejb-ref-type>
> >>> >> >>>>        <home>com.tellussoft.Test.BonusCalculatorHome</home>
> >>> >> >>>>        <remote>com.tellussoft.Test.BonusCalculator</remote>
> >>> >> >>>>    </ejb-ref>
> >>> >> >>>> I get an error when deploying:
> >>> >> >>>>    Error: Unable to distribute my-webapp-1.0.war:
Error
> >>> processing
> >>> >> >>>>    'remote' element for EJB Reference 'ejb/BCalcREJB'
for module
> >>> >> >>>>    'MyWebApp-1.0': Remote interface class not
found:
> >>> >> >>>>    com.tellussoft.Test.BonusCalculator
> >>> >> >>>>  ------------------------------------
> >>> >> >>>> In my openejb-jar:
> >>> >> >>>> <enterprise-beans>
> >>> >> >>>>  <session>
> >>> >> >>>>     <ejb-name>BCalcREJB</ejb-name>
> >>> >> >>>>     <jndi-name>ejb/BCalcREJB</jndi-name>
> >>> >> >>>> </session>
> >>> >> >>>> </enterprise-beans>
> >>> >> >>>> Now, I beleave the class files in the ejb.jar
fil should be
> >>> found in
> >>> >> >>>> the file structure of Geronimo, but they are not
there.
> >>> >> >>>>  ------------------------------------
> >>> >> >>>> In config-store/index.properties:
> >>> >> >>>> ...
> >>> >> >>>> geronimo/client-security/1.0/car=14
> >>> >> >>>> test-ejb-1.0.1=59
> >>> >> >>>> geronimo/geronimo-gbean-deployer/1.0/car=17
> >>> >> >>>> ...
> >>> >> >>>> and in
> >>> >> >>>> configstore/59
> >>> >> >>>>    ejb                    6kb
> >>> >> >>>>    META-INF/config.ser    18kb
> >>> >> >>>>  ------------------------------------
> >>> >> >>>> Structure of test-ejb-1.0.1.jar:
> >>> >> >>>> META-INF/openejb-jar.xml
> >>> >> >>>> META-INF/ejb-jar.xml
> >>> >> >>>> META-INF/MANIFEST.MF
> >>> >> >>>> com/tellussoft/Test/LocalBonusCalculatorHome.class
> >>> >> >>>> com/tellussoft/Test/LocalBonusCalculator.class
> >>> >> >>>> com/tellussoft/Test/BonusCalculatorHome.class
> >>> >> >>>> com/tellussoft/Test/LocalBonusCalculatorBean.class
> >>> >> >>>> com/tellussoft/Test/BonusCalculator.class
> >>> >> >>>>  -------------------------------------
> >>> >> >>>> What am I doing wrong?
> >>> >> >>>> I'm a little desperate case I have to get this
to work by
> >>> tomorrow.
> >>> >> >>>> Stein
> >>> >> >>>> Aaron Mulder writes:
> >>> >> >>>> > You need an EJB Reference in your WAR (in
Geronimo, a web app
> >>> can't
> >>> >> >>>> > look up an EJB in JNDI unless there's an
EJB Reference in the
> >>> >> >>>> > web.xml).  It's easiest if your EJB JAR and
WAR are deployed
> >>> as  part
> >>> >> >>>> > of an EAR so you can use an <ejb-link>
in the EJB Reference in
> >>> >> >>>> web.xml
> >>> >> >>>> > and then you don't need any Geronimo-specific
information.  If
> >>>  the
> >>> >> >>>> EJB
> >>> >> >>>> > JAR and WAR are deployed separately, you'll
probably need a
> >>> >> >>>> > geronimo-web.xml that maps the EJB reference
in web.xml to the
> >>> >> >>>> correct
> >>> >> >>>> > EJB in the EJB JAR.  See, for example,
> >>> >> >>>> >
> >>> >> >>>> > http://chariotsolutions.com/geronimo/web-plan.html#id2591236
> >>> >> >>>> > using the geronimo-web.xml syntax described
at
> >>> >> >>>> >
> >>> http://chariotsolutions.com/geronimo/web-plan.html#web-plan-refs
> >>> >> >>>> >
> >>> >> >>>> > Anyway, once your EJB reference is set up,
if the EJB
> >>> reference  name
> >>> >> >>>> > is ejb/BCalcREJB then you'll look it up in
JNDI at
> >>> >> >>>> > java:comp/env/ejb/BCalcREJB (generally, it's
java:comp/env/
> >>> [name of
> >>> >> >>>> > EJB reference])
> >>> >> >>>> >
> >>> >> >>>> > Thanks,
> >>> >> >>>> >     Aaron
> >>> >> >>>> >
> >>> >> >>>> > On 1/24/06, Stein Kråbøl <steinkr@tellussoft.com>
wrote:
> >>> >> >>>> >> Help!
> >>> >> >>>> >> I have deployed my first EJB modul without
error.
> >>> >> >>>> >>
> >>> >> >>>> >> ejb-jar.xml:
> >>> >> >>>> >>
> >>> >> >>>> >> <?xml version="1.0" encoding="UTF-8"?>
> >>> >> >>>> >> <!DOCTYPE ejb-jar PUBLIC
> >>> >> >>>> >>                 '-//Sun Microsystems,
Inc.//DTD Enterprise
> >>> >> >>>> JavaBeans 2.0//EN'
> >>> >> >>>> >>                 'http://java.sun.com/dtd/ejb-jar_2_0.dtd'>
> >>> >> >>>> >> <ejb-jar>
> >>> >> >>>> >>  <enterprise-beans>
> >>> >> >>>> >>      <session>
> >>> >> >>>> >>          <display-name>Stateless
Session Bean with Remote
> >>> >> >>>> >> Interfaces</display-name>
> >>> >> >>>> >>          <ejb-name>BCalcREJB</ejb-name>
> >>> >> >>>> >>          <home>com.tellussoft.Test.BonusCalculatorHome</home>
> >>> >> >>>> >>          <remote>com.tellussoft.Test.BonusCalculator</remote>
> >>> >> >>>> >> <local-home>com.tellussoft.Test.LocalBonusCalculatorHome</
> >>> >> >>>> local-home>
> >>> >> >>>> >>
> >>> <local>com.tellussoft.Test.LocalBonusCalculator</local>
> >>> >> >>>> >>          <ejb-class>com.tellussoft.Test.BonusCalculatorBean</
> >>> >> >>>> ejb-class>
> >>> >> >>>> >>          <session-type>Stateless</session-type>
> >>> >> >>>> >>          <transaction-type>Container</transaction-type>
> >>> >> >>>> >>      </session>
> >>> >> >>>> >>  </enterprise-beans>
> >>> >> >>>> >> </ejb-jar>
> >>> >> >>>> >>
> >>> >> >>>> >> I'm trying to connect to it with a servlet
in an standalone
> >>> war.
> >>> >> >>>> >> What is the correct syntax for the lookup
method?
> >>> >> >>>> >>                         Object homeObject
= context.lookup
> >>> >> >>>> ("java:comp/ejb/BCalcREJB");
> >>> >> >>>> >> I have tried all the variants I can think
of!
> >>> >> >>>> >> BCalcREJB
> >>> >> >>>> >> java:comp/env/ejb/BCalcREJB
> >>> >> >>>> >> java:comp/env/BCalcREJB
> >>> >> >>>> >> ejb/BCalcREJB
> >>> >> >>>> >> Is there any other method to verify JNDI
names tied to a
> >>> EJBs?
> >>> >> >>>> >>
> >>> >> >>>> >> Stein
> >>> >> >>>> >>
> >>> >> >>>> >>
> >>> >> >>>>
> >>> >> >
> >>> >>
> >>> >>
> >>>
> >>>
> >
>
>

Mime
View raw message