2012-04-29 10 views
7

मैं वसंत डाटा जेपीए उपयोग कर रहा हूँ और यह अजीब बात है, लेकिन यह स्कैन करने के लिए (तैनाती के दौरान) की कोशिश करता है परीक्षण फ़ाइलें, जो त्रुटि का कारण बनता है:स्प्रिंग डाटा जेपीए - परीक्षण फ़ोल्डर में फ़ाइलों के लिए स्कैन

java.lang.ClassNotFoundException: org.junit.runner.RunWith 
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1678) 
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1523) 
... 
WARN : org.springframework.core.type.classreading.AnnotationAttributesReadingVisitor - Failed to classload  type while reading annotation metadata. This is a non-fatal error, but certain annotation metadata may be  unavailable. 

classnotfoundexception है क्योंकि परीक्षण निर्भरता मेवेन में "परीक्षण" दायरे में हैं।

लेकिन मेरा सवाल यह है कि, यह परीक्षण फ़ोल्डर स्कैन क्यों कर रहा है? (/ Src/मुख्य/परीक्षण)।

<jpa:repositories base-package="com.domain.repository" /> 

आप मुझे बता सकते हैं क्या मैं गलत कर रहा हूँ:

संदर्भ विन्यास इस प्रकार है? My .classpath सामग्री निम्नानुसार है:

<classpathentry kind="src" output="target/classes" path="src/main/java"/> 
<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"/> 
<classpathentry kind="src" output="target/test-classes" path="src/test/java"/> 
<classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources"/> 
... 

मैं वास्तव में इसके साथ आपकी सहायता की सराहना करता हूं।

+2

मुझे वसंत 3.1.1 के साथ, मेरी परियोजना में यह वही समस्या है। क्या आपको इसके आसपास अपना रास्ता मिला है? – elias

उत्तर

0

यह एक बग "छद्म सुविधा" स्प्रिंग में हो रहा है:

https://jira.springsource.org/browse/SPR-9233

आप चेतावनी दी है कि जब यह रन-टाइम में एक टिप्पणी के लिए वर्ग नहीं मिल सकता है, भले ही आपके आवेदन है बहुत ज्यादा ठीक है।

2

But my question is, why it is scanning test folder? (/src/main/test).

The context configuration is as follows:

<jpa:repositories base-package="com.domain.repository" />

सटीक होना, मुझे नहीं लगता कि वसंत इस फ़ोल्डर को स्कैन कर रहा है - यह सब करने के बाद अपने स्रोत फ़ोल्डर है। यह केवल तैनात पैकेज संरचना को देख रहा है और मेरा संदेह यह होगा कि समस्या का कारण इसके साथ कुछ करना है।

मुझे एक ही समस्या का सामना करना पड़ा, लेकिन यह वसंत के लिए विशिष्ट कुछ के बजाय ग्रहण में एक गलत तैनाती विन्यास के कारण हुआ था। मैंने ग्रहण तैनाती पैकेज में src/test/java में अपनी टेस्ट कक्षाओं को तैनात करने के लिए कॉन्फ़िगर किया था, इसलिए सभी टेस्ट फाइलें (निश्चित रूप से संबंधित पैकेज संरचनाएं थीं) जहां मैंने सर्वर शुरू किया था। हालांकि, आपके द्वारा पोस्ट किए गए .classpath स्निपेट द्वारा निर्णय लिया गया है, मुझे लगता है कि आप स्पष्ट रूप से उन्हें तैनात किए जाने से बाहर कर रहे हैं।

फिर भी, अन्य तरीके हैं कि कक्षा फाइलें आपके परिनियोजन में रेंग सकती हैं। क्या आप यह सत्यापित करने में सक्षम हैं कि परीक्षण कक्षाएं वास्तव में तैनात पैकेज में मौजूद नहीं हैं? क्या उन्हें कुछ अन्य प्रक्रियाओं द्वारा सिंक किया जा सकता है जिसे आपने सेट किया है (फाइलसिंच प्लगइन शायद)?

इसके अलावा, क्या आपके पास अन्य बेस पैकेजों को स्कैन करने के लिए कॉन्फ़िगरेशन के साथ कोई अन्य स्प्रिंग संदर्भ फ़ाइलें हैं?

आप अपनी ग्रहण कॉन्फ़िगरेशन के बारे में कुछ और विवरण जोड़ सकते हैं और समस्या को हल करने में सहायता के लिए आप अपने परीक्षण सर्वर पर कैसे तैनात कर रहे हैं।

संबंधित मुद्दे