Mat Williams

Ranch Hand
+ Follow
since Jul 20, 2005
Merit badge: grant badges
For More
Cows and Likes
Total received
In last 30 days
Total given
Total received
Received in last 30 days
Total given
Given in last 30 days
Forums and Threads
Scavenger Hunt
expand Ranch Hand Scavenger Hunt
expand Greenhorn Scavenger Hunt

Recent posts by Mat Williams

Thanks for that Michael,

I think there are enough experienced developers and enough doc on JEE, ORM, etc for that to not be a large issue.

I guess that reading between the lines it sounds like the book will be helpful, as I guess from what you have said that it goes into depth on Seam and assumes that people will know most of the surrounding concepts.

Cool thanks

I think Management has put a copy on order

Hi Michael and Thomas,

How timely, your book is. I recently started on a new project that is using Seam and Facelets with EJB3 and Hibernate.

My question is what is the target audience of your book?

The project I am on has a range of skill levels, from new Graduates to people with 10+ years exp. I know that there are a few people on the team that have been awaiting your book, what can we expect to be covered? and will there be something for all of us - from new beginners throught to Senior Architects?

Hi ya,

Well I found the answer
It turns out that the code was getting a handle on one of the jar files that the application uses (avet-db.jar) and was trying to unzip the jar onto the remote machine, this was a simple way of deploying the resources in the jar file onto the remote machine.

This was possible in Java Web Start 1.5.x as the application was able to look inside the Java Web Start cache and get a file handle to a jar file in the cache. In Java Web Start 1.6.x this is no longer possible the file handle is invalid as you are no longer allowed to look inside the cache and get a file handle to a jar there.

So the answer - well the code will need to change so that the application gets the ClassLoader and uses that to get all the resources in the jar file, and then persist them to disk (ClassLoader.getResource() then save it to disk). I am also looking at the possibility of having only 1 file in the jar file that is zipped - I then persist the file to disk and unzip it there - this is a bit messy but it means that if more resources are added to the jar file later properties do not need to be changed so that the resources are obtained from the jar (using ClassLoader.getResource()) and then saved to disk.

17 years ago
Option C and D are identical
I was assuming (maybe incorrectly) that one was just a typo.

Hi Saurabh,

Yes it is possible that a session is not invalicdated if the container is shutdown and then restarted. I have done this on Tomcat, infact if memory serves correctly its the standard behaviour on tomcat.

For example create a servlet/jsp that saves something into the HttpSession. then another that displays what was saved in the HttpSession

Point your browser at the first one, wait till the page comes up, then shut the server down, and restart it. Then point your browser at the second page.

I have done this with tomcat and had what was save into the session displayed on the page. The simple reason is that Sessions are serialised to the file system and then reloaded from the filesystem on a new request. Tomcat does not clear its cache of session data when restarted so its still there.


I do not believe that ejbPassivate is called prior to ejbRemove, or after it is called. I have not found anything in the spec that says ejbPassivate is called either, for any type of bean (Stateful, Statless, Entity, CMT, BMT, BMP, or CMP). I dont think it would make sense for the container to invoke ejbPassivate before or after ejbRemove either - certainly not after!! So I think the answer should be False (B).

Please feel free to correct me if I am wrong, as I am not an expert on EJB.


firstly look at the scea books page.

Personally I used
* Sun Certified Enterprise Architect for J2EE Technology by Mark Cade and Simon Roberts
* UML Distilled Third Edition by Martin Fowler
* Design Patterns by Erich Gamma, et al
* Core J2EE Patterns: Best Practices and Design Strategies, Second Edition by Deepak Alur et al

Out of the 4 I used the Cade and Roberts book a lot, the Martin Fowler book a bit, the Erich Gamma et al book a bit and the Deepak Alur et al book hardly at all.

I already had a copy of the last 3 books, if I did not then I probably would not have bought them just for the exam.

As an aside Core J2EE Patterns book is available electronically from the sun Web Site here just click on a pattern for the description of the pattern.

Hi Jeff,

The Cade book goes on to tell you (in brief) what you need to know for the exam about each of the patterens, so if you have a general understanding of most of the patterns then I think you should be ok working with the Cade book and searching the web, or asking here, where you have questions or are unsure.


Neither of the sites show that I have taken part III exam or submitted the Part II assignment either and it has been over a week - so I guess nothing is shown till your assignment is marked

Hope that happens for you soon.

Hi Meenakshi,

I know you asked Jeff and not me but here is my 2c's worth.
I agree with Jeff about Whizlabs - I used them on another certification and found so many bugs in their questions that they sent me several revised question databases, so I have refused to use them since

I found the exams helpful but only as a guide. I was getting passing scores on most of the mocks I did, but I did fail some.

When I sat for the real exam I was quite sick and feeling awful but I still managed to get in the mid 80's for it. So I don't think the mocks are more than a rough guide at best.

My rule of thumb is to find a book that the exam authors have at least helped to write, and go with the questions in the book. If you are understaing what the book says and getting the questions right, or at least understaning why you got them wrong, then you are probably on par to pass the exam.

Some advice that Bert Bates gave on another forum last year some time was to attempt to answer questions that others post on this forum. That will help you to understand where you are at in comparison with others. Also people often post a lot just before doing the exam, trying to understand the last of the things that puzzel them. You can use this to see the sorts of questions that people have had, and then see the scores they got when they did the exam, as most people usually post this too, this will give you a rough guide of where you are at.

Hope this helps,


Very good question. The id I used was the prometric id - the one I logged on with to download the exam, but then I am from Australia and that was the only choice I had. I suggest you send them an email asking for clarification, saying just what you have posted here to the forum. They should be able to tell you.

Hi ya,

Well done.

HI ya Jeff,

Well done - that is a great score

HI ya Piotr,

I think this an easy one personally.

The Abstract Factory according to the GOF book, is used to

Provide an interface for creating FAMILIES of related or dependent objects without specifying their concrete classes.

Where as the Factory Method

Define an interface for creating AN object, but let subclasses decide which class to instantiate. Factory Method lets a class defer instantiation to subclasses.

So the question I ask you is this - when you call create on a home inteface are you creating a family of related objects or are you creating one object??

Think about it this way, are you creating a concrete implementation of an interface and then to get a concrete object that does something specific do you need to call createConcreteObject which is responsible for creating a concrete object that matches to the environment you are running on?? The GOF book UML diagram shows the interface which has the CreateScrollBar and CreateWindow methods - these methods create the ScrollBar and Window that is appropriate for the environment. To me this does not match what is happening at all.

What happens is that you call create on the Home Interface and that creates ONE concrete implementation (EJBObject) regardless of what platform or server or whatever, you will not get one object created if you are running on windows and a different one if you are running on Solaris.

The Factory Method creates ONE concrete subclass, it does not provide a concrete subclass that just offers a way to create the family of objects appropriate for the platform, by forcing the developer to call createObjectX and createObjectY.

So for my money the pattern is quite obviously the Factory Method.