【问题标题】:RESTClient 3.5 WizTools, POST method, new data setRESTClient 3.5 WizTools、POST 方法、新数据集
【发布时间】:2016-03-26 04:35:27
【问题描述】:

我正在将 WizTools.org RESTClient 3.5 用于学校项目。 我已经写了一些 HTTP 方法。 GET 和 DELETE 运行良好。我还写了一个 POST 和一个 PUT,但不知道如何使用 restclient 执行它们。我尝试将 JSON 数据集作为字符串正文插入,但它显示 415(不支持的媒体类型)。这是您插入新数据集的方式吗?我该怎么做?

感谢您的帮助!

17:39:40,520 WARN  [org.jboss.resteasy.core.ExceptionHandler] failed to execute: javax.ws.rs.NotSupportedException: Cannot consume content type
at org.jboss.resteasy.core.registry.SegmentNode.match(SegmentNode.java:380)
at org.jboss.resteasy.core.registry.SegmentNode.match(SegmentNode.java:114)
at org.jboss.resteasy.core.registry.RootNode.match(RootNode.java:43)
at org.jboss.resteasy.core.registry.RootClassNode.match(RootClassNode.java:48)
at org.jboss.resteasy.core.ResourceMethodRegistry.getResourceInvoker(ResourceMethodRegistry.java:444)
at org.jboss.resteasy.core.SynchronousDispatcher.getInvoker(SynchronousDispatcher.java:234)
at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:171)
at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:220)
at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:56)
at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:51)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:86)
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:130)
at org.jboss.weld.probe.ProbeFilter$FilterAction.proceed(ProbeFilter.java:309)
at org.jboss.weld.probe.ProbeFilter$FilterAction.proceed(ProbeFilter.java:292)
at org.jboss.weld.probe.InvocationMonitor$Action.perform(InvocationMonitor.java:155)
at org.jboss.weld.probe.ProbeFilter$FilterAction.doFilter(ProbeFilter.java:318)
at org.jboss.weld.probe.ProbeFilter.embedInfoSnippet(ProbeFilter.java:172)
at org.jboss.weld.probe.ProbeFilter.doFilter(ProbeFilter.java:160)
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:60)
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:132)
at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:85)
at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
at org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78)
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:131)
at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)
at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60)
at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:72)
at io.undertow.security.handlers.NotificationReceiverHandler.handleRequest(NotificationReceiverHandler.java:50)
at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
at org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61)
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:282)
at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:261)
at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:80)
at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:172)
at io.undertow.server.Connectors.executeRootHandler(Connectors.java:199)
at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:778)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)

这是我的 POST 方法:

@POST
@Consumes({ APPLICATION_JSON, APPLICATION_XML, TEXT_XML })
@Produces
public Response createArtikel(@Valid Artikel artikel, @Context UriInfo uriInfo) {
    artikel.setId(KEINE_ID);

    final Artikel result = artikelBroker.createArtikel(artikel);
    if (LOGGER.isLoggable(FINEST)) {
        LOGGER.finest(result.toString());
    }

    return Response.created(getUriArtikel(result, uriInfo))
                   .build();
}

这里是 createArtikel 方法:

public Artikel createArtikel(Artikel artikel) {
    if (artikel == null) {
        return null;
    }

    em.persist(artikel);
    return artikel;     
}

【问题讨论】:

  • 你是如何暴露休息的,你是如何消耗休息的?有代码吗?
  • 我编辑了问题
  • 您需要指定您的发布请求将产生什么输出。
  • 对不起,如果我不明白,我是编程初学者..
  • 这是您正在生成的 json,因此您需要使用 @Produces 注释来指定它。

标签: java rest http http-post rest-client


【解决方案1】:

您需要明确说明您的服务正在生成 json,因此只需在 @Produces 注释中提供 APPLICATION_JSON

【讨论】:

    猜你喜欢
    • 2023-03-16
    • 1970-01-01
    • 2014-09-01
    • 1970-01-01
    • 2020-12-29
    • 1970-01-01
    • 1970-01-01
    • 2012-10-19
    • 2018-03-09
    相关资源
    最近更新 更多