- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有同样的问题:http://restlet.tigris.org/ds/viewMessage.do?dsForumId=4447&dsMessageId=2838513
我尝试制作一个非常简单的应用程序,在 GAE 和 android 之间进行通信,但我遇到了同样的问题。
我有 2.1 Snapshot (2012-01-15) android 版本我有 2.1 Snapshot (2012-01-15) gae 版本
在android的类路径中我有:
我有一个与我的 GAE 应用程序共享的源文件夹,用于共享资源和 bean
在 GAE 的类路径中,我有: * org.reSTLet.ext.jackson * 组织.reSTLet.ext.json * org.reSTLet.ext.servlet * 组织.reSTLet * jackson -all.1.9.3
这是我的 web.xml :
<servlet-name>RestletServlet</servlet-name>
<servlet-class>org.restlet.ext.servlet.ServerServlet</servlet-class>
<init-param>
<param-name>org.restlet.application</param-name>
<param-value>com.binomed.server.rest.RestletApplication</param-value>
</init-param>
</servlet>
<!-- Catch all requests -->
<servlet-mapping>
<servlet-name>RestletServlet</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
这是共享代码:
package com.binomed.client.rest;
import org.restlet.resource.Get;
import com.binomed.client.rest.dto.RestletObjectA;
public interface IRestletService {
@Get
RestletObjectA getMessage() throws Exception;
}
package com.binomed.client.rest.dto;
import java.io.Serializable;
import java.util.List;
public class RestletObjectA implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
public RestletObjectA() {
super();
}
private RestletObjectB objectB;
private List listObjectB;
private String name;
public RestletObjectB getObjectB() {
return objectB;
}
public void setObjectB(RestletObjectB objectB) {
this.objectB = objectB;
}
public List getListObjectB() {
return listObjectB;
}
public void setListObjectB(List listObjectB) {
this.listObjectB = listObjectB;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
package com.binomed.client.rest.dto;
import java.io.Serializable;
public class RestletObjectB implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
public RestletObjectB() {
super();
}
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
And here is the implementation of my service :
package com.binomed.server.rest;
import java.util.ArrayList;
import org.restlet.resource.Get;
import org.restlet.resource.ServerResource;
import com.binomed.client.rest.IRestletService;
import com.binomed.client.rest.dto.RestletObjectA;
import com.binomed.client.rest.dto.RestletObjectB;
public class RestResource extends ServerResource implements IRestletService {
@Override
@Get
public RestletObjectA getMessage() throws Exception {
RestletObjectB objB = new RestletObjectB();
objB.setName("ObjectB");
RestletObjectA result = new RestletObjectA();
result.setName("ObjectA");
result.setListObjectB(new ArrayList());
result.getListObjectB().add(objB);
result.setObjectB(objB);
return result;
}
}
and
package com.binomed.server.rest;
import org.restlet.Application;
import org.restlet.Restlet;
import org.restlet.routing.Router;
public class RestletApplication extends Application {
/**
* Creates a root Restlet that will receive all incoming calls.
*/
@Override
public Restlet createInboundRoot() {
// Create a router Restlet that routes each call to a
// new instance of HelloWorldResource.
Router router = new Router(getContext());
// Defines only one route
// router.attachDefault(new Directory(getContext(), "war:///"));
// router.attach("/test/", RestResource.class);
router.attachDefault(RestResource.class);
return router;
}
}
If I try the url : http://localhost:8888/rest/ it works, I have {"objectB":{"name":"ObjectB"},"listObjectB":[{"name":"ObjectB"}],"name":"ObjectA"} as return which is totaly normal.
Here is my android code :
// Use an AsyncTask to avoid blocking the UI thread
new AsyncTask() {
@Override
protected RestletObjectA doInBackground(Void... arg0) {
try {
return RestletAccesClass.callService();
} catch (Exception e) {
Log.e(TAG, "Error during calling rest server", e);
return null;
}
}
@Override
protected void onPostExecute(RestletObjectA result) {
if (result != null) {
restlet.setText(result.getName() + ", B : " + result.getObjectB().getName());
} else {
restlet.setText("Failure during getting result");
}
btnRestlet.setEnabled(true);
}
}.execute();
and :
public static RestletObjectA callService() throws Exception {
ClientResource clientResource = new ClientResource(TestRpcAndroidActivity.LOCALHOST + "/rest/");
IRestletService service = clientResource.wrap(IRestletService.class);
RestletObjectA result = service.getMessage();
return result;
}
对于android项目,我总是有以下错误:
01-23 14:09:12.594: E/TestAndroidActivity(1620): Error during calling rest server01-23 14:09:12.594: E/TestAndroidActivity(1620): Communication Error (1001) - The connector failed to complete the communication with the server01-23 14:09:12.594: E/TestAndroidActivity(1620): at org.restlet.resource.ClientResource.doError(ClientResource.java:579)01-23 14:09:12.594: E/TestAndroidActivity(1620): at org.restlet.engine.resource.ClientInvocationHandler.invoke(ClientInvocationHandler.java:233)01-23 14:09:12.594: E/TestAndroidActivity(1620): at $Proxy5.getMessage(Native Method)01-23 14:09:12.594: E/TestAndroidActivity(1620): at com.binomed.android.rpc.rest.RestletAccesClass.callService(RestletAccesClass.java:14)01-23 14:09:12.594: E/TestAndroidActivity(1620): at com.binomed.android.rpc.TestRpcAndroidActivity$3.doInBackground(TestRpcAndroidActivity.java:153)01-23 14:09:12.594: E/TestAndroidActivity(1620): at com.binomed.android.rpc.TestRpcAndroidActivity$3.doInBackground(TestRpcAndroidActivity.java:1)01-23 14:09:12.594: E/TestAndroidActivity(1620): at android.os.AsyncTask$2.call(AsyncTask.java:185)01-23 14:09:12.594: E/TestAndroidActivity(1620): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)01-23 14:09:12.594: E/TestAndroidActivity(1620): at java.util.concurrent.FutureTask.run(FutureTask.java:137)01-23 14:09:12.594: E/TestAndroidActivity(1620): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1068)01-23 14:09:12.594: E/TestAndroidActivity(1620): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:561)01-23 14:09:12.594: E/TestAndroidActivity(1620): at java.lang.Thread.run(Thread.java:1096)
你知道如何解决这个问题吗?
问候
最佳答案
您能否尝试添加基于 Apache HTTP Client 的客户端连接器,而不是内部连接器(尚未完全稳定)?请参阅此处的说明: http://wiki.restlet.org/docs_2.1/13-restlet/275-restlet/266-restlet.html
请注意,我们打算解决 2.1.0 连接器的稳定性问题。
关于android - 带有 AppEngine 通信错误的 ReSTLet Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8972848/
我正在尝试将gradle appengine plugin与我的项目一起使用,但SDK的软件包未得到解决。 我在网上看到很多Maven资料库的引用资料:com.google.appengine:app
我对 gradle 概念很陌生。我正在为应用程序引擎做 gradle (我不知道 maven 或 ant),我经历了 [https://cloud.google.com/appengine/docs/
我使用 maven 3.3.9 使用命令 mvn archetype:generate 创建了一个项目,然后搜索端点 archtype 并选择它,然后插入 groupid artifectId 版本.
这个问题已经有答案了: 已关闭12 年前。 Possible Duplicate: How to implement “autoincrement” on Google AppEngine 我在 Ap
对于我的小框架 Pyxer我希望也能够在 AppEngine 项目之外使用 Google AppEngine 数据存储,因为我现在已经习惯了这种 ORM 模式,对于一些快速的破解来说,这很好。由于文件
我正在尝试 GAE Java 灵活环境并在我的构建脚本中使用“com.google.appengine:gradle-appengine-plugin:gradle-appengine-plugin”
我是 GAE 的大菜鸟,Python 水平中等,Java 中等至生疏。我希望将现有的可用 GAE Java 应用程序(在 Google Play 商店中并在 Android 上运行)转换为 GAE P
我的 AppEngine Java8 应用程序缺少 appengine-api-1.0-sdk-1.9.77.jar。无论我调用什么 servlet,我都会收到此错误 java.lang.NoClas
我正在尝试在请求中获取地区和国家。我认为可以在对 AppEngine 的每个请求中获取 X-AppEngine-Region 和 X-AppEngine-Country header ,但它们丢失了。
我们正在从非官方的“kidleit”maven 插件切换为使用官方的“appengine-maven-plugin”http://code.google.com/p/appengine-maven-p
我正在构建一个 Maven 应用程序,我想将其部署在 Java 的 Google 应用程序引擎上。 我尝试在本地服务器中进行测试 localhost:8080 当我运行命令mvn clean pack
如何在 AppEngine 中使用 X-AppEngine-Estimated-CPM-US-Dollars header 。我读了一些文档,我们可以只使用管理员凭据来使用它,这是什么意思? 如果您有
当我尝试使用 appengine-maven-plugin 更新 appengine-application 时出现以下错误: 400 Bad Request Error when loading a
当我尝试在 AppEngine 中使用低级 DataStore API 时,我收到了一个有趣的 ClassNotFoundException。此异常发生在云服务器中,而不是本地实例中。我在本地使用 a
我在尝试运行我的应用程序时遇到以下错误 from oauth2client.appengine import oauth2decorator_from_clientsecrets ImportErro
情况 我正在使用 AppEngine Cloud Endpoints (Java)作为我的 Android 应用程序的后端服务器。在 Cron-Job 中,服务器定期下载新数据(字符串),过滤掉相关信
我有一个多模块 Maven java 项目。在父 pom 中: core batch-worker be scheduler migrations migr
我们正在尝试从 oauth2client 导入 AppAssertionCredentials。我们正在使用 python27 标准谷歌应用程序引擎。 我们的appengine_config.py如下
有什么区别mvn appengine:更新和Google App Engine 中的 mvn appengine:deploy。 最佳答案 这取决于您为项目使用的配置。 old AppEngine p
从语义上讲,api 和ext 指的是什么意思?例如,为什么 taskqueue 属于 api 而 db 属于 ext? 最佳答案 API = 应用程序编程接口(interface)。 所以我们通过它的
我是一名优秀的程序员,十分优秀!