Spring MVC is dropping a @PathVariable
If I hit the controller multiple times and hammer it, occasionally my modelCod开发者_JAVA百科e parameter comes through as null. However the URL has the modelCode in it. Using Spring Framework 3.0.5.RELEASE
@RequestMapping(value="ws/getallvariants/{channelCode}/{modelCode}/{regionId}/{year}")
public ModelAndView getAllVariants(@PathVariable("channelCode") String channelCode,
@PathVariable("modelCode") String modelCode,@PathVariable("regionId") String regionId,@PathVariable("year") String year){
if (modelCode == null)
{
int i = 0; // this should never hit, but does.
}
Yes, RegEx was the most reliable for me as well. Did this to grab an email address as a parameter:
@RequestMapping(value = "rest/userreadserv/search/{email:.+}", method = RequestMethod.GET)
public ResponseEntity getUserAccountByEmail(@PathVariable String email) {...}
Take a look at Spring MVC @PathVariable getting truncated . The regex approach worked for me:
@RequestMapping({ "/servers/{serverName:.+}" })
Updating the spring framework again to the latest version appears to have worked. Apparently when we updated our framework something didn't work correctly.
EDIT:
So this wasn't our issue at all... We had implemented a String Trimmer Editor incorrectly and it was keeping state. So when we put the call under load it would cross results.
//in your xml dispatcher add this property to your default annotation mapper bean as follow
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping">
<property name="alwaysUseFullPath" value="true"></property>
</bean>
精彩评论