برای رفرش کردن یک صفحه بصورت جزیی و یا کلی از پست آقای آشیش استفاده شود :

http://www.awasthiashish.com/2012/10/refresh-page-in-oracle-adf-by-java-code.html


 برای صدور دستورات DML سفارشی مثل insert,delete,select,update میتوان از متد createNativeQuery() و یا متد ترکیبی createNativeQuery().executeUpdate() استفاده کرد. ولی برای صدور دستورات DDL مثل create table , alter table باید از آبجکت javax.sql.Connection استفاده کنیم. (منبع)

با توجه به نوع implementation تکنولوژی JPA استفاده شده (eclipse link,top link) و همچنین با توجه به نحوه مدیریت آبجکت EntityManager که واسط بین برنامه و دیتابیس می باشد نحوه دسترسی به آبجکت javax.sql.Connection متفاوت می باشد.

آبجکت EntityManager , یا بصورت local و توسط Application مدیریت میشود و یا بصورت inject شده در Application و توسط Container مدیریت شود. (منبع)

 روش دسترسی به آبجکت javax.sql.Connection درحالتی که EntityManager توسط کانتینر مدیریت میشود lookup jndi datasource است که ساده است. (منبع)

 نحوه مدیریت تراکنش ها با توجه به نحوه مدیریت EntityManager متفاوت می باشد و در حالتی که EntityManager توسط کانتینر مدیریت میشود استفاده از دستوراتی شبیه به em.getTransaction() بی معنی است و باید قبل از بیزینس متد از annotation استفاده کنیم تا از کانتینر بخواهیم که چگونه تراکنش مورد نظر را مدیریت کند. (منبع)

TransactionAttribute(TransactionAttributeType.REQUIRED)


اگر با خطای عجیب زیر هنگام کار با وبلاجیک مواجه شدید :

transaction bea1 not active anymore tx status rolled back

به کنسول وبلاجیک لاگین کنین و در پنل سمت چپ , گزینه Services و سپس JTA را انتخاب کنید و در پنل سمت راست connection timeout آن را از 30 به 1000 افزایش دهید.

سه ساعته این مسأله اعصاب من رو ریخته بود به هم چون برنامه کار میکرد و متادیتا برنامه رو ناخواسته اشتباه تغییر دادم و برنامه هنگام اجرا کردن متادیتا اشتباه به مشکل برمیخورد و من هم بطور صحیح خطا رو هندل نکرده بودم و فکر میکردم اشکال از annotation های بالای بیزینس متدهاست.


اگه با خطای عجیب و غریب زیر مواجه شدیم :

oracle.adf.view.rich.component.rich.output.RichOutputText cannot be cast to javax.faces.component.EditableValueHolder

این خطا معمولا به این علت رخ میدهد که ما در پیج jsp و یا jsf مخلوطی از تک adf و html را با هم استفاده میکنیم و این باعث بروز این خطا میشود و برای حل این مشکل در پیج مربوطه تگ های adf را داخل تگ af:group قرار میدهیم.

منبع : کامیونیتی اوراکل

نکته : اگه تویه مد production هستین ممکنه این خطا رو نبینین ولی ممکنه این بعضی از قسمت های برنامه که قبلا کار میکرده یک بار کار کنه و یا یک بار کار نکنه.


در css2 فقط دو حالت  initial state و active state داریم ولی در css3 میتوانیم بین دو حالت initial state و active state افکت های جالبی مثل جابجایی , چرخیدن و تغییر رنگ را ایجاد کنیم.

بعنوان مثال در css2 در initial state یک مربع آبی در گوشه سمت چپ بالای صفحه داریم و در active state یک دایره قرمز در گوشه سمت راست پایین صفحه داریم ولی در css3 احساس میکنیم که مربع مورد نظر با چرخیدن , جابجایی و تغییر رنگ در حال تبدیل شدن به دایره می باشد.


سوالات مصاحبه (جناب آقای حمید حسن نیا در خ رامسر خ سمیه پ 57 و 14) :

Scaffolding چیست : initial domain می­دهیم و initial view می­گیریم. قابلیتی که بعضی از فریم ورک های جاوا مثل grails دارند.

Html5 قابلیت responsive دارد به چه معنی است : با توجه به نوع دستگاه نحوه نمایش محتوا در browser فرق میکند.

Annotation ها با کمک کدام قابلیت جاوا استفاده میشوند : قابلیت reflection در جاوا که به کمک اون میتوانیم در زمان اجرا رفتار آبجکت را عوض کنیم.

وقتی میگوییم نوع داده int و float از نوع immutable هستند ولی نوع داده Integer و Float از نوع wrapper هستند به چه معناست.

چرا دائم مینویسیم List l = new ArrayList();


نکته بسیار ظریف ولی مهمی که بیش از یک هفته وقت من رو گرفت تا برطرفش کردم هنگام توسعه یک اپلیکیشن مبتنی بر JaavaEE5 بود که در JDeveloper11.1.1.7 اتفاق افتاد.

اگر هنگام دیپلوی کردن اپلیکیشنی که لایه مدل اون رو با ejb نوشتین و لایه ویو را با jsf و یا adf-faces نوشتین به اپلیکیشن سرور weblogic خطای زیر را مشاهده کردید برای برطرف کردن این مشکل بر روی لایه ویو راست کلیک می کنیم و سپس گزینه properties را انتخاب میکنیم و سپس dependencies را انتخاب میکنیم و لایه مدل را به عنوان یکی از وابستگی های لایه ویو قرار میدهیم : مشاهده تصویر

[EJB:011023]An error occurred while reading the deployment descriptor. The error was:

No EJBs found in the ejb-jar file 'ModelEJB.jar'. Please ensure the ejb-jar contains EJB declarations via an ejb-jar.xml deployment descriptor or at least one class annotated with the @Stateless, @Stateful or @MessageDriven EJB annotation..'

منبع


برای دریافت اطلاعات بیشتر در زمینه مدیریت تراکنش (CMT و یا BMT) و استفاده از آن در EJB به لینک های زیر مراجعه کنید:

http://www.byteslounge.com/tutorials/container-vs-application-managed-entitymanager


استفاده از ejb در JDeveloper:

ejb اسم خفنی داره ولی از نسخه 3 به بعد استفاده ازش ساده تر شده . یه interface  داره و یک implementation و بهش یک نام یونیک هم اختصاص میدیم و فرقش با bean معمولی اینه که: bean معمولی توسط اپلیکیشن مدیریت میشه ولی ejb بوسیله اپلیکیشن سرور. بنابراین هنگام فراخوانی متدهای ejb ما instance جدیدی از روش نمیسازیم چون اصلاً مدیریتش با ما نیست.

به کلاسی که داره با ejb ارتباط برقرار میکنه میگن managed bean و یه جورایی کنترلر ما محسوب میشه چون از یک طرف دیتا رو میگیره و میفرسته تویه jsp و jsf .

1.نحوه فراخوانی ejb با کمک DataControl :

عکس1

عکس2

عکس3

عکس4

دریافت کد

2.نحوه فراخوانی ejb بدون DataControl و با کمک اسمش :

عکس1

عکس2

پیاده سازی عملیات CRUD با استفاده از taskflow برای بار اول توسط شرکت رومانیایی GEBS : منبع

استرچ کردن فرم با استفاده از کامپوننت panelStretchLayout : منبع

استرچ کردن فرم با استفاده از css class : منبع

طراحی ui استاتیک پیچیده : منبع

طراحی ui دینامیک پیچیده با استفاده از کامپوننت iteratot  و یا forEach : منبع