الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

سؤال في تثبيت Tomcat Server

بدأه تحدي المستحي في 11 يونيو 2010 · 10 رد · 909 مشاهدة · في JavaEE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

مازالت مشكلتي في طريقة لربط الجافا بـ PHP أو بـ HTML وبعد بحث عرفت إنو الـ Tomcat هو سيرفر للجافا فقلت ممكن أقدر أحل مشكلة الربط

أبغى أسألكم عن طريقة تثبيت دا السيرفر... أنا فتحت موقع الشركة بس لقيت روابط كثير ومو عارفة أية أحمل؟؟؟

مع العلم إنو عندي في جهازي الأباتشي سيرفر 2.2 والأن راح أحمل Tomcat

هل في ضرر ع الجهاز؟؟ أيضا هل في طريقة أربط بيها السيرفرين معا؟؟

جزاكم الله خير

#2

مم

أظن إنت كده ماشي طريق مش مظبوط...

ليه تثبت الخادمين مع بعض!

أه ينفع جدا, بس ليه؟!

إنت عاوز تشتغل Matlab صح؟

يبقي تعمل الأتي

بص, يا تسيبك من ال php أو الجافا, متحولش تخلط بنهم عشان المشروع يكون ثلث و سهل و متعقدش الدنيا.

1- ففي حالة لو يمكن إستدعاء كود الMatlab من الphp , فإشتغل php و ماتلاب فقط

2- أما في حالة لو كان صعب إستدعاء كود الماتلاب من ال Php , فإستخدم Java و Matlab فقط

ففي الحالة رقم 1, الناس اللي في قسم ال php هم أكثر ناس يقدرو يساعدوك

أما في الحالة قم 2 فأنصحك بالأتي

1- كتابة كود المتلاب الذي تريد

2- القيام بكتابة كود جافا (Java SE عادي خالص) ثم تقوم بإستدعاء كود الماتلاب من داخله (حقيقة لا أدري كيف!)

3- تقوم ببناء تطبيق الويب في الجافا , شوف الموضوع ده: /index.php?showtopic=220541

و أي خدمه يا صاحبي ...

#3

جزاك الله خير

طيب أنا دحين ربطت الجافا والماتلاب... يعني أقدر أنادي الماتلاب من الجافا...

الله يخليك طول بالك علي... أنا راح أكمل معاك بس أنا أقولك ليش أستخدمت الـ PHP وإنت قولي هل في في الجافا اللي الـ PHP تعمله

بالـ PHP أنا صممت صفحة ويب وفيها فورم اليوزر يدخل صورة..أولا الصورة تتحمل في السيرفر وينكتب اسمها في تكست فايل

وأخيرا يتم قراءة من ملف ليتم عرض النتائج

مابين أولا وأخيرا الماتلاب والجافا يشتغلوا

الله يفرج همك قولي هل أقدر أسوي دا باللي إنت تنصحني بيه عشان مايضيع وقتي وأكمل بنصحك

والله عندي امتحانات نهائية دا الأسبوع وتسليم المشروع يوم الأربعاء

الآن راح أقرأ الرابط وبانتظار ردك

وجزاك الله كل خير

#4

طبعا الجافا تقدر تعمل بيها اللي إنتا عاوزه... (بعض النظر عن التفاصيل)

بس خليني أقولك إنتا عاوز تعمل إيه,,

إنتا عاوز تنشأ صفحة يقوم فيها المستخدم بتحميل صورة للخادم, و بعد كده الخادم يخزنها عنده و بعد كده يقوم الجافا و الماتلاب التخاطب معا لعمل شئ ما (image processing مثلا), و بعد كده ترجع النتائج للمستخدم (بما فيها الصورة النهائية لو تحب)

صح يا أخي؟

بس, الجافا تقدر تعمل بيها كل شئ (إلا بعض الأشياء التي تتطلب التعامل مع قطع العتاد و السرعه ...)

بص, إعرض لنا محاولاتك أو فكرتك النهائية و إن شاء الله بنقدر نساعدك.....

#5

الله ينور عليك... بالضبط دا اللي أبغاه

