我已经通过谷歌网页工具包运行的StockWatcher教程使用的Eclipse和谷歌插件,和我试图做给它一些基本的变化,使我能够更好地了解RPC框架.
我已经在StockServiceImpl服务器端类上修改了"getStocks"方法,以便它返回Stock对象的数组而不是String对象.应用程序编译完美,但Google Web Toolkit返回以下错误:
"没有源代码可用于com.google.gwt.sample.stockwatcher.server.Stock类型;您是否忘记继承所需的模块?"
Google Web Toolkit托管模式http://i44.tinypic.com/a47r83.jpg
似乎客户端类无法找到Stock对象的实现,即使已导入该类.作为参考,这是我的包层次结构的屏幕截图:
Eclipse包层次结构http://i43.tinypic.com/14tr5gk.jpg
我怀疑我在web.xml中遗漏了一些内容,但我不知道它是什么.谁能指出我正确的方向?
编辑:忘了提到Stock类是可持久的,所以它需要留在服务器端.
鉴于:Spring 3.0 mvc具有出色的REST支持,其中一种表示形式为JSON.
随着UI在java中开发,GWT简化了开发.但默认情况下,它使用RPC进行客户端服务器交互.但是可以选择使用JSON.
问题:
你能分享使用Spring 3.0 mvc和GWT的经验吗?
集成这两个框架的最佳方法是什么?
是默认的GWT MVP架构仅适用于客户端,它是否适用于JSON?
谢谢
我有一个RPC服务,使用以下方法:
Run Code Online (Sandbox Code Playgroud)public List<Serializable> myMethod(TransactionCall call) {...}
但是在分析此方法时我收到警告,然后rpc调用失败
Run Code Online (Sandbox Code Playgroud)Analyzing 'my.project.package.myService' for serializable types Analyzing methods: public abstract java.util.List<java.io.Serializable> myMethod(my.project.package.TransactionCall call) Return type: java.util.List<java.io.Serializable> [...] java.io.Serializable Verifying instantiability (!) Checking all subtypes of Object wich qualify for serialization
似乎我不能将Serializable用于我的List ...我可以使用我自己的界面(类似于AsyncDataInterface,它实现了Serializable接口),但事实是我的方法将返回一个列表自定义对象和基本对象(如as Strings,int ....).
所以我的问题是:
I would like to know the difference between GWT, GWT-RPC, EXT-GWT and Smart GWT. Currently, I managed to borrow books on GWT which I understand is just a library designed to facilitate fast and efficient Ajax (asynchronous JavaScript and XML) development. But what are the rest? Could anyone explain it? Thanks.
我在GWT中有一个需要返回List的RPC服务.List可以填充各种类型的对象,所有对象都是可序列化的,并且所有对象都在我的服务的其他地方引用,因此它们应该可供GWT RPC使用.但是,除非我添加泛型类型参数(例如ArrayList<String>),否则GWT会给出警告:
Return type: java.util.ArrayList
java.util.ArrayList
Verifying instantiability
java.util.ArrayList
[WARN] Checking all subtypes of Object which qualify for serialization`
Adding '465' new generated units
本质上,我只想要一种方法来声明List或ArrayList而不用GWT试图为类路径上的每个可序列化对象生成代码.难道没有办法告诉GWT我知道我在做什么而不是发疯?
我发现这篇文章http://docs.google.com/Doc?id=dcsq25m_04k4cmgfd 在服务器端为蜘蛛生成html.你有什么想法使用这种技术根据用户代理提供不同的内容?
您可以分享哪些参考文章或建议,以便在gwt上进行seo的最佳方式?我读过pro gwt2.0技术,但在我看来有点矫枉过正.
更新:GWT 2.3引入了更好的机制来对抗XSRF攻击.请参阅http://code.google.com/webtoolkit/doc/latest/DevGuideSecurityRpcXsrf.html
GWT的RPC机制在每个HTTP请求上执行以下操作 -
HTTP请求始终是POST,在服务器端GET方法抛出异常(不支持方法).
此外,如果未设置这些标头或具有错误的值,则服务器会因"可能是CSRF?"而异常处理.或者那种效果.
问题是:这是否足以阻止CSRF?有没有办法在纯交叉站点请求伪造方法中设置自定义标头和更改内容类型?
我有一个带有X-GWT-Module-Base的GWT模块,http://host:8080/foo/想要调用位于的GWT服务http://host:8080/bar/.原因是例如我希望能够在两个不同的GWT客户端项目之间共享GWT服务.
到目前为止,我所有的工作都是服务位于模块上下文中,即http://host:8080/foo/bar工作正常,@RemoteServiceRelativePath("bar")在我的服务界面中使用.
似乎@RemoteServiceRelativePath只允许相对于模块基本URL的值...所以是否有其他方法来实现我想要完成的任务?
我有一个带嵌套枚举的枚举(我想私有),但是当我这样做时,GWT告诉我嵌套枚举不可见并抛出异常.
public enum OuterEnum {
A(NestedEnum.X),
B(NestedEnum.Y),
C(NestedEnum.X);
NestedEnum nestedValue;
private OuterEnum(NestedEnum nv) { nestedValue = nv; }
private enum NestedEnum {
X, Y;
}
}
Run Code Online (Sandbox Code Playgroud)
如果我从嵌套枚举中删除私有修饰符,则代码可以正常工作.为什么GWT不允许嵌套枚举的私有修饰符?有解决方法吗?
我正在研究GWT和OSGi + PAX-Web问题的解决方案.特别的问题是GWT无法加载序列化策略文件,给出以下错误:
ERROR: The serialization policy file '/ctx/ctx/6ExxxxxxxxxxxxxxxxF.gwt.rpc' was not found; did you forget to include it in this deployment?
问题出在Equinox OSGi和PAX-WEB之间.
为了找到解决方案,我想更好地了解GWT-RPC如何加载序列化策略文件.
(免责声明:我已经在生成的文件中阅读了gwt文档[2].我正在寻找更多低级细节:我的印象是我们所遇到的错误必须处理HttpContext.getResource())