I've been using J2EE for about 6 weeks now. The idea seems great. The theory behind EJBs, while complex, is very powerful. But the reality has been disappointing. I've been using JBuilder 8.0 Enterprise to develop EJBs and JMS on WebLogic 7.0, working against an Oracle 9 database. This is supposed to be fun and easy right? The latest version of the top EJB server and top database, developed by the hot off the presses enterprise version of the top IDE. I like the fact that the EJB server handles threading, and pooling, and other overhead tasks for me. What I don't like is that it's a huge pain in the ass to debug!!! Configuring WebLogic is hard. Monitoring it isn't easy. it's hard to quickly an easily find things. For example, when I have to find a JMS queue, I have to click though 20-30 links on average until I find the queue I created. I can't do useful things like browse what's passed through the queue. When I encounter bugs, I either get no notification or indirect errors. Often the bugs I see are errors in the generated EJB or code. Maybe it's just that I'm not comfortable enough using the tools; maybe I'm not yet familiar enough thinking in an EJB mindset. Is this just me? Have other people gone through it? I'm finding the client work just so much easier and more straightforward.
I agree with you. Getting something deployed and running is actually harder than writing code. The nuances of app servers makes it worse. I am at present confronted with the daunting task of migrating a huge application from SilverStream(duh!) to WebLogic. I have been told the target app server will not remain WebLogic and therefore the migration strategy should accommodate "any" app server. There's one camp that suggests writing app server agnostic code so that you can migrate from one server to another without much pain. This is the utopia that can never be reached. The other camp suggests buying into an app server and not worrying about migration issues. This means you agree to be taken for a ride by the vendor, become a vendor-dependent solution provider and pay them big bucks for upgrades. The promise of "write once deploy anywhere" is still a long way from reality. With Sun advocating more "open ended" specifications, we will see vendors bundling super-charged J2EE extensions in their products. Although the new app server certification program from Sun is a step in the right direction to achieve app-server compatibility, migration will remain a nightmare for atleast another year. ....another frustrated soul.
Open Group Certified Distinguished IT Architect. Open Group Certified Master IT Architect. Sun Certified Architect (SCEA).
I am an administrator for WebSphere running on an IBM mainframe and within that there are nuances between WebSphere on distributed and mainframe. Currently I am running tests on our servers to see what they can and cannot do (don't ever believe the vendors) but I guess its a fun job all in its own. Write once run anywhere is not quite yet there, but this is a step in the right direction and that is a good thing.
Ajith, I've done ports between WebLogic and JBoss and back and you can do vendor agnostic programming if you make heavy use of property files, etc. You have to be very careful, especially where servlets are concerned (getRealPath comes to mind). Also, you have to be aware of the "super charged features" that vendor's offer. If you want to use these features, you often times have to put facades around them so that if you move to another server that doesn't have them, you're not hurt ... you just pay the price in performance. I don't think we'll ever reach that "Nirvana" because every company is out for themselves and trying to out do the others; Unfortunately, it befalls us to try to make things work together harmoniously. Regards, Paul
I don't find the app servers a pain, it's their deployment descriptors! Just started using XDoclet and I can thoroughly recommend it if you've not had a look. Basically it allows you to write the DD information as JavaDoc comments within your bean class. Also means you don't have to write home or remote interfaces too. Simon