كيف يمكنك الوصول إلى قاعدة بيانات SQL من GWT؟

لقد قرأت بعض المقالات على الإنترنت أن هذا غير ممكن. لتوصيل قاعدة بيانات SQL الخاصة الموجودة على خادم آخر من تطبيق GWT. رصيف المراكب لا يسمح بذلك.

لقد وجدت طريقة لفعل ذلك ولكنها ليست مريحة للغاية. لدي جزء العميل والخادم داخل GWT. يجب أن يتصل الخادم بقاعدة MySQL على localhost. لقد كتبت نصًا نمطيًا لبناء حرب يمكنني إطلاقها على خادم Apache Tomcat. يعمل بشكل مثالي هناك ولكنني غير قادر على تصحيح التعليمات البرمجية بشكل فعال.

هل لديك بعض النصائح حول كيفية أداء هذه المهمة؟ كنت أفكر في كتابة الزبون فقط في GWT وإيجاد بعض waz كيفية توصيل الخادم الخاص بي مكتوبة خارج GWT. لقد وجدت أباتشي التوفير ل GWT ولكن هذه المكتبة المحررة من التوفير يبدو أنها لا تعمل بشكل صحيح.

شكرا جزيلا على إجاباتك :)

0
لا هذا ليس مستحيل. لدي GWT جانب الخادم وهذا واحد لديه للتواصل مع قاعدة بيانات MySQL. المشكلة هي أن Jetty (خادم التطبيق GWT) يرفض الاتصالات إلى قواعد البيانات الخاصة.
وأضاف المؤلف Reshi, مصدر
لذلك عادة ما تعمل بشكل جيد إذا قمت بتعطيل هذا الخيار؟
وأضاف المؤلف Reshi, مصدر
حسناً لقد قمت بتعطيل GAE وسأحاول ذلك
وأضاف المؤلف Reshi, مصدر
جيدا أنه يعمل حتى أخيرا كان هناك مشكلة في جانبي شكرا :)
وأضاف المؤلف Reshi, مصدر
"رصيف المراكب الصغيرة لا يسمح بذلك." أفترض أنك تتحدث عن الخادم المضمن في DevMode الخاص بـ GWT. في هذه الحالة ، ربما قمت بتمكين "App Engine" في Eclipse عن طريق الخطأ (وهو ما يقيد بالفعل ما يمكنك القيام به على جانب الخادم ، لتقليد القيود الفعلية لاستضافة Google).
وأضاف المؤلف Thomas Broyer, مصدر

3 إجابة

لا يمنعنا رصيف المراكب الصغيرة من الاتصال بقاعدة البيانات. كل ما عليك القيام به هو اتباع طريقة نموذج MVP. على الرغم من أن أفضل لاعب هو أفضل ضد جميع العقبات ، عند الحد الأدنى ، سيكون عليك محاولة عدم وجود رمز SQL على حزمة العميل.

0
وأضاف

Reshi ، والتوقف والتفكير في كيفية عمل التطبيقات حقا. لا أحد يزود صفحات الويب بجافا سكريبت بقواعد بيانات القراءة/الكتابة ، التي ستكون مجنونة وغير آمنة. الخوادم تكون دائما في حصر كل الاتصالات في هذه الحالة. تحتاج إلى إنشاء خدمات تعمل داخل الخادم الخاص بك ، فإن إحدى هذه الخدمات ستكون طبقة قاعدة بيانات.

جافا سكريبت غير قادر على إنشاء اتصالات الشبكة وقراءة/كتابة البيانات الثنائية ، وبالتالي سيكون من الجنون محاولة الحصول على مترجم gwt لتجميع أي drvier jdbc وأكثر من ذلك.

0
وأضاف
أعلم أنه لا يمكنني الوصول إلى قاعدة البيانات مباشرة من العميل :) يحتوي مشروعي في GWT على جانب عميل GWT وخادم GWT.
وأضاف المؤلف Reshi, مصدر
كنت أرغب في الوصول إلى قاعدة بيانات MySQL من جزء الخادم في تطبيق GWT ، لكن Jetty (الخادم المدمج في التطبيق) رفض الاتصال بقاعدة MySQL. وقرأت أنه ليس من الممكن الوصول إلى خوادم قاعدة البيانات الخاصة بك من خادم GWT تحت Jetty. أن الطريقة الوحيدة هي استخدام DataSource من Google. الآن أنا أعمل بهذه الطريقة: أنا أبني ملف .war الخاص بي في كل مرة أحتاج لاختبار شيء ما في مشروعي. ونشرها في Tomcat.
وأضاف المؤلف Reshi, مصدر
ولكن إذا كان علي أن أفعل ذلك 6 مرات في الساعة فهذا كثير. لذلك كنت أحاول العثور على طريقة مختلفة للوصول إلى قاعدة البيانات من GWT باستخدام Jetty أو عدم استخدام Jetty (لا يهم).
وأضاف المؤلف Reshi, مصدر

من الممكن التواصل مع قاعدة بيانات من تطبيق GWT. يجب على جهة العميل استدعاء أساليب الخادم عبر GWT-RPC ، والتي يمكنها الاتصال بأي قاعدة بيانات.

ربما لا يدعمه رصيف المراكب الصغيرة (لم تختبره شخصياً) ولكن يمكنك تطوير تطبيق الويب الخاص بك باستخدام Apache أيضًا. هناك يمكنك الوصول إلى قاعدة البيانات بنفس الطريقة من أي تطبيق ويب:

ستحتاج إلى ملف mysql-connector-java-5.1.20-bin.jar (يمكن تنزيله من: http://dev.mysql.com/downloads/connector/j/ ) ، وأعد إضافة الخادم إلى الدليل $ CATALINA_HOME/common/lib .

أو إضافتها إلى مجلد WEB-INF/lib الخاص بتطبيق الويب الخاص بك.

You can find tutorials online of how to develop an application using Tomcat instead of Jetty. For example: https://wiki.auckland.ac.nz/display/BeSTGRID/Deploying+GWT+to+Tomcat+in+Eclipse

0
وأضاف