بس مافهمت قصدك

اقتباس

بس, الجافا تقدر تعمل بيها كل شئ (إلا بعض الأشياء التي تتطلب التعامل مع قطع العتاد و السرعه ...)

أنا عندي امتحان سبت وأحد وإثنين وبعدها راح أفضى للمشروع... دحين شويه مشغولة وماحستوعب شيء

يعني يوم الإثنين بإذن الله راح أحاول في البرمجة

أنا قرأت موضوعك... الله يكتب لك بيه الأجر ويجعله في ميزان حسناتك

تقريبا أحتاج كود أبلود صورة لأني برمجته بالبي إتش بي... وكيف أوجه الفورم يعني أقصد الآكشن... وكيف أضمن أكوادي الجافا... يعني أنا عندي تقريبا 10 ملفات .java

أحتاج أفهم كيف أناديها ع الويب

وبإذن الله خير

الله يرفع قدرك وينور دربك ويفرج همك ويرزقك من حيث لا تحتسب

بس لاتنساني يوم الإثنين بإذن الله راح أعرض محاولاتي وأسئلتي واستفساراتي

كل الدعاء لك بالتوفيق والفلاح في الدارين

تم تعديل هذه المشاركة بواسطة تحدي المستحي في 11 يونيو 2010 في 10:15

#6
{هويدي} كتب:

بس, الجافا تقدر تعمل بيها كل شئ (إلا بعض الأشياء التي تتطلب التعامل مع قطع العتاد و السرعه ...)

بص, إعرض لنا محاولاتك أو فكرتك النهائية و إن شاء الله بنقدر نساعدك.....

أخ هويدي ممكن توضح معنى كلامك... لأني راح أحول الآن من PHP إالى JSP... وحابة أعرف معنى كلامك عشان لو ماتناسبي اللغة ماأكون ضيعت وقت عليها

وجزاك الله خير

#7

التعامل مع العتاد hardware هي مشكلة الجافا الأبدية

صحيح أن الجافا حلتها جزئياً بتقنية JNI

لكن يبقى أنك تحتاج إلى كتابة شيفرة بـ c أو c++

للتعامل مع العتاد

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#8

كما أوضح الأخ علاء

#9

جزاكم الله خير...

المشكلة مافهمت كلمة عتاد.

الحمد لله دي المشكلة مافي عندي. بس الآن موعارفة كيف أعمل أكوادي الجافا في jsp

بانتظار مساعدتكم... تسليم مشروعي بكرة

جزاكم الله خير

#10

عتاد يعني Hardware

اقتباس
بانتظار مساعدتكم... تسليم مشروعي بكرة
:D ohmy.gif

بصي يا أختي, قومي بالأتي

1- قومي بفتح Eclipse , ثم File ثم NEW ثم Other ثم إكتبي في مربع النص dynamic

post-70497-082371400 1276575102_thumb.jp

بعد كده إضغطي على Next و إكتبي إسم المشروع : MyImageProcessingProj

بالنسبة لل Target Runtime فإتبع الخطوات في الموضوع اللي أشرت لك ليه من هنا

بعد كده إضعطي على Finish

أولا نريد أن نكامل المشروع الأول الموجود به كود الجافا و هذا المشروع,,

أولا قومي بإنشاء package جديده و قومي بإعطائها الإسم com.company.business

post-70497-072510800 1276575433_thumb.jp

بعد ذلك من الويندوز, إذهبي للمسار الذي به ال package الجديده , و لنقل :

اقتباس
C:\Documents and Settings\mhewedy\workspace\MyImageProcessingProj\src\com\company\business

قومي بنسخ ملفات الجافا التي لديكي (و التي تتعامل مع الصور و ماتلاب على ما أذكر)

إرجعى ثانيا إلى Eclipse , ستلاحظي وجود الملفات التي قمت بنسخها, ولكن بها أخطاء, وهي عدم توافق أسماء ال packages بها

post-70497-080925600 1276575714_thumb.jp

قومي بتصحيح الخطأ بإضافة

package com.company.business;

في أول كل ملف كما تعلمين

