开发者社区> 问答> 正文

spring+cxf开发Restful接口关于Json数据的传输 400 请求报错 

最开始我用springMvc做接口,前端可以通过post一个json格式的字符串,到后端就自动拼装成我想要的java对象了,需要设置一个转换器:

<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
    <property name="messageConverters">
    <list>
        <bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter" />
    <st>
    </property>
</bean>

这样就可以通过js来传json数据:

function addUser(){
		var jsondata = {"username":"hahaha","password":"fsd"}; 
		$.ajax({ 
            type:"POST", 
            url:"/lotteryproject/services/rest/sample/hahaha", 
            dataType:"json",      
            contentType:"application/json",               
            data:jsondata, 
            success:function(data){ 
                alert("添加用户成功!");                       
            } 
         });

然后请求也能正确返回一个json对象,测试正常

然后我换了spring+cxf的方式来开发restful接口,接口的定义如下:

@POST
    @Path("/hahaha")
    @Produces("application/json")
    public User regedit(User ut);

我通过设置jsonProvider使其能够在response的时候返回一个json格式的数据且测试成功:

<bean id="jsonProvider" class="org.codehaus.jackson.jaxrs.JacksonJsonProvider">
</bean> 

<jaxrs:providers>
   <ref bean="jsonProvider"/>     	        	   
</jaxrs:providers>

但是在请求的时候,我怎么才能传一个json字符串 然后自动转换为User类型??

展开
收起
kun坤 2020-05-29 15:54:13 933 0
1 条回答
写回答
取消 提交回答
  • 搞定了
    换个provider就行了

    <jaxrs:providers> <bean class="com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider"/> </jaxrs:providers>
    包在这里,缺哪个下哪个(好像有些LOW) http://repo1.maven.org/maven2/com/fasterxml/jackson/
    或者用maven管理依赖 自动下 ######测试一下######测一下

    2020-05-29 15:54:20
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
云栖社区特邀专家徐雷Java Spring Boot开发实战系列课程(第20讲):经典面试题与阿里等名企内部招聘求职面试技巧 立即下载
微服务架构模式与原理Spring Cloud开发实战 立即下载
阿里特邀专家徐雷Java Spring Boot开发实战系列课程(第18讲):制作Java Docker镜像与推送到DockerHub和阿里云Docker仓库 立即下载