Spring 4+@ControllerAdvice:Jsonp对ResponseBy的支持导致部署异常?

Spring 4+@ControllerAdvice:Jsonp对ResponseBy的支持导致部署异常?,json,rest,spring-mvc,jsonp,spring-4,Json,Rest,Spring Mvc,Jsonp,Spring 4,我正在SPRING4+JDK8+STS3.6.4中向REST服务添加JSONP支持 版本: 弹簧4.1.6.1释放 我的实现基于以下链接: REST服务返回ResponseEntity或ResponseBody,用例是以JSONP格式返回数据 添加了控制器建议 @ControllerAdvice public class JsonpCallbackAdvice extends AbstractJsonpResponseBodyAdvice { public JsonpCallback

我正在SPRING4+JDK8+STS3.6.4中向REST服务添加JSONP支持

版本: 弹簧4.1.6.1释放

我的实现基于以下链接:

REST服务返回ResponseEntity或ResponseBody,用例是以JSONP格式返回数据

添加了控制器建议

@ControllerAdvice
public class JsonpCallbackAdvice extends AbstractJsonpResponseBodyAdvice {

    public JsonpCallbackAdvice(){
       super("Callback");
    }
}
这是REST服务的控制器

@Controller
public class AcctController {
 ...
   @RequestMapping(value = "/act/{actNum}", method = RequestMethod.GET)
public ResponseEntity<Account> getAccount(@PathVariable("actNum") Integer accountNum) throws Exception {
...
return new ResponseEntity<account>();
}
在添加ControllerAdvice之前,此异常未发生。 此外,删除@ControllerAdvice注释时也不会发生这种情况 或 组件扫描不包括ControllerAdvice类的扫描包

我尝试了SpringVersion4.2.0.RC1,但异常仍然存在

请帮助解决此异常,因为在线帮助不多。
在SPRING 4中,这似乎是一个bug,但我不确定。

您能更新您的问题并添加所有XML上下文文件吗?异常似乎与bean解析阶段有关。请注意,您不需要配置自己的Jackson MessageConverter,它是通过@EnableWebMvc或Jackson 2在类路径上为您完成的。我同意您的评论。我们似乎正在使用JacksonMessageConverter的另一个实现,这就是问题的根源。我创建了一个示例Spring应用程序,它不使用我们现有的任何类或框架,并且相同的实现也可以工作。
...
 <context:component-scan base-package="com.controllers" />
<bean name="jsonMessageConverter"
class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter" />
...
 Caused by: java.lang.ClassCastException: [Ljava.lang.String; cannot be cast to java.lang.String
at org.springframework.context.annotation.AnnotationBeanNameGenerator.determineBeanNameFromAnnotation(AnnotationBeanNameGenerator.java:91)
at org.springframework.context.annotation.AnnotationBeanNameGenerator.generateBeanName(AnnotationBeanNameGenerator.java:69)
at org.springframework.context.annotation.ClassPathBeanDefinitionScanner.doScan(ClassPathBeanDefinitionScanner.java:246)
at org.springframework.context.annotation.ComponentScanBeanDefinitionParser.parse(ComponentScanBeanDefinitionParser.java:84)
at org.springframework.beans.factory.xml.NamespaceHandlerSupport.parse(NamespaceHandlerSupport.java:74)
at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1427)
at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1417)
at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:174)
at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.doRegisterBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:144)
at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:100)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:510)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:392)