2015-11-06 63 views
1

我见过一些关于这个主题的帖子,但他们没有帮我找到问题。我试图让泽西2.22 GAE SDK 25年9月1日去的,但我不断收到404泽西岛和谷歌应用程序引擎(GAE)不适合我

控制台说:

Nov 05, 2015 4:02:57 PM org.glassfish.jersey.server.ServerRuntime$Responder mapException 
FINE: WebApplicationException (WAE) with no entity thrown and no ExceptionMappers have been found for this WAE. Response with status 404 is directly generated from the WAE. 
javax.ws.rs.NotFoundException: HTTP 404 Not Found 
    at org.glassfish.jersey.server.ServerRuntime$2.run(ServerRuntime.java:323) 

我的类看起来是这样的:

package com.jt.jjbackend; 

import javax.ws.rs.GET; 
import javax.ws.rs.Path; 
import javax.ws.rs.Produces; 
import javax.ws.rs.core.MediaType; 

@Path("/hello") 
public class JJServlet { 

    @GET 
    @Produces(MediaType.TEXT_PLAIN) 
    public String sayHello(){ 
     return "Hello"; 
    } 
} 

这里是我的web.xml:

<?xml version="1.0" encoding="utf-8" standalone="no"?><web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.5" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> 

    <servlet> 
     <servlet-name>jersey</servlet-name> 
     <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class> 
     <init-param> 
      <param-name>com.sun.jersey.config.property.packages</param-name> 
      <param-value>com.jt.jjbackend</param-value> 
     </init-param> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 

    <servlet-mapping> 
     <servlet-name>jersey</servlet-name> 
     <url-pattern>/rest/*</url-pattern> 
    </servlet-mapping> 

</web-app> 

我以前http://localhost:8888/rest/hello我认为这是正确的,因为我得到一个不同的当我输入一个虚假链接时,控制台出现错误。我还添加了一个正常的测试servlet,它工作得很好。

我在做什么错或什么是俯瞰?非常感谢您的帮助。

斯蒂芬

回答

1

变化com.sun.jersey.config.property.packagesjersey.config.server.provider.packages在web.xml。前者是泽西1.x,后者是2.x.它们在各自的版本中表示相同的内容,但它们不可互换。

+0

非常感谢。而已。抱歉发布这样一个愚蠢的问题。另一方面,我会期待一个更有用的错误信息。再次感谢! – Stephan

+0

@Stephan在大多数情况下,在启动时,服务器中会记录一个异常,表示没有注册根资源类。我不知道你是否得到了。但通常这是一个迹象,如果你知道你拥有资源类,那么在配置中会出现一些错误。但是你是对的,如果你在启动时没有得到这个错误信息,很难说出404 –

+0

的原因。不幸的是它只记录了问题修复后发现的资源: “根资源类:\t \t com .jt.jjbackend.JJServlet“ 否则根本就没有关于根资源的信息。 – Stephan