Android上的Restlet REST服务器 [英] Restlet Rest server on android

查看:449
本文介绍了Android上的Restlet REST服务器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想举办一个Android手机上简单的休息服务器获取一些数据的远程访问。
我跟着的Restlet网站上的描述,但我甚至不能得到一个简单的例子运行。

I want to host a simple rest server on an android phone to get remote access to some data. I followed the descriptions on the restlet website but I cant even get a simple example running.

我下载了Android的Restlet包,并添加了org.restlet.jar的依赖关系。

I downloaded the android restlet package and added the org.restlet.jar as dependency.

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

In my onCreate method of the activity I have added these lines to start a simple server component.

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();

最后调用抛出Exception:

The last call throws an Exception:

11月5日至20日: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)
  ...

05-20 11:06:14.040 29947-29947/com.example.restserver E/AndroidRuntime﹕ FATAL EXCEPTION: main Process: com.example.restserver, PID: 29947 java.lang.NoClassDefFoundError: com.sun.net.httpserver.HttpServer at org.restlet.engine.connector.HttpServerHelper.start(HttpServerHelper.java:68) ...

为什么Restlet框架尝试使用的httpserver从Java。这不是因为我认为Android框架的组成部分。

Why does the restlet framework tries to use the httpserver from java. This in not part of the android framework as I think.

P.S:我想通了,既然2.2的Restlet这个问题才会出现。 2.1分支为我工作。

P.S.: I figured out, that this issue only appears since restlet 2.2. The 2.1 branch works for me.

推荐答案

的Restlet的Andr​​oid的版本不应该提供基于com.sun.net因为这个类此内部HTTP服务器不可用在Android上,只有关于Java SE / EE。

The Android edition of Restlet shouldn't offer this internal HTTP server based on com.sun.net as this class isn't available on Android, only on Java SE/EE.

这是在2.1版本中使用的previous内部HTTP服务器已被移动到org.restlet.ext.nio扩展。您仍然可以使用它在2.2版本中,如果你做适当的声明。

The previous internal HTTP server that is used in version 2.1 has been moved to the org.restlet.ext.nio extension. You can still use it in version 2.2 if you do the proper declaration.

这篇关于Android上的Restlet REST服务器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