【问题标题】:Restful web service throws servlet.init() exceptionRestful Web 服务抛出 servlet.init() 异常
【发布时间】:2017-06-15 10:32:03
【问题描述】:

这是我的宁静网络服务,其中声明了多个方法。 当我声明这两种方法,即 GET 和 POST 时,它会抛出 servlet.init() 异常。 这是异常的根本原因:

com.sun.jersey.api.container.ContainerException:在 rest.DatabaseOperations 类中发现致命问题。有关详细信息,请参阅日志。

但是当我只声明 post 方法时,它可以完美运行。

@Path("/databaseOperation")
public class DatabaseOperations {


@Path("/select")
@GET
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public String select(String data) {
    } catch (Exception exception) {
        exception.printStackTrace();
    }
}

@Path("/insert")
@POST
@Consumes(MediaType.APPLICATION_JSON)
public void insert(String feed) {
    } catch (Exception exception) {
    }
}
}

【问题讨论】:

  • 你的try{} 块在哪里?
  • try 块在那里,我只是忘记放这里了。

标签: java web-services rest servlets jax-rs


【解决方案1】:

GET 方法不包含有效负载,因此此注释不正确

@Consumes(MediaType.APPLICATION_JSON)

你可能需要类似的东西

@Path("/select")
@GET
@Produces(MediaType.APPLICATION_JSON)
public String select(@QueryParam("data")String data) {

注意:我认为缺少 try 是一个错字

【讨论】:

  • 但我必须通过 angularJS 从网页发送数据。那我怎么把它弄到这里来呢?
  • GET 请求使用 URL yourserver.com/select?data=xxxx 中的查询参数发送数据。如果您需要将 JSON 发送到您的服务器,请使用 POST 请求。此外,您可能需要在服务器端解析 JSON。使用 bean 更改 String 参数。见stackoverflow.com/questions/7693669/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-22
  • 2012-03-06
  • 1970-01-01
  • 2011-01-31
  • 1970-01-01
  • 2017-06-25
相关资源
最近更新 更多