Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Maven 在Jersey/GWT应用程序中处理Post请求_Maven_Gwt_Jersey 2.0 - Fatal编程技术网

Maven 在Jersey/GWT应用程序中处理Post请求

Maven 在Jersey/GWT应用程序中处理Post请求,maven,gwt,jersey-2.0,Maven,Gwt,Jersey 2.0,我正在尝试使用基于Jersey的servlet(我现在正在学习)向项目中添加一些基于GWT的REST端点。 通过在web.xml文件中添加一些Maven依赖项和servlet声明,我使其正常工作。 我的问题现在是hanling POST请求,因为传入的http主体在映射它的类中没有被解组。 让请求工作 下面是我的虚拟类,它将包含所有RESTFul控制器: @Path("hellos") public class XlodAPIServiceImpl { @XmlRootElement

我正在尝试使用基于Jersey的servlet(我现在正在学习)向项目中添加一些基于GWT的REST端点。 通过在web.xml文件中添加一些Maven依赖项和servlet声明,我使其正常工作。 我的问题现在是hanling POST请求,因为传入的http主体在映射它的类中没有被解组。 让请求工作

下面是我的虚拟类,它将包含所有RESTFul控制器:

@Path("hellos")
public class XlodAPIServiceImpl {

  @XmlRootElement
  public class Request{

      @XmlElement
      private String message;

      public Request(String message) {
          super();
          this.message = message;
      }
      public Request(){}
      public String getMessage() {
          return message;
      }
      public void setMessage(String message) {
          this.message = message;
      }
  }

  @POST
  @Produces("application/json")
  @Consumes("application/json")
  public Collection<String> get(Request request) {
      try {
          return new ArrayList<String>();
      } catch (Exception e) {
          // TODO: handle exception
          e.printStackTrace();
      }
return new ArrayList<String>();
  }
}
@Path(“你好”)
公共类XlodAPIServiceImpl{
@XmlRootElement
公共类请求{
@XmlElement
私有字符串消息;
公共请求(字符串消息){
超级();
this.message=消息;
}
公共请求(){}
公共字符串getMessage(){
返回消息;
}
公共无效设置消息(字符串消息){
this.message=消息;
}
}
@职位
@生成(“应用程序/json”)
@使用(“应用程序/json”)
公共集合获取(请求){
试一试{
返回新的ArrayList();
}捕获(例外e){
//TODO:处理异常
e、 printStackTrace();
}
返回新的ArrayList();
}
}
服务器总是给我500,没有任何stacktrace/有用的提示。 iussue可能与JSON解组有关,因为GET请求和JSON响应集的工作与预期的一样

这是我在pom.xml文件中添加的内容:

<dependency>
    <groupId>javax.ws.rs</groupId>
    <artifactId>javax.ws.rs-api</artifactId>
    <version>2.0</version>
</dependency>
<dependency>
    <groupId>org.glassfish.jersey.containers</groupId>
    <!-- if your container implements Servlet API older than 3.0, use "jersey-container-servlet-core"  -->
    <artifactId>jersey-container-servlet-core</artifactId>
    <version>2.7</version>
</dependency>
<dependency>
    <groupId>org.glassfish.jersey.media</groupId>
    <artifactId>jersey-media-json-jackson</artifactId>
    <version>2.7</version>
</dependency>
<dependency>
    <groupId>com.fasterxml.jackson.jaxrs</groupId>
    <artifactId>jackson-jaxrs-json-provider</artifactId>
    <version>2.3.2</version>
</dependency>

javax.ws.rs
javax.ws.rs-api
2
org.glassfish.jersey.containers
jersey容器servlet核心
2.7
org.glassfish.jersey.media
泽西媒体公司
2.7
com.fasterxml.jackson.jaxrs
jackson jaxrs json提供程序
2.3.2
下面是web.xml:

<servlet>
    <servlet-name>MyApplication</servlet-name>
    <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
    <init-param>
        <param-name>jersey.config.server.provider.packages</param-name>
        <param-value>
            edu.stanford.bmir.protege.web.server
        </param-value>
    </init-param>       
</servlet>
<servlet-mapping>
    <servlet-name>MyApplication</servlet-name>
    <url-pattern>/api/*</url-pattern>
</servlet-mapping>

我的申请
org.glassfish.jersey.servlet.ServletContainer
jersey.config.server.provider.packages
edu.stanford.bmir.protege.web.server
我的申请
/原料药/*
建议? 提前感谢,


FB

尝试发出
请求
内部类
静态
。您还应该注册ExceptionMapper并记录消息。并在测试模式下打印异常。