Java中的GAE Restful Web服务

Java中的GAE Restful Web服务,java,web-services,google-app-engine,rest,Java,Web Services,Google App Engine,Rest,我想用java为google app engine开发restful web服务。我使用的工具是 Eclipse Kepler Service Release 2 (Build id: 20140224-0627) Google AppEngine Java SDK 1.9.2 我使用了Jersey的许多版本,例如1.8、1.5等。如果我在本地服务器上运行该项目,它可以正常工作,但当我在google应用程序引擎上部署它时,我可以打开欢迎网页,但无法访问web服务 正如链接中提到的,GAE支持J

我想用java为google app engine开发restful web服务。我使用的工具是

Eclipse Kepler Service Release 2 (Build id: 20140224-0627)
Google AppEngine Java SDK 1.9.2
我使用了Jersey的许多版本,例如1.8、1.5等。如果我在本地服务器上运行该项目,它可以正常工作,但当我在google应用程序引擎上部署它时,我可以打开欢迎网页,但无法访问web服务

正如链接中提到的,GAE支持Jersey 1.5,但当我在项目中导入这些jars文件时,我无法在GAE上部署它

我不知道该用哪种版本的球衣 Google AppEngine Java SDK 1.9.2 或者我应该使用其他版本的SDK

我的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"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">

    <display-name>com.cit.cittracker</display-name>
    <servlet>
        <servlet-name>Sample Web Service</servlet-name>
        <servlet-class>
            com.sun.jersey.spi.container.servlet.ServletContainer
        </servlet-class>
        <init-param>
            <param-name>com.sun.jersey.config.property.packages</param-name>
            <param-value>com.cit.cittracker</param-value>
        </init-param>
        <init-param> 
            <param-name>com.sun.jersey.config.feature.DisableWADL</param-name> 
            <param-value>true</param-value> 
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>Sample Web Service</servlet-name>
        <url-pattern>/restservices/*</url-pattern>
    </servlet-mapping>

    <welcome-file-list>
        <welcome-file>index.html</welcome-file>
    </welcome-file-list>
</web-app>

我在
googleappenginesdk1.8.8
中使用了
Jersey 1.18
,没有任何问题。尝试使用这些版本,一切正常。

错误消息

java.lang.IncompatibleClassChangeError: Implementing class
这应该是一条线索——虽然它没有太大帮助,但它可能意味着在类路径的某个地方,应用程序已经设法加载了一个类及其接口,但它们是不兼容的

在错误日志的上面一点:

WARNING: failed com.google.appengine.tools.development.DevAppEngineWebAppContext@7adb5354{/,B:\Programming\Java EE\CIT Tracker Web Service\war}: java.lang.IncompatibleClassChangeError: Implementing class
看起来它在本地windows驱动器上使用了一个路径,其中有一个空间-不要在路径中使用空间,Microsoft允许从Windows95使用它,并且从那以后就导致了问题,并且在部署时不指定本地驱动器的路径-它需要与应用程序相关


希望这能有所帮助,抱歉不能说得更具体。

当您尝试访问web服务时,日志中会出现什么错误?另外,请尝试Jersey的最新版本:1.18可能由于某些原因服务器没有预热。这可能会发生。本地服务器和生产服务器之间存在一些差异。检查日志,尤其是预热请求。然后检查实例是否处于活动状态。也许你已经超过了免费版本的限制。顺便说一句,最新版本的泽西是2.7。但为了安全起见,请使用2.5。最新的一个有一些问题,与现金和没有修复可能无法正常工作或根本不工作:PJersey 1.18是不工作的。现在我将尝试球衣2.5。我尝试了球衣1.17和2.5,但没有运气。我用错误日志编辑了我的问题
HTTP ERROR: 404

Problem accessing /. Reason:

    NOT_FOUND
Powered by Jetty://
java.lang.IncompatibleClassChangeError: Implementing class
WARNING: failed com.google.appengine.tools.development.DevAppEngineWebAppContext@7adb5354{/,B:\Programming\Java EE\CIT Tracker Web Service\war}: java.lang.IncompatibleClassChangeError: Implementing class