- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在为我的 GAE 托管服务构建 jUnit 测试用例,其中一种方法存在问题。
这是资源界面:
public interface BasketItemResource {
@Delete
public void removeBasketItem(String id);
@Get
public Representation listBasketItems();
@Put
public void addBasketItems(Representation items);
}
这是我的测试用例:
@Test
public void testListItems() {
Gson gson = new Gson();
List<BasketItem> items = null;
JsonRepresentation jRep = null;
Type collectionType = new TypeToken<List<BasketItem>>(){}.getType();
try {
jRep = new JsonRepresentation(resource.listBasketItems());
items = gson.fromJson(jRep.getJsonArray().toString(), collectionType);
} catch (JsonSyntaxException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
assertEquals(items.size(), 5);
}
@Test
public void testAddItem() {
Gson gson = new Gson();
BasketItem b = new BasketItem();
b.basketItemID = 123;
b.brandName = "Pepsi";
b.description = "Cola Beverage";
b.upc = "123123123";
List<BasketItem> items = new ArrayList<BasketItem>();
items.add(b);
JsonRepresentation jRep = null;
try {
jRep = new JsonRepresentation(new JSONArray(gson.toJson(items)));
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
resource.addBasketItems(jRep);
}
listItems 测试执行良好,但是当我运行 testAddItems() 时,我首先收到此警告:
INFO: Unable to register the helper org.restlet.client.ext.json.JsonConverter
java.lang.ClassNotFoundException: org.restlet.client.ext.json.JsonConverter
at org.restlet.engine.util.EngineClassLoader.findClass(EngineClassLoader.java:101)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at org.restlet.engine.Engine.registerHelper(Engine.java:723)
at org.restlet.engine.Engine.registerHelpers(Engine.java:761)
at org.restlet.engine.Engine.registerHelpers(Engine.java:801)
at org.restlet.engine.Engine.discoverConverters(Engine.java:509)
at org.restlet.engine.Engine.<init>(Engine.java:337)
at org.restlet.engine.Engine.register(Engine.java:248)
at org.restlet.engine.Engine.register(Engine.java:237)
at org.restlet.engine.Engine.getInstance(Engine.java:149)
at org.restlet.data.Method.<init>(Method.java:331)
at org.restlet.data.Method.<init>(Method.java:390)
at org.restlet.data.Method.<init>(Method.java:355)
at org.restlet.data.Method.<clinit>(Method.java:54)
at org.restlet.engine.resource.AnnotationUtils.addAnnotationDescriptors(AnnotationUtils.java:82)
at org.restlet.engine.resource.AnnotationUtils.addAnnotations(AnnotationUtils.java:132)
at org.restlet.engine.resource.AnnotationUtils.getAnnotations(AnnotationUtils.java:231)
at org.restlet.resource.ClientResource.wrap(ClientResource.java:1548)
at com.tests.tests.BasketItemUploadTests.setUp(BasketItemUploadTests.java:43)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:45)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:42)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:27)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:263)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:68)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:47)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222)
at org.junit.runners.ParentRunner.run(ParentRunner.java:300)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:49)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
随后是 (resource.addBasketItems(jRep);) 行的堆栈跟踪:
Internal Server Error (500) - Internal Server Error
at org.restlet.resource.ClientResource$1.invoke(ClientResource.java:1655)
at $Proxy9.addBasketItems(Unknown Source)
at com.tests.tests.BasketItemUploadTests.testAddItem(BasketItemUploadTests.java:84)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:45)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:42)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:263)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:68)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:47)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222)
at org.junit.runners.ParentRunner.run(ParentRunner.java:300)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:49)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
最佳答案
根据您发布的堆栈跟踪,找不到org.reSTLet.client.ext.json.JsonConverter
类。确保运行 junit 测试时包含类 org.reSTLet.client.ext.json.JsonConverter 的 jar 文件位于类路径中。也许将项目的 /WEB-INF/lib
文件夹添加到类路径中可以解决您的问题。
关于java - ReSTLet 内部 500 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8705284/
我有一个 ReSTLet (v2.1.1) 组件,它使用 ServerResource 来处理 HTTP GET 请求。 我想将过滤器和/或路由器放入组件中,以便它们可以在请求到达 ServerRes
我有一些使用 ReSTLet 框架的代码。它正在将错误写入我的 log4j 日志文件: 2012-05-30 12:16:42,169 3278917 ERROR [STDERR] (Thread-9
我需要在 ReSTLet 资源类(它扩展 ServerResource)中获取应用程序根。我的最终目标是尝试返回到另一个资源的完整显式路径。 我目前正在使用 getRequest().getResou
我正在使用 ReSTLet 来实现 Web 服务。客户端(也使用 ReSTLet)对服务器进行多次连续调用,但在少数调用成功完成后,进一步的调用挂起服务器,显示消息: INFO: Stop accep
我想创建一个 servlet 作为一堆 reSTLet 应用程序的容器。我已经为一个 reSTLet 应用程序完成了 servlet,但我不知道如何修改 web.xml 以适应许多应用程序。这是单个
我通过使用带有camel的reSTLet来公开休息服务。 我公开了一个休息服务作为一端,而在另一端我覆盖了流程方法。代码如下所示, from("restlet:/service/serviceName
我有一个 ReSTLet (2.0.10) 应用程序,我从以下代码开始: public static void main(final String[] args) { try {
这是我限制每分钟请求数量的代码: MethodAuthorizer ma = createMethodAuthorizer(); ma.setNext(router);
我无法在同一个 Java Web 应用程序中使用 ReSTLet 服务器和客户端 jar。问题是服务器和客户端的某些 jar 具有相同的名称。如果我尝试删除重复的 jar ,我会收到类似的错误 jav
我正在尝试在 RESTlet 上运行第一个服务器教程 docs但是即使我将 jars 添加到我的类路径中,我也会收到错误。我添加了 org.reSTLet.jar 和 org.reSTLet.ext.
我有一个测试客户端,它发出 ReSTLet 请求,如下所示:公共(public)类 TestReSTLet { public static void main(String[] args) throw
我已经完成了 ReSTLet 1.1 教程的第一个资源部分,并通过继承 Resource 类并覆盖适当的方法并使用一个 Router 来附加子类 Resource 类。 所以我在想 - ReSTLet
我在 tomcat 环境中使用带有 reSTLet 的 jackson 时遇到问题。正如您可以从 restlet site 中读到的那样,他们保证 jackson 扩展 provides a plug
我试图通过 reSTLet 接收文件,但只得到完整的 MULTIPART_FORM_DATA。如何提取我的特定文件? 我找到了一些代码块,但它们的类型不可用... RESTlet: How to pr
我们使用 ReSTLet 2.0.8 并有一个覆盖 org.reSTLet.Application#createInboundRoot() 的 Application 实例。在那里,我们创建 Rout
我在我的应用程序中使用 ReSTLet 2.3.5。当调用某个服务器资源的 GET 请求处理程序时,我收到以下错误: [10:26:04] [Restlet-860541310/WARN]: Nov
我想运行这些示例,但它们使用了不推荐使用的 ReSTLet API 和不存在的 db4o API。总之,不编译。 我是 ReSTLet(和 Java)的新手,所以我真的不想浪费时间尝试修复代码。我希望
首先,我检查了关于这个问题的讨论,但找不到我的问题的答案,这就是我打开这个问题的原因。 我已经使用reSTLet 2.0.15 设置了一个Web 服务。该实现仅适用于服务器。与服务器的连接是通过网页进
我有一个客户端向服务器发出请求,这可能需要一些时间才能响应。 当服务器想要回复时,它抛出以下异常: The connection was broken. It was probably closed
我是reSTLet的新手,并试图了解我应该在android上使用哪个HTTPS客户端选项。哪个 HTTPS 客户端选项对 Android 来说最强大和稳定? 我使用的是reSTLet 2.1rc4(和
我是一名优秀的程序员,十分优秀!