Win a copy of Java Database Connections & Transactions (e-book only) this week in the JDBC forum!
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Devaka Cooray
  • Knute Snortum
  • Paul Clapham
  • Tim Cooke
Sheriffs:
  • Liutauras Vilda
  • Jeanne Boyarsky
  • Bear Bibeault
Saloon Keepers:
  • Tim Moores
  • Stephan van Hulst
  • Ron McLeod
  • Piet Souris
  • Frits Walraven
Bartenders:
  • Ganesh Patekar
  • Tim Holloway
  • salvin francis

Is a CreateException in the method-declaration necessary?  RSS feed

 
Ranch Hand
Posts: 109
Eclipse IDE Firefox Browser Java
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi all,

Paul Sanghera wrotes in his book, that it is not necessary to declare a CreateException in the throws-clause of ejbCreate() and ejbPostCreate(), if you do not explicitly throw a CreateException in your code.

Hence I have removed all CreateExceptions from ejbCreate() and ejbPostCreate(). After that, I have deployed my beans again in JBoss, and now I will get the following warnings:

WARN [verifier] EJB spec violation:
Method : public RecipePosPK ejbCreate(int, RecipePos)
Section: 10.6.4
Warning: The throws clause must define the javax.ejb.CreateException.

Must I declare javax.ejb.CreateException in the throws-clause of ejbCreate() and ejbPostCreate(), even if I do not throw this exception?

Regards,
Oliver
 
Bartender
Posts: 2968
6
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
EJB 2.0 Spec:


Chapter 7 Session Bean Component Contract
7.10.3 ejbCreate<METHOD> methods
The throws clause may define arbitrary application exceptions, possibly including the
javax.ejb.CreateException.



Chapter 10 Entity Bean Component Contract for Container-Managed Persistence
10.6.4 ejbCreate<METHOD> methods
The throws clause must define the javax.ejb.CreateException. The throws clause may define arbitrary application specific exceptions.



Chapter 12 Entity Bean Component Contract for Bean-Managed Persistence
12.2.3 ejbCreate<METHOD> methods
The throws clause may define arbitrary application specific exceptions, including the
javax.ejb.CreateException.



So the CMP Entity Bean ejbCreate and ejbPostCreate have to specify the CreateException in the throws clause.
Session Bean and BMP Entity Beans may specifiy it.
 
Oliver Rensen
Ranch Hand
Posts: 109
Eclipse IDE Firefox Browser Java
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Peer, thanks again for your great help.
 
Peer Reynders
Bartender
Posts: 2968
6
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Interestingly I also just yesterday ran across this little tidbit in Monson-Haefel's Enterprise JavaBeans 4e (p.78):


Although it's not required by the EJB specification, some J2EE application vendors insist that ejbCreate() throw a javax.ejb.CreateException - this is true of the J2EE 1.4 SDK. This has never been a requirement, but it's an issue that continues to crop up every time there is a new edition of the book.

 
Oliver Rensen
Ranch Hand
Posts: 109
Eclipse IDE Firefox Browser Java
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
That's good to know. I think, especially for my SCBCD-preparing, I should not rely on the behavior of JBoss.

Peer, with your excellent knowledge about EJB you should get a high-score in the exam!
 
Peer Reynders
Bartender
Posts: 2968
6
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
  • True, you cannot rely on any particular implementation. However in this particular case JBoss was correct. Did you notice that it actually cited the relevant section in the spec (10.6.4)?
  • Well, actually I'm still looking a lot of this stuff up - however I do usually find it easier to locate something in the spec and understand the spec once I've digested a study guide.

  •  
    Our first order of business must be this tiny ad:
    how do I do my own kindle-like thing - without amazon
    https://coderanch.com/t/711421/engineering/kindle-amazon
    • Post Reply Bookmark Topic Watch Topic
    • New Topic
    Boost this thread!