ثانيا, جزء كتابة ال JSP

طبقا لدرس الأخ عصام حفظه الله عن تحميل الملفات للخادم, سأقوم بالشرح السريع على Eclipse لك.

أولا قمت بتحميل الملفين الذي تحدث عنها الأخ عصام.

بعد ذلك قمت بوضعهم في ال Class path بنسخهم ووضعهم في المجلد lib كالشكل التالي:

post-70497-028795800 1276577802_thumb.jp

ثم إضغطي على Add External Jars و قومي بالبحث عنها و إضغطي Ok و OK

طبقا لدرس الأخ عصام, سنقوم أولا بإنشاء صفحة HTML

و لإضافتها إتبعى التالي:

post-70497-095469300 1276576494_thumb.jp

قومي مثلا بتسمتها index

وضعي بداخها هذا الكود:

<html>
    	<head>
            	 <title>Upload page</title>
            	<meta  http-equiv="Content-Type" content="text/html; charset=UTF-8">
         </head>
    	<body>
            	 <h1>Upload files using commons.fileupload library</h1>
                 <form action="UploadServlet" method="post"  enctype="multipart/form-data">
                    	Name:  <input type="text" name="Name"/><br/>
                         Age: <input type="text" name="Age"/><br/>
                         Choose the file to upload: 
						<input  type="file" name="fileToUpload" /><br/>
                         <input type="submit"/>
            	</form>
         </body>
</html>

قومي بتجربتها بالضغط على F11 . سيظر لك النافذه التاليه, إضغطي FInish (بعدما تختاري Tomcat V6 )

post-70497-045602300 1276576639_thumb.jp

بعد ذلك, تعالي لنكتب ال Servlet التالي , و لإنشائه قومي بالتالي:

post-70497-026512700 1276576710_thumb.jp

في خانة Class name إكتبي UploadServlet

إنسخي به الكود التالي:

package com.company.business;

import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;

public class UploadServlet extends HttpServlet {


    	@Override
    	protected void doPost(HttpServletRequest request, HttpServletResponse response)
                    	throws ServletException, IOException {
            	PrintWriter out = response.getWriter();
            	response.setContentType("text/html");
            	DiskFileItemFactory factory = new DiskFileItemFactory();
            	ServletFileUpload fileUpload = new ServletFileUpload(factory);
            	try {
                    	List listItems = fileUpload.parseRequest(request);
            	for (Object o : listItems) {
                    	FileItem fileItem = (FileItem)o;
                    	if (fileItem.isFormField()) {
                            	out.print(fileItem.getFieldName() + ": " + fileItem.getString() + "<br/>");
                    	} else {
                            	fileItem.write(new File(getServletContext().getRealPath("/") + "/" + fileItem.getName()));


                            	/*
                             	* After retrieving an instance of this class from a FileUpload  instance 
                             	* (see #parseRequest(javax.servlet.http.HttpServletRequest)), you may either
                             	*  request all contents of the file at once using get()  
                             	*  or request an InputStream with getInputStream()  
                             	*  and process the file without attempting to load it into memory,
                             	*   which may come handy with large files. 
                             	* 
                             	*/

                            	byte[] data = fileItem.get();
                            	InputStream is = fileItem.getInputStream();

                            	out.print("file uploaded successfully.");
                    	}
            	}
            	} catch (FileUploadException ex) {
                    	out.print("An error occured while processing the request: " + ex.getMessage());
            	} catch (Exception ex) {
                    	out.print("An error occured while writing the uploaded file: " + ex.getMessage());
            	}
    	}
}

هذه هي كل القصة,و به طريقة الحصول على array of bytes أو InputStream (و أنتي غالبا ستحتاجي الأولي ),

هذا, و بالله التوفيق...

المرفقات
1.JPG2.JPG3.JPG5.JPG6.JPG7.JPG8.JPG
1
#11

جزاااااااااااااك الله خير الله يرفع قدرك ويفرج همك

راح أبدأ الآن التنفيذ وأكيد حيكون عندي أسئلة واستفسارات

أكرر شكري

مواضيع مشابهة