Forms RestEasy:可以发布两个complexe对象吗?

Forms RestEasy:可以发布两个complexe对象吗?,forms,post,resteasy,Forms,Post,Resteasy,我正在尝试使用RestEasy和@POST注释将两个complexe对象作为参数传输 @POST @路径(“/save”) @使用(“应用程序/json”) public void save(ComplexeObjectAleph objectAleph,ComplexeObjectBeth objectBeth); 只有一个参数是正确的,但有两个-我得到异常: 原因:java.io.EOFException:由于输入结束,没有要映射到对象的内容 位于org.codehaus.jackson.

我正在尝试使用RestEasy和@POST注释将两个complexe对象作为参数传输

@POST
@路径(“/save”)
@使用(“应用程序/json”)
public void save(ComplexeObjectAleph objectAleph,ComplexeObjectBeth objectBeth);
只有一个参数是正确的,但有两个-我得到异常:

原因:java.io.EOFException:由于输入结束,没有要映射到对象的内容
位于org.codehaus.jackson.map.ObjectMapper.\u initForReading(ObjectMapper.java:2775)
位于org.codehaus.jackson.map.ObjectMapper.\u readValue(ObjectMapper.java:2691)
位于org.codehaus.jackson.map.ObjectMapper.readValue(ObjectMapper.java:1315)
位于org.codehaus.jackson.jaxrs.JacksonJsonProvider.readFrom(JacksonJsonProvider.java:419)
在org.jboss.resteasy.core.interception.MessageBodyReaderContextImpl.procedure(MessageBodyReaderContextImpl.java:105)
位于org.jboss.resteasy.plugins.interceptors.encoding.GZIPDecodingInterceptor.read(GZIPDecodingInterceptor.java:63)
在org.jboss.resteasy.core.interception.MessageBodyReaderContextImpl.procedure(MessageBodyReaderContextImpl.java:108)
位于org.jboss.resteasy.core.MessageBodyParameterInjector.inject(MessageBodyParameterInjector.java:169)
位于org.jboss.resteasy.core.MethodInjectorImpl.injectArguments(MethodInjectorImpl.java:136)
位于org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:159)
位于org.jboss.resteasy.core.ResourceMethod.invokeOnTarget(ResourceMethod.java:257)
位于org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:222)
位于org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:211)
位于org.jboss.resteasy.core.SynchronousDispatcher.getResponse(SynchronousDispatcher.java:542)
... 还有22个

例如:

这是可能的,但要小心

这两个参数必须用
@Form
注释

@Path(“游戏区”)
公共界面播放区域界面{
@职位
@路径(“保存”)
@产生(MediaType.APPLICATION_JSON)
public void save(@Form ComplexeObjectAleph objectAleph,@Form ComplexeObjectBeth objectBeth);
}
并且这两个类的属性必须具有
@FormParam(…)
注释:

公共类ComplexeObjectAleph{
@FormParam(“aleph”)
公共字符串aleph;
}
公共类ComplexeObjectBeth{
@FormParam(“贝思”)
公共字符串;
}

但是要小心,
@FormParam(…)
的值必须不相等,否则RestEasy无法正确解析数据。这可能是RestEasy的缺陷。

你不能这么做。请参阅详细信息:当然!我能做到。看黄色的答案。