جاوا و تکنولوژی های آن

java programming language

در این وبلاگ به بررسی نکات موجود در جاوا و تکنولوژی های آن می پردازیم

طبقه بندی موضوعی


در Spring مسئله خطایابی از اهمیت ویژه ای برخوردار است و یک توسعه دهنده با تجربه اسپرینگ میبایست با این خطا ها آشنایی داشته باشند چرا که خطای ایجاد شده همیشه آن چیزی نیست که در لاگ ها قابل مشاهده است و ممکن است خطا از یک کتابخانه third party به Spring منتقل شده باشد برای همین میبایست توسعه دهنده سالها کار کرده باشد که این خطا ها را بتواند سریعا رفع کند ولی برای جلوگیری از هدر رفتن وقت در اینجا به خطاهای معمول، چگونگی برطرف کردن آنها و چرایی ایجاد آنها میپردازیم


یکی از متداول ترین خطا ها BeanDefinitionStoreException از پکیج org.springframework.beans.factory.BeanDefinitionStoreException است که مسول BeanFactory ها هنگام ایجاد آن است و در صورتی که load کردن یک bean به هر دلیلی با خطا روبرو شود این خطا پرتاب خواهد شد 

در ادامه به شرایطی که ممکن است این خطا پرتاب شود میپردازیم :


بخاطر پرتاب شدن خطای java.io.FileNotFoundException :


- وقتی از Spring MVC استفاده میکنیم اگر DispatcherServlet را در فایل web.xml تعریف کرده باشیم، Spring به به صورت پیش فرض دنبال فایل springMvcServlet-servlet.xml در مسیر WEB-INF/ میگردد و اگر در این مسیر آنرا پیدا نکند این خطا رخ خواهد داد

<servlet>  
   <servlet-name>mvc</servlet-name>  
   <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  
</servlet>
org.springframework.beans.factory.BeanDefinitionStoreException: 
Ioexception Parsing Xml Document from Servletcontext Resource [/WEB-INF/mvc-servlet.xml]; 
nested exception is java.io.FileNotFoundException: 
Could not open ServletContext resource [/WEB-INF/mvc-servlet.xml]

راه حل : اطمینان حاصل کنیم که فایل mvc-servlet.xml در مسیر WEB-INF/ موجود است و اگر وجود نداشت یکی درست کنیم :

<?xml version="1.0" encoding="UTF-8"?>
<beans
   xmlns="http://www.springframework.org/schema/beans"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="
      http://www.springframework.org/schema/beans 
      http://www.springframework.org/schema/beans/spring-beans-3.2.xsd" >
 
</beans>


- حالت بعدی parse کردن یک منبع xml از مسیر classpath است که وجود ندارد 

@Configuration
@ImportResource("beans.xml")
public class SpringConfig {...}

یا در فایل xml از آن منبع استفاده کرده باشیم که وجود ندارد :

<import resource="beans.xml"/>

و یا بوسیله ایجاد یک ApplicationContext از آن فایل xml که وجود ندارد :

ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");

در این مواقع این خطا رخ خواهد داد :

org.springframework.beans.factory.BeanDefinitionStoreException: 
Ioexception Parsing Xml Document from Servletcontext Resource [/beans.xml]; 
nested exception is java.io.FileNotFoundException: 
Could not open ServletContext resource [/beans.xml]

راه حل : ایجاد فایل مورد نظر یا انتقاال آن به مسیر /src/main/resources  



مبحث exception ها ادامه خواهد داشت که در آینده کامل خواهد شد







































نظرات  (۰)

هیچ نظری هنوز ثبت نشده است

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی