1

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

"GET /contacts/123 HTTP/1.1" 404 598 - "Restlet-Framework/2.1snapshot,gzip(gfe)"
javax.servlet.ServletContext log: ContactRestlet: [Restlet] Attaching application: com.sem.server.rest.ContactApp@1bbc779 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>

联系应用

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;
    }
}
4

1 回答 1

3

Dev-Mailinglist 友好地回答了我的问题:

这里

于 2010-10-07T10:06:11.433 回答