我有一个GWT应用程序,带有Native Java后端,以及一个已编译的Javascript前端(像往常一样)。
我的GWT服务也应该可以从其他客户端访问,包括java applet。最初我的想法是将GWT服务加倍作为SOAP服务,并使用applet中的soap客户端来访问GWT服务,但我想知道是否可以使用内置的GWT客户端基础结构来调用服务器来自Java。
答案 0 :(得分:3)
此方法的问题是序列化请求并反序列化响应,以便与GWT服务兼容。
一种解决方案是使用GWT SyncProxy:
这里解释:
您可以直接使用它,或者由于它们提供了源代码,您可以查看它们如何序列化请求并反序列化响应。
答案 1 :(得分:2)
另一种方法是使用Restlet提供服务,然后转换GWT客户端以进行REST调用。 Restlet人员提供了一个GWT库来促进这一点。
http://wiki.restlet.org/docs_2.0/13-restlet/275-restlet/144-restlet.html
它们提供了一个通过Restlet从不同客户端调用REST服务的示例,包括GWT客户端,Java SE和Android:
http://wiki.restlet.org/docs_2.0/13-restlet/21-restlet/318-restlet/303-restlet.html
修改强>
我只知道RESTlet去年为我的GWT项目进行了评估。我不是专家,我最终没有使用它,但这在RESTlet上没有任何反映,无论好坏。
OP问道:在JAX-RS上使用Restlet框架有什么好处?
基本上,JAX-RS是一个公正的API(如JDBC) - 您仍然需要选择一个实现或使用参考实现Jersey。 RESTLet有一个支持JAX-RS API的扩展。
http://www.restlet.org/about/faq#07
的 7。 Restlet和JAX-RS(JSR-311)之间的联系是什么?
...
总而言之,这两种API具有非常不同的设计,但可能是互补的。好消息是JérômeLouvel(Restlet的创建者)是JSR-311专家组的活跃成员,并且在Restlet API之上实现了JAX-RS API。这个“Restlet的JAX-RS扩展”是由Stephan Koops在他的硕士论文的背景下开发的,是最先进的实现之一。有关此扩展的更多文档,请参阅此页。
是否可以使用Tomcat / web.xml基础结构而不是org.reslet.server
http://wiki.restlet.org/docs_2.0/13-restlet/275-restlet/312-restlet.html
此版本旨在在Java EE应用程序服务器内部开发和部署Restlet应用程序,或者更准确地说,在Apache Tomcat等Servlet容器内部。