Is it possible to get a job anywhere in Java?
Yes it's definitely possible to get a job almost anywhere with Java. However this is completely subjective. Where I live (Australia) there are many skilled people (inc immigrants from india) who work in the Java field, salary is dependent usually on the company, industry, experience and location.
How do you get your dream job?
I think you have realised now that achieving an BCA/MCA is not enough to walk straight into your $100k dream job with a nice office. Contrary to what universities would like students to believe.
Set realistic goals
Realising that you need to start at the bottom is the first step of reaching any goal.
Create a realistic career progressions
The second step is experience, this is sometimes a paradox. Companies want people with experience, yet they
don't give opportunities to gain said experience. Find a company which is offering Graduate to Junior level postions, you will not receive much pay for these postions. However the experience
gained is worth its weight in gold.
With your current level of qualifications I would expect that you should be able to quickly adapt to learning the soft skills necessary for a Mid Level postion within 2 years (optimistically).
The worst thing you can do is settle for a position that doesn't challenge you.
Companies love to keep a hold of smart employees, the problem is that they either don't recognise or reward gain in knowledge or skill. If the company that you work for can no longer challenge you
in your current position and they don't have any higher level positions available. Then you should consider jumping ship to a job which you will be challenged (ie from a Junior to Mid Level developer).
Be totally honest with your new employer if you have no current skills in a particular framework. But you have demonstrated at your previous job that you have learnt new technologies or
Universities can't teach you real world Software Engineering/Craftsmanship
Unfortunately software engineering and software craftsmanship is something that universities can't teach you properly. It is also something that you have to actively learn yourself by experience. An apt
analagy would be: I can write you a letter telling you how to ride a bicycle, and draw a diagram. However this does not teach you how to ride.
I've written a couple of blog posts about these two topics.
The software craftsmanship post is a work in progress, I will be posting updates on how to apply these techniques. Until then you should use it as a stepping stone to research the links provided on each of the "Tools" presented to fill in gaps in your knowledge.
Where do you currently stand on the competency matrix?
Here is a fantastic resource for evaluating your current skills (regardless of language or framework). Challenging yourself to improve your ranking on this competency matrix will help you become more competent and well rounded developer.