Android上的Restlet Rest服务器

时间:2014-05-20 09:11:37

标签: android restlet restlet-2.0

我想在Android手机上托管一个简单的休息服务器,以便远程访问某些数据。 我按照restlet网站上的描述进行了操作,但我甚至无法运行一个简单的示例。

我下载了android restlet包并添加了org.restlet.jar作为依赖。

在我的onCreate活动方法中,我添加了这些行来启动一个简单的服务器组件。

Component serverComponent = new Component();
serverComponent.getServers().add(Protocol.HTTP, 80);  
final Router router = new Router(serverComponent.getContext().createChildContext());  
router.attach("/gamedata", GameDataResourceServer.class);  
serverComponent.getDefaultHost().attach(router);  
serverComponent.start();

最后一次调用抛出异常:

  

05-20 11:06:14.040 29947-29947 / com.example.restserver   E / AndroidRuntime:致命异常:主要       处理:com.example.restserver,PID:29947       java.lang.NoClassDefFoundError:com.sun.net.httpserver.HttpServer               在org.restlet.engine.connector.HttpServerHelper.start(HttpServerHelper.java:68)   ...

为什么restlet框架尝试使用java中的httpserver。这不是我认为的Android框架的一部分。

P.S。:我发现,这个问题仅在重新安装2.2后出现。 2.1分支对我有用。

1 个答案:

答案 0 :(得分:1)

Restlet的Android版本不应该基于com.sun.net提供此内部HTTP服务器,因为此类在Android上不可用,仅适用于Java SE / EE。

2.1版中使用的上一个内部HTTP服务器已移至org.restlet.ext.nio扩展名。如果你做了适当的声明,你仍然可以在2.2版本中使用它。