Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用XML提供完整服务(需要在JSON对象之外进行封装)_Java_Xml_Json_Rest_Jersey - Fatal编程技术网

Java 使用XML提供完整服务(需要在JSON对象之外进行封装)

Java 使用XML提供完整服务(需要在JSON对象之外进行封装),java,xml,json,rest,jersey,Java,Xml,Json,Rest,Jersey,我试图用Java和Jersey一起实现restful Web服务。 要在客户端和服务器端之间进行通信,我需要注意XML。 我已经试过JSON了 使用JSON时,封装在POJO对象中,如: @XmlRootElement public class MyPojo { public int a; public int[] b; } 然后我在剩下的班上得了个头球 public String classname(MyPojo p) 但我需要一个像这样的头球 public String

我试图用Java和Jersey一起实现restful Web服务。 要在客户端和服务器端之间进行通信,我需要注意XML。 我已经试过JSON了

使用JSON时,封装在POJO对象中,如:

@XmlRootElement
public class MyPojo {
    public int a;
    public int[] b;
}
然后我在剩下的班上得了个头球

public String classname(MyPojo p)
但我需要一个像这样的头球

public String classname(int a, int [] b)
通过读取Rest标题自动创建表单元素。 一个例子告诉我:

@Consumes("application/xml")
public classname methodname(@QueryParam("a") Integer a, @QueryParam("b") IntArray b)
应该有用。
问题:如何为该方法创建XML请求(如XML中的JSON.stringify())?有没有更好的办法

不确定我是否理解这个问题,但我会尝试提供一些提示-希望至少其中一些是相关的。如果不是,请分享更多关于你的应用程序的信息(例如,这是GET还是POST请求?为什么有两个单独的参数很重要,等等)

如果您需要在请求实体中发送XML或JSON(例如,在POST请求中),则不可能在多个参数中检索这些参数-您必须像上面那样使用单个对象参数。您可以执行以下操作:

@POST
@Consumes("application/xml")
public ClassName postMethod(MyPojo p) {
    return postMethod(p.a, p.b);
}

public ClassName postMethod(int a, int[] b) {
    // do something
}
@POST
@Consumes("application/x-www-form-urlencoded")
public ClassName postMethod(@FormParam("a") Integer a, @FormParam("b") String b /*I think arrays are not supported - will have to parse it yourself*/) {
    // do something
}
或者,如果您真的不需要XML/JSON,如果您使用HTML表单发布,通常会执行以下操作:

@POST
@Consumes("application/xml")
public ClassName postMethod(MyPojo p) {
    return postMethod(p.a, p.b);
}

public ClassName postMethod(int a, int[] b) {
    // do something
}
@POST
@Consumes("application/x-www-form-urlencoded")
public ClassName postMethod(@FormParam("a") Integer a, @FormParam("b") String b /*I think arrays are not supported - will have to parse it yourself*/) {
    // do something
}