我希望使用RestEasy框架的仅接口选项,因为它更清洁,应该可以工作。Resteasy FrameWork POST不起作用
但我在POST请求中传递参数有问题。
我发现的文档在这个例子:
@PUT
@Path("basic")
@Consumes("text/plain")
void putBasic(String body);
以及调用:
import org.jboss.resteasy.client.ProxyFactory;
// ...
// this initialization only needs to be done once per VM
RegisterBuiltin.register(ResteasyProviderFactory.getInstance());
SimpleClient client = ProxyFactory.create(SimpleClient.class, "http://localhost:8081");
client.putBasic("hello world");
我已经试过如下:
@POST
@Consumes(MediaType.TEXT_PLAIN)
@Path("http://localhost:8080/app/resource")
String postBasic(String body);
和调用:
RegisterBuiltin.register(ResteasyProviderFactory.getInstance());
RepoClient client = ProxyFactory.create(RepoClient.class, "");
client.postBasic("hi");
在调用servelet的doPost
方法上打印参数Map(并调试它)时,参数为空。我真的看不出我的方法和记录的方法之间的区别(这里是:Resteasy interface example)。
所以总结一下,只使用接口声明和代理实现,我怎样才能发送POST参数?
解决方案:这是预期的......只需要使用接收到的参数相应地声明消耗就可以了......问题是在另一个servlet中调用servlet的POST方法。
刚刚尝试过......该servlet实际上被称为...但没有请求参数 – 2012-04-19 16:00:40
您是否在不同的可执行文件中调用服务器?请注意,您创建了一个带有*空*基本URL的ProxyFactory,它是否真的通过网络连接到服务器? – 2012-04-19 16:22:35
我会检查是否在servlet中调用post方法可能是问题 – 2012-04-19 16:26:13