2011-12-06 5 views
5

मैं स्प्रिंग एमवीसी 3 का उपयोग कर रीस्टफुल वेब सेवाओं के साथ एक वेब एप्लिकेशन बना रहा हूं। वेब सेवाओं का उपयोग अनुप्रयोगों द्वारा किया जाएगा, इसलिए किसी भी दृश्य को वास्तव में कभी भी हल नहीं करना चाहिए। क्या सर्वलेट संदर्भ में निर्दिष्ट करने का कोई तरीका है कि किसी भी अनुरोध को कोई अनुरोध हल नहीं करना चाहिए?रीस्टफुल एप्लिकेशन में दृश्य को हल न करें

पल में, मैं है:

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
    <property name="prefix" value="/WEB-INF/jsp/" /> 
    <property name="suffix" value=".jsp" /> 
</bean> 

जो मैं कोशिश करता पता jsp फ़ोल्डर में एक तदनुसार नामित देखने के लिए किसी भी अनुरोध को हल करने। हालांकि, अगर मैं इसे हटा देता हूं, तो एप्लिकेशन केवल एक डिफ़ॉल्ट दृश्य रिज़ॉल्वर का उपयोग करने का प्रयास करता है।

कारण मैं इस बारे में चिंतित हूं कि मेरे आवेदन लॉग निम्न संदेशों से भरा होना करने के लिए (भले ही यह ठीक काम करता है) जा रहे हैं:

SEVERE: Servlet.service() for servlet [DispatcherServlet] in context with path [/vouchd] threw exception [Circular view path [signup]: would dispatch back to the current handler URL [/vouchd/signup] again. Check your ViewResolver setup! (Hint: This may be the result of an unspecified view, due to default view name generation.)] with root cause 
javax.servlet.ServletException: Circular view path [signup]: would dispatch back to the current handler URL [/vouchd/signup] again. Check your ViewResolver setup! (Hint: This may be the result of an unspecified view, due to default view name generation.) 

या InternalViewResolver साथ:

WARN [http-bio-8080-exec-4] (DispatcherServlet.java:1057) - No mapping found for HTTP request with URI [/app/WEB-INF/jsp/call.jsp] in DispatcherServlet with name 'DispatcherServlet' 

जो मुझे लगता है कि दो बुराइयों में से बेहतर है। मैं WARN स्तर लॉगिंग बंद करना नहीं चाहता।

उत्तर

7

@ResponseStatus के साथ प्रयास करें। यह कोड लौटाता कोई सामग्री के साथ 204 और देखने को छोड़ दिया समाधान करना:

@ResponseStatus(NO_CONTENT) 
void noView() { 
    //... 
} 

आप कच्चे डेटा लौट सकते हैं और बस JSON या XML करने के लिए इसे क्रमानुसार करने चाहते हैं, का उपयोग @ResponseBody:

@ResponseBody 
MyPojo noView() { 
    return new MyPojo(); 
} 
+0

मैं अभी भी JSON डेटा लौटने हूँ अनुरोध आवेदन के लिए। क्या यह नकारात्मक नहीं होगा? –

+0

@NicoHuysamen: क्षमा करें, मुझे गलत समझा गया * किसी भी अनुरोध को किसी भी अनुरोध को दोबारा नहीं बदला जाना चाहिए *, मेरा अपडेट देखें। –

+0

भयानक, धन्यवाद! –

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