12 Replies Latest reply on Mar 13, 2002 9:47 AM by adrian.brock

    3.0 beta doesn't recognize ejbCreate

    lepekhine

      I have build 3.0 beta from cvs:
      JBoss (MX MicroKernel) [3.0.0beta2 Date:200203111606]
      After deployment the ear, which worked fine in 3.0 alpha
      I've got complains about the absence of ejb[Post]Create methods in my CMP EJB.
      When I changed
      if (name.startsWith("create"))
      to
      if (name.equals("create"))
      in org.jboss.ejb.plugins.CMPPersistenceManager's
      method createMethodCache() it begins to work.
      I think this is a bug.

      Then my web.xml wont be deployed with complains about
      EMPTY content. It works fine in 3.0 alpha.
      web.xml was generated by webdoclet and contains the
      string
      true
      When I deleted this string web.xml was deployed.
      Is it a bug? Acording to servlet spec my web.xml
      is valid.
      Yours Alexander

        • 1. Re: 3.0 beta doesn't recognize ejbCreate
          pazu

          true tells JBoss that your application can be distributed over a cluster configuration. AFAIK, this is not working correctly for now. use distributable="false" on your webdoclet task to mark the application as non-distributable and thus be able to deploy it.

          • 2. Re: 3.0 beta doesn't recognize ejbCreate

            Doh!

            That's my fault.

            In CMP 2.0
            createMethodCache gets mapped to ejbCreateMethodCache
            in the bean.

            I think you are using CMP1.1, the code should be

            if (isEJB11 == false && name.startsWith("create"))

            I'll fix it.

            You might want to rename the method if you are planning
            to migrate to EJB2.0 at some point in the future.

            Regards,
            Adrian


            > I have build 3.0 beta from cvs:
            > JBoss (MX MicroKernel) [3.0.0beta2
            > Date:200203111606]
            > After deployment the ear, which worked fine in 3.0
            > alpha
            > I've got complains about the absence of
            > ejb[Post]Create methods in my CMP EJB.
            > When I changed
            > if (name.startsWith("create"))
            > to
            > if (name.equals("create"))
            > in org.jboss.ejb.plugins.CMPPersistenceManager's
            > method createMethodCache() it begins to work.
            > I think this is a bug.

            • 3. Re: 3.0 beta doesn't recognize ejbCreate

              :-) createMethodCache isn't your name, but you have
              something similar.

              Regards,
              Adrian

              • 4. Re: 3.0 beta doesn't recognize ejbCreate
                lepekhine

                I just use CMP 2.0, so your improvement probably will not work.

                And another feature: when JBoss is restarted, it deploy my ears before Hypersonic service started, so I have to remove all my ears, start JBoss and then deploy ears again.

                • 5. Re: 3.0 beta doesn't recognize ejbCreate

                  If you are using CMP2.0, you can no longer use
                  create as a business method. You have to
                  change its name. This is in the spec, but was missing
                  from JBoss until recently.

                  The ear problem is a known issue. I reported it to the
                  bug list on Sunday. Your workaround is a temporary
                  solution.

                  Regards,
                  Adrian

                  • 6. Re: 3.0 beta doesn't recognize ejbCreate
                    lepekhine

                    Dear Adrian!
                    I don't use create() as a business method.
                    It is my local home interface method.
                    As I understand from EJB 2.0 spec we can use
                    it along with others create methods.
                    See the example in chapter 6.3.1.
                    They defined there two methods:
                    create() and createLargeCart().
                    So I still can't understand why this piece of code
                    doesn't work. Do you mean we can't use create() at all?

                    Now another question.
                    Would you mind telling me what shoud I do
                    for using log4j-1.2 in helper classes of jsp?
                    It seems to me that classloader mix two versions
                    of log4j. My version is in the WEB-INF/lib
                    and JBoss version in the JBOSS-HOME/lib/ext.
                    My program complains to wrong signature for some
                    method in log4j.
                    This often occurs when two versions are used
                    simutaneously.
                    Yours Alexander

                    • 7. Re: 3.0 beta doesn't recognize ejbCreate

                      Re: log4j
                      You might want to read this link.

                      http://main.jboss.org/thread.jsp?forum=61&thread=6648

                      Regards,
                      Adrian

                      • 8. Re: 3.0 beta doesn't recognize ejbCreate

                        Re: create

                        I don't understand this. If your method is create()
                        what is the difference between
                        startsWith("create") and equals("create")

                        Perhaps you can post your jar or a cutdown version with
                        the same problem?

                        I have examples of this working in the testsuite.

                        Regards,
                        Adrian

                        • 9. Re: 3.0 beta doesn't recognize ejbCreate
                          lepekhine

                          Hi, Adrian! I send you category.ear and all sources
                          to it. Much of them are in Russia, sorry.
                          This ear can not be deployed with "startsWith"
                          and can be deployed with "equals". Wonderful.
                          I think this is may be due to ejb inheritance.
                          I have successfully deployed "cmpcustomer" Sun example
                          with create() method. No errors was found.
                          Don't know what to think about it.
                          Yours Alexander

                          • 10. Re: 3.0 beta doesn't recognize ejbCreate

                            Hi,

                            In your interfaces/CategoryLocalHome you have a
                            createRoot() method.

                            Regards,
                            Adrian

                            • 11. Re: 3.0 beta doesn't recognize ejbCreate
                              lepekhine

                              Yes. And this method doesn't have corresponding ejbPostCreate in EJB. I am sorry for trouble you.
                              I found this error when deploy ear to Weblogic. It turns out to be much more conversational then JBoss.
                              Sorry, again.
                              Yours, Alexander.

                              • 12. Re: 3.0 beta doesn't recognize ejbCreate

                                Criticism accepted.

                                Actually the verifier for EJB2.0 is missing at
                                the moment :-(

                                Regards,
                                Adrian