当前位置: 首页 > 知识库问答 >
问题:

为什么未调用POSTendpoint但调用GETendpoint-jersey容器grizzly2

堵宪
2023-03-14

我不知道为什么我的GETendpoint被调用,但我的POSTendpoint不工作。当我调用curl-v-X GEThttp://localhost:8080/myresource/test123时,它成功地返回hello

但是当我打电话的时候

curl -v -X POST \
  http://localhost:8080/myresource \
  -H 'Content-Type: application/json' \
  -d '{"test": "testvalue"}'

我一直得到这样的回应:

* Connected to localhost (::1) port 8080 (#0)

> POST /myresource HTTP/1.1
> Host: localhost:8080
> User-Agent: curl/7.54.0
> Accept: */*
> Content-Type: application/json
> Content-Length: 21
> 
* upload completely sent off: 21 out of 21 bytes
< HTTP/1.1 500 Request failed.
< Content-Type: text/html;charset=ISO-8859-1
< Connection: close
< Content-Length: 1031
< 
* Closing connection 0
<html><head><title>Grizzly 2.4.0</title><style><!--div.header {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#003300;font-size:22px;-moz-border-radius-topleft: 10px;border-top-left-radius: 10px;-moz-border-radius-topright: 10px;border-top-right-radius: 10px;padding-left: 5px}div.body {font-family:Tahoma,Arial,sans-serif;color:black;background-color:#FFFFCC;font-size:16px;padding-top:10px;padding-bottom:10px;padding-left:10px}div.footer {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#666633;font-size:14px;-moz-border-radius-bottomleft: 10px;border-bottom-left-radius: 10px;-moz-border-radius-bottomright: 10px;border-bottom-right-radius: 10px;padding-left: 5px}BODY {font-family:Tahoma,Arial,sans-serif;color:black;background-color:white;}B {font-family:Tahoma,Arial,sans-serif;color:black;}A {color : black;}HR {color : #999966;}--></style> </head><body><div class="header">Request failed.</div><div class="body">Request failed.</div><div class="footer">Grizzly 2.4.0</div></body></html>%

这是我的密码

import javax.ws.rs.*
import javax.ws.rs.core.MediaType
import javax.ws.rs.core.Response


@Path("myresource")
class HelloWorldResource {


    @POST
    @Consumes(MediaType.APPLICATION_JSON)
    @Produces(MediaType.APPLICATION_JSON)
    fun createMessage(testPost: String): Response {
        return Response.status(200).entity("helllo post").build()
    }


    @GET
    @Path("{testGet}")
    @Produces(MediaType.APPLICATION_JSON)
    fun getMessage(@PathParam("testGet") testGet: String): Response {
        return Response.status(200).entity("hello").build()
    }
}



共有1个答案

钮长恨
2023-03-14

如果没有看到实际的底层异常,很难确定,但很可能您遇到了与Jersey类似的问题:返回一个字符串列表,其中字符串类型和媒体类型之间不匹配。APPLICATION_JSON生成/使用声明。如果您处理的是原始字符串,我建议使用MediaType。纯文本,或者让post body和返回值是一个可以表示为非原始字符串json对象的实体(即,封装在{}中的对象),并确保jackson提供者已在jersey中注册。

 类似资料:
  • 问题内容: 我正在我的应用程序上执行以下操作,但是我无法获取routeChangeSuccess事件。 如下所示的非常简单的html也会失败 但是,当我单击链接时,我看到视图正在更新,但是从未触发$ routeChangeSucces事件。 有什么我想念的吗? *我遇到的 *另一个问题 是,可以挂接一个事件以知道视图已准备好,这样我就可以开始一些其他处理,例如document.ready()。 p

  • 问题内容: 在过去的两天里,我试图 理解 Java如何处理图形,但是在此方面却惨败。我的主要问题是确切了解如何/何时调用paint()(或较新的paintComponent())。 在下面的代码中,我将看到何时创建事物,除非我自己手动添加对它的调用或JFrame.paintAll()/ JFrame.paintComponents()的调用,否则永远不会调用paintComponent()。 我将

  • 我有一个JPA@Entity类,它现在已经使用@Prepersisted很长一段时间了。今天,我想在需要实体ID的地方添加一些功能。这个ID是在持久化过程中由数据库中的HIBERNATE_SEQUENCE生成的。它通常设置在em.persist(实体)之后。

  • 我有如下测试方法: 是我要模拟并返回空映射的方法。但我收到的失败信息说 需要但未调用MyClass.MethodUsedInMethodBeingTest() .

  • 问题内容: 我偶然发现了一个问题,可以总结如下: 当我手动创建线程(即通过实例化)时,将适当地调用它。但是,当我与一起使用时,处理程序将被忽略。我错过了什么? 我期望:消息“未捕获的异常…”的三倍 我得到:消息一次(由手动创建的线程触发)。 在Windows 7和Mac OS X 10.5上用Java 1.6复制。 问题答案: 因为异常不会被捕获。 您的ThreadFactory生成的线程没有直接

  • 问题内容: 我通过扩展和实现和创建了自己的Android帐户身份验证器。其中的某些方法由调用,而其他方法则没有。 这很好用: 当我打电话给我时,问题就发生了。AccountManager不会调用我在中定义的方法。它调用其他一些默认方法,该方法仅在启动之前检查是否存在。 这是行不通的。它没有调用我的方法: AuthenticatorService 我创建了服务并定义了。否则不应该工作。 编辑: 我在