我无法从Javalin的context对象(如context.formParam、context.body()、context.bodyAsClass() )获得请求体
我尝试过这样做,我可以得到请求体,我直接使用HttpServletRequest来获取请求体
public void addPerson(Context ctx){
Map<String, Object> map = new HashMap<>();
try {
String name = ctx.req.getParameter("person_name");
String address = ctx.req.getParameter("person_address");
personList.add(new Person(name,address));
map.put("status",200);
map.put("data","Success ");
ctx.json(map);
}catch (Exception ex){
map.put("status",500);
map.put("data","Fail");
ctx.status(500).json(map);
}
}如果我将ctx.req.getParameter更改为ctx.formBody,服务器日志中将出现错误消息
Exception occurred while servicing http-request
java.lang.NoSuchMethodError: kotlin.io.ByteStreamsKt.readBytes(Ljava/io/InputStream;)[B
at io.javalin.http.CachedRequestWrapper$cachedBytes$2.invoke(CachedRequestWrapper.kt:21) ~[javalin-3.0.0.jar:na]
at io.javalin.http.CachedRequestWrapper$cachedBytes$2.invoke(CachedRequestWrapper.kt:16) ~[javalin-3.0.0.jar:na]
at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74) ~[kotlin-stdlib-1.2.71.jar:1.2.71-release-64 (1.2.71)]
at io.javalin.http.CachedRequestWrapper.getCachedBytes(CachedRequestWrapper.kt) ~[javalin-3.0.0.jar:na]
at io.javalin.http.CachedRequestWrapper.getInputStream(CachedRequestWrapper.kt:31) ~[javalin-3.0.0.jar:na]
at io.javalin.http.Context.bodyAsBytes(Context.kt:118) ~[javalin-3.0.0.jar:na]
at io.javalin.http.Context.body(Context.kt:108) ~[javalin-3.0.0.jar:na]
at...发布于 2019-06-20 21:58:17
看起来您使用的是较旧版本的Kotlin,您应该升级到1.3.X。
https://stackoverflow.com/questions/56616534
复制相似问题