-
Notifications
You must be signed in to change notification settings - Fork 38.6k
Description
Sorin Jucovschi opened SPR-6178 and commented
In my application I have a ContentNegotiatingViewResolver set to handle html , xml and json. Following is the beans declaration:
\
<bean
class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver"
p:order="1">
<property name="mediaTypes">
<map>
<entry key="html" value="text/html"/>
<entry key="xml" value="application/xml" />
<entry key="json" value="application/json" />
</map>
</property>
<property name="defaultViews">
<list>
<bean class="org.springframework.web.servlet.view.xml.MarshallingView">
<property name="marshaller">
<bean class="org.springframework.oxm.xstream.XStreamMarshaller"
p:autodetectAnnotations="true" />
</property>
</bean>
<bean
class="org.springframework.web.servlet.view.json.MappingJacksonJsonView" />
</list>
</property>
<property name="ignoreAcceptHeader" value="true"/>
<property name="defaultContentType" value="application/xml"/>
</bean>
<bean id="jspViewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver"
p:prefix="/WEB-INF/jsp/" p:suffix=".jsp" p:order="2" />
//
As seen in the code I turned off acceptHeader and want to have a default content type of application/xml. When I access the page without an explicit extension I get a java.lang.UnsupportedOperationException:
java.lang.UnsupportedOperationException
at java.util.AbstractList.set(AbstractList.java:115)
at java.util.AbstractList$ListItr.set(AbstractList.java:412)
at java.util.Collections.sort(Collections.java:121)
at org.springframework.web.servlet.view.ContentNegotiatingViewResolver.resolveViewName(ContentNegotiatingViewResolver.java:344)
at org.springframework.web.servlet.DispatcherServlet.resolveViewName(DispatcherServlet.java:1105)
at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1052)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:808)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:726)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:636)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:545)
...
Affects: 3.0 RC1
Issue Links:
- Using ignoreAcceptHeader and defaultContentType together causes problems. [SPR-6163] #10831 Using ignoreAcceptHeader and defaultContentType together causes problems. ("duplicates")