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

Exception In JAVA RMI

مغلق
بدأه MKSoft في 19 يوليو 2007 · 3 رد · 935 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم إخواني .. عندي ثلاث مشاكل أرجو مساعدتكم ..

المشكلة الأولى هي :

اريد ان اقوم بتصميم Reports التقارير للمشروع , وعندما استدعي البيانات من السيرفر Server , لا يكون هناك مشاكل , لذلك تظهرهذه البيانات على شاشة Client بشكل جيد و لكن عندما أقوم بطباعة هذه البيانات باستخدام method تسمى print في الجافا يحدث معي Exception , لا أدري ما مشكلته , على الرغم انني قمت بتجريب هذه print على برنامج اخر لا يستخدم RMI , وقد قام بطباعة النتائج بنجاح لكن عندما استخدمته على برنامج RMI حدثت المشكلة . أظن ان المشكلة في policy

صورة Exception

على هذا الرابط >>صورة Exception

SYa65393.jpg

ملف Policy الذي أمتلكه هو يحتوي على هذا الكود .

grant {


	permission java.net.SocketPermission "*:1024-65535",
		"connect,accept";
	permission java.net.SocketPermission "*:80", "connect";

	permission java.lang.RuntimePermission "accessClassInPackage.sun.jdbc.odbc";
	permission java.util.PropertyPermission "file.encoding", "read";

};

الكود الذي يحدث فيه المشكلة

public void actionPerformed(ActionEvent e)
	{
		if(e.getSource() == ID)
		{
			try
			{
				String sql = "SELECT  * FROM		 Passenger where passenger_id='"+ID.getText()+"'";

			java.util.Vector v = getData().search_for_pass(sql);
			if(v.size()>0)
			{
				ID.setText(""+v.get(0));
			Address.setText(""+v.get(4));
			Date_Birth.setText(""+v.get(8));
			Date_Issue.setText("");
			FName.setText(""+v.get(1));
			LName.setText(""+v.get(2));
			MName.setText(""+v.get(3));
			Material.setText(""+v.get(6));
			Place_Birth.setText(""+v.get(5));
			sex.setText(""+v.get(9));
			Issues_By.setText(""+v.get(7));
			}}
			catch(Exception ex){}
		}
		if(e.getSource() == Print)
		{
			try
			{
				new	printUtilities(jPanel1).print();	
			}catch(Exception ex)
			{
				ex.printStackTrace();
			}}
		 }

شرح الكود ..

أولا يتم استرجاع البيانات المراد طباعتها با ستخدام Method تسمى search_for_pass() موجود في Server , حيث تقوم بارجاع البيانات داخل Vector , ويتم ذلك بالضغط على textfield اسمه ID.

ثانيا يتم استخدام زر اسمه يقوم بعمل print طباعة ل Component التي تحتوي على هذه البيانات , حتى يقوم بطباعتها.

---------------------------------------------------------------------------------------------------------

المشكلة الثانية:

تشبه الأولى وهي عندما قمت باستدعاء احد الملفات من نوع swf (فلاش) حدث Exception اخر و هو على الشكل التالي ..

صورة Exception .

على هذا الرابط >> صورة Exception

c5V65529.jpg

جزء من الكود المسبب لهذه المشكلة .

luxor.addActionListener(
		new ActionListener(){
		public void actionPerformed(ActionEvent e){
			try{

				Runtime runtime = Runtime.getRuntime();
			 runtime.exec ("cmd /C start file:///F:/GProject/projectjava/ fullcannon.swf ");

			}
			catch(Exception ee){
				ee.printStackTrace();}

			}
			});

3-) المشكلة الثالثة

هي كيف اقوم باخفاء شاشات ال دوس command prompt التي تظهر عندما اقوم بتشغيل البرنامج , وهي شاشة لتشغيل server واخرى ل rmicregistery و الثالثة ل client , علما باني استخدم batch file في هذه العملية . علما بان محتوى ملفات batch هي كالتالي ..

الملف الاول وهو :

startServer.bat

javac *.java
rmic DataBaseServant
start rmiregistry
java -Djava.security.policy=rmipolicy.policy Server

الملف الثاني :

startClient.bat

java -Djava.security.policy=rmipolicy.policy DesktopTest
pause

تم تعديل هذه المشاركة بواسطة MKSoft في 19 يوليو 2007 في 20:28

#2

لا أعرف إن كان هذا يفيدك أم لا ، فقط جرب : /index.ph...hangefilters=1#

#3

السلام عليكم

يبدو ان المشكلتين متعلقتين بالسكيورتي

المشكلة الاولى ان برنامحك ليس لديه صلاحية للطباعة جرب اضافة الكود التالي في ملف الـ policy

permission java.lang.RuntimePermission "queuePrintJob"

المشكلة الثانية ان برنامجك ليس لديه الصلاحية لتشغيل ملف جرب عمل تصريح باضافة التاليي الى ملف الـ policy

permission java.io.FilePermission "file", "execute";

لمزيد حول الصلاحيات في الجافا

Permission in Java

منقطع من حين لاخر

#4

بارك الله فيك أخي أبو فؤاد

فعلا المشكلة حلت معي .. حياك الله

بالنسبة للمشكلة الثالثة كيف حلها

هذا الموضوع مغلق.

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