泽西休息api不在计算引擎tomcat 7上工作

时间:2018-02-22 11:44:27

标签: tomcat jersey google-compute-engine

泽西休息api服务在localhost tomcat7上工作正常,但是当我尝试在谷歌计算引擎上的tomcat8上部署时它不工作我甚至尝试过tomcat7但仍然找不到404资源(它在localhost tomcat7上运行正常)plz帮帮我:(

这是我的web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>RestTest</display-name>
  <welcome-file-list>
    <welcome-file>Hello.jsp</welcome-file>

  </welcome-file-list>
 <servlet>
    <servlet-name>javax.ws.rs.core.Application</servlet-name>  
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>javax.ws.rs.core.Application</servlet-name>
    <url-pattern>/rest/*</url-pattern>
  </servlet-mapping>

  </web-app>

这是我的休息服务测试类

\ package com.services;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import com.obj.Resp;

@Path("/say")
public class Test {

    @Path("/hello")
    @GET
    @Produces({MediaType.APPLICATION_JSON}) 
    public static Resp name() {
      Resp res=new Resp();
      res.setName("name");
      res.setPass("pass");
      System.out.println("Testing");
        return res;

    }

    @GET
    @Produces({ MediaType.TEXT_HTML, MediaType.TEXT_PLAIN })
    public static String defaul() {
        return "Hello Rest Api";
    }


}

1 个答案:

答案 0 :(得分:0)

上下文路径可能有问题。 本地入口点类似于http://localhost:8888/rest/yourEntry

通过您的配置

 <servlet-mapping>
    <servlet-name>javax.ws.rs.core.Application</servlet-name>
    <url-pattern>/rest/*</url-pattern>
 </servlet-mapping>

尝试将其更改为:

<servlet-mapping>
   <servlet-name>javax.ws.rs.core.Application</servlet-name>
   <url-pattern>rest/*</url-pattern>
</servlet-mapping>

希望它能解决您的问题