לא ניתן לאתר Spring NamespaceHandler עבור XML Schema Namespace

למעלה אבטחה

הרגע הכרזתי על הקורס החדש ללמוד Spring Spring Security, כולל החומר המלא שהתמקד בערמת OAuth2 החדשה ב- Spring Security 5:

>> בדוק את הקורס

1. הבעיה

מאמר זה ידון באחת מבעיות התצורה הנפוצות באביב - מטפל מרחב שמות עבור אחד ממרחבי השמות של האביב לא נמצא. לרוב, משמעות הדבר היא כי צנצנת אביבית מסוימת חסרה במסלול הכיתה - אז בואו נעבור מה יכולות להיות סכמות חסרות אלו ומה התלות החסרה לכל אחת מהן.

2. //www.springframework.org/schema/security

מרחב שמות האבטחה אינו זמין הוא ללא ספק הבעיה הנפוצה ביותר בפועל:

מה שמוביל לחריג הבא:

org.springframework.beans.factory.parsing.BeanDefinitionParsingException: בעיית תצורה: לא ניתן לאתר Spring NamespaceHandler עבור מרחב שמות של סכימת XML [//www.springframework.org/schema/security] משאב פוגע: משאב נתיב מחלקה [securityConfig.xml]

הפיתרון הוא פשוט - ה אביב-ביטחון-תצורה תלות חסרה במסלול הכיתה של הפרויקט:

 org.springframework.security spring-security-config 3.2.5.RELEASE 

זה יניח את המטפל הנכון במרחב השמות - במקרה זה SecurityNamespaceHandler על מסלול הכיתה ומוכן לנתח את האלמנטים ב בִּטָחוֹן מרחב שמות.

את תצורת Maven המלאה להגדרת אבטחת אביב מלאה תוכלו למצוא במדריך הקודם של Maven.

3. //www.springframework.org/schema/aop

אותה בעיה מתרחשת בעת השימוש ה אוף מרחב שמות בלי שיהיה לך את ספריית האביב הדרושה בשביל הכיתה:

החריג המדויק:

org.springframework.beans.factory.parsing.BeanDefinitionParsingException: בעיית תצורה: לא ניתן לאתר Spring NamespaceHandler עבור מרחב שמות של סכימת XML [//www.springframework.org/schema/aop] משאב פוגע: משאב ServletContext [/ WEB-INF / webConfig. xml]

הפיתרון דומה - ה אביב-אוף יש להוסיף צנצנת למסלול הכיתה של הפרויקט:

 org.springframework spring-aop 4.1.0.RELEASE 

במקרה זה, AopNamespaceHandler יהיה נוכח בשביל הכיתה לאחר הוספת התלות החדשה.

4. //www.springframework.org/schema/tx

באמצעות מרחב שמות העסקה - מרחב שמות קטן אך שימושי מאוד לתצורת הסמנטיקה העסקית:

יביא גם לחריג אם הצנצנת הנכונה לא נמצאת על מסלול הכיתה:

org.springframework.beans.factory.parsing.BeanDefinitionParsingException: בעיית תצורה: לא ניתן לאתר Spring NamespaceHandler עבור מרחב שמות של סכימת XML [//www.springframework.org/schema/tx] משאב פוגע: משאב נתיב מחלקה [daoConfig.xml]

התלות החסרה כאן היא קפיץ-טקס:

 org.springframework spring-tx 4.1.0.RELEASE 

עכשיו, הנכון NamspaceHandler - כלומר TxNamespaceHandler - יהיה נוכח על מסלול הכיתה המאפשר ניהול עסקאות הצהרתי עם XML והערות.

5. //www.springframework.org/schema/mvc

מתקדם ל ה mvc מרחב שמות:

התלות החסרה תוביל לחריג הבא:

org.springframework.beans.factory.parsing.BeanDefinitionParsingException: בעיית תצורה: לא ניתן לאתר Spring NamespaceHandler עבור מרחב שמות של סכימת XML [//www.springframework.org/schema/mvc] משאב פוגע: משאב נתיב מחלקה [webConfig.xml]

במקרה זה, התלות החסרה היא אביב-mvc:

 org.springframework spring-webmvc 4.1.0.RELEASE 

הוספת זה ל pom.xml יוסיף את MvcNamespaceHandler לשביל הכיתה - המאפשר לפרויקט להגדיר סמנטיקה של MVC באמצעות מרחב השמות.

6. מסקנה

לבסוף, אם אתה משתמש ב- Eclipse לניהול שרת האינטרנט והפריסה - ודא כי החלק של הרכבת הפריסה של הפרויקט מוגדר כהלכה - כלומר שהתלות של Maven כלולות בפועל בכיתה בזמן הפריסה.

הדרכה זו דנה בחשודים הרגילים לבעיית "לא ניתן לאתר את Spring NamespaceHandler for XML schema names" הבעיה וסיפקה פתרונות לכל התרחשות.

תחתית אבטחה

הרגע הכרזתי על הקורס החדש ללמוד Spring Spring Security, כולל החומר המלא שהתמקד בערמת OAuth2 החדשה ב- Spring Security 5:

>> בדוק את הקורס

$config[zx-auto] not found$config[zx-overlay] not found