我想使用 GWT-RPC 在 Java 中为我的服务器执行简单的单元测试。
我在 Eclipse 中创建了一个 GWT 项目(GWT 2.7)(使用默认的 GreetingService)。它可以工作,我可以将它作为 Tomcat 服务器中的 servlet 启动。
接下来,我创建了一个 Eclipse 项目来使用 syncProxy 调用 GreetingService。
try {
SyncProxy.setBaseURL("http://127.0.0.1:8080/mywebapp/mywebapp/");
GreetingService svc = SyncProxy.createSync(GreetingService.class);
String greeting = svc.greetServer("Hello");
System.out.println("Result: " +greeting);
}
catch ( Exception e )
{
throw new RuntimeException ( e );
}
当我执行此代码时,出现以下异常:
juin 08, 2015 8:57:14 AM com.gdevelop.gwt.syncrpc.RpcPolicyFinder searchPolicyFileInClassPath
Infos: No RemoteService in the classpath
juin 08, 2015 8:57:14 AM com.gdevelop.gwt.syncrpc.SyncProxy populatePolicyMap
Infos: Populating Policy Map
juin 08, 2015 8:57:14 AM com.gdevelop.gwt.syncrpc.RpcPolicyFinder fetcherSerializationPolicyNameJS
Infos: Remote Services found with JS Fetcher
juin 08, 2015 8:57:14 AM com.gdevelop.gwt.syncrpc.SyncProxy defaultUnsetSettings
Infos: Updating Default Settings for Unset Values
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/http/MethodNotSupportedException
at com.gdevelop.gwt.syncrpc.SyncProxy.createProxy(SyncProxy.java:120)
at com.gdevelop.gwt.syncrpc.SyncProxy.createSync(SyncProxy.java:138)
at myJmeterPlugin.TestGWT.main(TestGWT.java:11)
Caused by: java.lang.ClassNotFoundException: org.apache.http.MethodNotSupportedException
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 3 more
在类路径中,我有来自 GWT 项目、syncProxy 和 gwt-servlet.jar 的 .jars 文件。
你知道如何解决这个问题吗?问候,
塞巴斯蒂安。