بتاريخ: 29 يونيو 201411 سنة comment_252545 سلام عليكم مبارك عليكم جميعا شهر رمضان بالأمس القريب أردت أن أستدعي دالة معرفة في appModule من Bean فبحثت عن الحل فوجدت نفسي في دوامة من الاستدعاءات لكي أصل إلى الدالة الهدف وإليكم التوضيح ولعله يفيد كثيرين أردت أن أستخدم datasource الموجود في appmodule لكي أتفادى استحداث اتصال مستقل في bean ، فهذه الطريقة معيبة وأكبر عيوبها أنها في حال زحمة على الموقع سيكون استحداث الكثير الكثير من الاتصالات وذلك بالتأكيد سيؤدي إلى استهلاك موارك السيرفر وربما إلى ايقافه المهم كتبت دالة في AppModule public ResultSet getResultSet() { ResultSet rs = null; String stmt = "select user_name ,password from user"; PreparedStatement pr = getDBTransaction().createPreparedStatement(stmt, 0); try { rs = pr.executeQuery(); } catch (SQLException e) { } return rs; } ثم أعلنت عنها في Client interface ثم من الصفحة jsf قمت بالربط عن طريق binding ثم من ال bean كتبت هذه الكارثة FacesContext facesContext = FacesContext.getCurrentInstance(); Application app = facesContext.getApplication(); ExpressionFactory elFactory = app.getExpressionFactory(); ELContext elContext = facesContext.getELContext(); ValueExpression valueExp = elFactory.createValueExpression(elContext, "#{bindings}", Object.class); BindingContainer binding = (BindingContainer) valueExp.getValue(elContext); OperationBinding operationBinding = binding.getOperationBinding("getResultSet"); // Set the Input parameters to the operation bindings as below //operationBinding.getParamsMap().put("username", username); // Invoke the Application module method operationBinding.execute(); ResultSet rs = (ResultSet) operationBinding.getResult(); ............. عملت من قبل على framework مثل EJB و Spring ولم أجد مشكلا في استدعاء دالة من اي موقع من المشروع تم تعديل 29 يونيو 201411 سنة بواسطة ahmed_ah_sh تقديم بلاغ
بتاريخ: 30 يونيو 201411 سنة comment_252581 فيه كلاسين في ال ADF فيهم methods مساعدة في عملية البرمجة: 1- ADFUtils 2- JSFUtils وبتقدر تنفذ ال method في سطر واحد بالشكل التالي: ADFUtils.findOperation("YourMethodName").execute(); تقديم بلاغ
بتاريخ: 2 يوليو 201411 سنة comment_252614 الاخ احمدما المشكلة التي تقابلها بالضبط عند تشغيل الكود تقديم بلاغ
بتاريخ: 4 يوليو 201411 سنة كاتب الموضوع comment_252654 ما مشكلة اخي مصطفى غير اني تعجبت من كثرة الاستدعاءات للوصول إلى دالة في appModule مع أنه كان يجوز أن أستدعيها مباشرة كما أفعل في أطر العمل الأخرى فلماذا هذا التعقيد ؟ طبعا أنت لم تفهم المقصد لأن المشرف غير العنوان تم تعديل 4 يوليو 201411 سنة بواسطة ahmed_ah_sh تقديم بلاغ
بتاريخ: 4 يوليو 201411 سنة comment_252659 ﻻ يوجد تعقيد. ان عرف السبب بطل العجبﻻ يمكن استدعاء دالة مباشرة من AppModule لان هذا الملف يقوم بقراءة ملفات business components ويقوم بانشاء اتصال مع قاعدة البيانات وبالتالي له طريقة خاصة في الاستدعاء تقديم بلاغ
بتاريخ: 11 يوليو 201411 سنة comment_252850 السلام عليكم من خلال فهمي للمطلوب اعتقد انه يمكن وضع الكود التالي داخل زر داخل الbean حيث ال "model.AppModule" هي اسم الAM وال AppModuleLocal هي اسم ال configuration ويمكن الحصول عليهم من خصائص ال AM الكود التالي يستدعي دالة getCountname والتي تستقبل باراميتر ويستقبل الناتج ثم يضعه في input text String amDef = "model.AppModule"; String conf="AppModuleLocal"; ApplicationModule am =Configuration.createRootApplicationModule(amDef,conf); AppModuleImpl ser=(AppModuleImpl) am; String ret=ser.getCountname(it1.getValue().toString()); it2.setValue(ret); تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.