jersey关于post 表单提交及json 接受参数时能否使用同一个java类

时间:2021-01-11 19:30:27
最近在学习jersey时发现一个问题 就是post提交json数据时可以直接在类添加@Consumes(MediaType.APPLICATION_JSON)注解来直接注入到java类中,而post表单提交时需要在类的属性上添加@FormParam,这样的话有个问题就是假设我要用这个类去接受json的同时还要接收post表单提交就会有个问题,当我用post提交json时就会报错,The @FormParam is utilized when the content type of the request entity is not application/x-www-form-urlencoded,大概意思就是我用了@FormParam那么我就要传输表单格式的数据,麻烦各位大神怎么办~~

6 个解决方案

#1


我的maven

<dependency>
            <groupId>org.glassfish.jersey.ext</groupId>
            <artifactId>jersey-spring3</artifactId>
            <version>2.24.1</version>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-core</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-web</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-beans</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.glassfish.jersey.media</groupId>
            <artifactId>jersey-media-json-jackson</artifactId>
            <version>2.24.1</version>
        </dependency>

#2


注册器

package org.wt.szdt.system.api;

import org.glassfish.jersey.jackson.JacksonFeature;
import org.glassfish.jersey.server.ResourceConfig;

/**
 * Created by zhengzhaoqi on 2016/12/8.
 */
public class MyApplication extends ResourceConfig {

    public MyApplication() {

        packages("org.wt.szdt.system.api");

        register(JacksonFeature.class);

    }

}

#3


方法上的注解
@Consumes({MediaType.APPLICATION_JSON,MediaType.APPLICATION_FORM_URLENCODED})

#4


那你就只能把json作为form的一列了。比如说。 @FormParam("json")String json。这样把json字符串传递进来。

#5


但是json作为form一列传输的话就达不到我想要的效果了··我比桥奇怪的是jersey1.x能做到的到了2.x就不行了·

#6


jersey关于post 表单提交及json 接受参数时能否使用同一个java类jersey关于post 表单提交及json 接受参数时能否使用同一个java类

#1


我的maven

<dependency>
            <groupId>org.glassfish.jersey.ext</groupId>
            <artifactId>jersey-spring3</artifactId>
            <version>2.24.1</version>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-core</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-web</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-beans</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.glassfish.jersey.media</groupId>
            <artifactId>jersey-media-json-jackson</artifactId>
            <version>2.24.1</version>
        </dependency>

#2


注册器

package org.wt.szdt.system.api;

import org.glassfish.jersey.jackson.JacksonFeature;
import org.glassfish.jersey.server.ResourceConfig;

/**
 * Created by zhengzhaoqi on 2016/12/8.
 */
public class MyApplication extends ResourceConfig {

    public MyApplication() {

        packages("org.wt.szdt.system.api");

        register(JacksonFeature.class);

    }

}

#3


方法上的注解
@Consumes({MediaType.APPLICATION_JSON,MediaType.APPLICATION_FORM_URLENCODED})

#4


那你就只能把json作为form的一列了。比如说。 @FormParam("json")String json。这样把json字符串传递进来。

#5


但是json作为form一列传输的话就达不到我想要的效果了··我比桥奇怪的是jersey1.x能做到的到了2.x就不行了·

#6


jersey关于post 表单提交及json 接受参数时能否使用同一个java类jersey关于post 表单提交及json 接受参数时能否使用同一个java类