2010-10-05 87 views
1

我无法使tutorial示例在GAE上工作。 AppEngine日志说:Restlet教程示例

"GET /contacts/123 HTTP/1.1" 404 598 - "Restlet-Framework/2.1snapshot,gzip(gfe)" 
javax.servlet.ServletContext log: ContactRestlet: [Restlet] Attaching application: [email protected] to URI: /contacts/123 
This request caused a new process to be started for your application, and thus caused your application code to be loaded for the first time. This request may thus take longer and use more CPU than a typical request for your application. 

我不能从我的android客户端或浏览器为此事达成它。任何帮助表示赞赏!

的web.xml如下

<web-app xmlns="http://java.sun.com/xml/ns/javaee" version="2.5"> 

<context-param> 
    <param-name>org.restlet.clients</param-name> 
    <param-value>CLAP FILE</param-value> 
    </context-param> 

<servlet> 
    <servlet-name>PoiServiceImpl</servlet-name> 
    <servlet-class>com.sem.server.PoiServiceImpl</servlet-class> 
</servlet> 

<servlet> 
    <servlet-name>PoiRestlet</servlet-name> 
    <servlet-class>org.restlet.ext.servlet.ServerServlet</servlet-class> 
     <init-param> 
     <param-name>org.restlet.application</param-name> 
     <param-value>com.sem.server.rest.PoiApp</param-value> 
     </init-param> 
</servlet> 

<servlet> 
    <servlet-name>ContactRestlet</servlet-name> 
    <servlet-class>org.restlet.ext.servlet.ServerServlet</servlet-class> 
     <init-param> 
     <param-name>org.restlet.application</param-name> 
     <param-value>com.sem.server.rest.ContactApp</param-value> 
     </init-param> 
</servlet> 

<servlet> 
    <servlet-name>CatRestlet</servlet-name> 
    <servlet-class>org.restlet.ext.servlet.ServerServlet</servlet-class> 
     <init-param> 
     <param-name>org.restlet.application</param-name> 
     <param-value>com.sem.server.rest.CatApp</param-value> 
     </init-param> 
</servlet> 

<servlet-mapping> 
    <servlet-name>PoiServiceImpl</servlet-name> 
    <url-pattern>/sem10/PoiService</url-pattern> 
</servlet-mapping> 

<servlet-mapping> 
    <servlet-name>PoiRestlet</servlet-name> 
    <url-pattern>/poi</url-pattern> 
</servlet-mapping> 

<servlet-mapping> 
    <servlet-name>ContactRestlet</servlet-name> 
    <url-pattern>/contacts/123</url-pattern> 
</servlet-mapping> 

<servlet-mapping> 
    <servlet-name>CatRestlet</servlet-name> 
    <url-pattern>/cat</url-pattern> 
</servlet-mapping> 


    <!-- Default page to serve --> 
    <welcome-file-list> 
    <welcome-file>Sem10.html</welcome-file> 
    </welcome-file-list> 

</web-app> 

ContactApp

import java.io.File;  
import org.restlet.Application; 
import org.restlet.Component; 
import org.restlet.Restlet; 
import org.restlet.data.LocalReference; 
import org.restlet.data.Protocol; 
import org.restlet.resource.Directory; 
import org.restlet.routing.Router; 

public class ContactApp extends Application { 

/** 
* When launched as a standalone application. 
* 
* @param args 
* @throws Exception 
*/ 
public static void main(String[] args) throws Exception { 
    Component component = new Component(); 
    component.getClients().add(Protocol.FILE); 
    component.getServers().add(Protocol.HTTP, 8080); 
    component.getDefaultHost().attach(new ContactApp()); 
    component.start(); 
} 

@Override 
public Restlet createInboundRoot() { 
    Router router = new Router(getContext()); 
    getConnectorService().getClientProtocols().add(Protocol.FILE); 

// Serve the files generated by the GWT compilation step. 
    File warDir = new File(""); 
    if (!"war".equals(warDir.getName())) { 
     warDir = new File(warDir, "war/"); 
    } 

    Directory dir = new Directory(getContext(), LocalReference 
      .createFileReference(warDir)); 
    router.attachDefault(dir); 


     router.attach("/contacts/123", ContactServResource.class); 

     return router; 
    } 
} 

回答

3

的开发,邮件列表亲切回答我的问题:

here