Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/386.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 通过嵌套数组上传jaxb bean返回状态400_Java_Json_Jaxb - Fatal编程技术网

Java 通过嵌套数组上传jaxb bean返回状态400

Java 通过嵌套数组上传jaxb bean返回状态400,java,json,jaxb,Java,Json,Jaxb,我正在使用java和glassfish开发一个restful Web服务。Web服务使用JSON。我创建了一个带有几个简单字段的jaxbbean以及其他jaxbbean的嵌套数组。我已经在下面包含了相关代码 当我只使用简单字段填充bean时,web服务接受传入的bean,对其进行处理并适当地返回 当我添加子bean的嵌套数组时,我从服务器返回状态400。。。我担心在将getter方法传递到服务器时,注释getter方法的方式可能会影响整个bean 我还添加了用于将bean推送到服务器的测试仪的代

我正在使用java和glassfish开发一个restful Web服务。Web服务使用JSON。我创建了一个带有几个简单字段的jaxbbean以及其他jaxbbean的嵌套数组。我已经在下面包含了相关代码

当我只使用简单字段填充bean时,web服务接受传入的bean,对其进行处理并适当地返回

当我添加子bean的嵌套数组时,我从服务器返回状态400。。。我担心在将getter方法传递到服务器时,注释getter方法的方式可能会影响整个bean

我还添加了用于将bean推送到服务器的测试仪的代码

以下是相关Web服务的方法签名:

@POST
@Path( "test1" )
@Consumes( MediaType.APPLICATION_JSON )
public Response createRecord( JAXB_ExampleBean track )
下面是顶级bean:

@XmlRootElement( name = "example" )
@XmlType( propOrder = { "id", "idCreator", "title", "revList" } )
public class JAXB_ExampleBean
{
private long id = 0;
private long idCreator;
private String title;
private ArrayList<JAXB_ExampleRevBean> revList;

@XmlElementWrapper( name = "exampleList" )
@XmlElement( name = "exampleRevision" )
public ArrayList<JAXB_ExampleRevBean> getRevList()
{
    return revList;
}

    // other getters/setters omitted for brevity no additional annotations on them

}
以下是检测仪代码:

WebResource webResource = client.resource( "http://example.com/resources/meta/test1" );

JAXB_ExampleBean beanToUpload = buildExampleBeanToSend();

ClientResponse response = webResource.type( "application/json" ).post( ClientResponse.class, beanToUpload );
if( response.getStatus() != 201 )
   throw new RuntimeException( "Failed : HTTP error code : " + response.getStatus() );

您应该尝试使用数组[]或列表而不是Arraylist。大多数序列化/反序列化框架不处理具体的集合类

您使用什么作为JSON绑定提供程序?如果您不确定正在使用哪个应用程序服务器?好的。。。我现在离你太近了!我删除了列表的getter方法上的两个注释,并将ArrayList转换为just list。我可以将bean推送到服务器,但是现在当列表只包含1个对象时,它失败了。。。列表中有2个或多个条目,它可以工作。。。请帮忙!!
WebResource webResource = client.resource( "http://example.com/resources/meta/test1" );

JAXB_ExampleBean beanToUpload = buildExampleBeanToSend();

ClientResponse response = webResource.type( "application/json" ).post( ClientResponse.class, beanToUpload );
if( response.getStatus() != 201 )
   throw new RuntimeException( "Failed : HTTP error code : " + response.getStatus() );