【发布时间】:2009-12-17 12:51:35
【问题描述】:
我正在使用 Eclipse 版本:3.5.1、GWT 2.0.0、GAE 1.3.0,并且我正在尝试使用 XStream 1.3.2 在客户端和服务器端之间的 xml 中“序列化”我的 Java 对象GWT。
在服务器端,XStream 可以正常工作。
在客户端,编译器抱怨它找不到所使用的 XStream 类的源代码。我知道这是某种“引用”问题,其中 GWT 客户端类无法自动找到服务器类,我理解为什么会这样,但是当我尝试使用各种文章和教程中描述的方法时,我会慢慢发疯在 GWT 中使用 3rd 方库。
它们都不起作用!
我的gwt.xml文件如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE module PUBLIC "-//Google Inc.//DTD Google Web Toolkit 1.7.1//EN" "http://google-web-toolkit.googlecode.com/svn/tags/1.7.1/distro-source/core/src/gwt-module.dtd">
<module rename-to='bandmates'>
<!-- Inherit the core Web Toolkit stuff. -->
<inherits name='com.google.gwt.user.User' />
<!-- Inherit the default GWT style sheet. You can change -->
<!-- the theme of your GWT application by uncommenting -->
<!-- any one of the following lines. -->
<inherits name='com.google.gwt.user.theme.standard.Standard' />
<!-- <inherits name='com.google.gwt.user.theme.chrome.Chrome'/> -->
<!-- <inherits name='com.google.gwt.user.theme.dark.Dark'/> -->
<!-- Other module inherits -->
<!-- Specify the app entry point class. -->
<entry-point class='org.redboffin.bandmates.client.BandMates' />
</module>
我的 Eclipse XStream 库如下:
XStream
|__ Access rules : No rules defined
|__ Native library location: (None)
|__ xstream-1.3.2.jar [path to jar]
|__ Source Attachment: xstream-1.3.2-sources.jar [path to source jar]
|__ Javadoc location: [path to javadoc]
|__ Native library location: (None)
|__ Access rules : No restrictions
我更熟悉 Netbeans,因此我可能设置不正确,但我认为我已将 XStream 作为第三方库包含到我的 Eclipse GWT 项目中,并正确引用了二进制 jar、源 jar 和 javadoc罐子
引发错误的客户端方法:
public void onSuccess(String profilesXml) {
// Deserialize the xml
XStream xstream = new XStream(new DomDriver());
ProfilesImpl profiles = (ProfilesImpl) xstream.fromXML(profilesXml);
// Show the RPC result to the user
this.friendsWidget.setFriendProfiles(profiles);
this.friendsWidget.update();
}
还有 GWT 编译器错误:
Compiling module org.redboffin.bandmates.BandMates
Validating newly compiled units
[ERROR] Errors in 'file:/C:/Documents%20and%20Settings/Darren/workspace/BandMates/src/org/redboffin/bandmates/client/widgets/FriendsWidget.java'
[ERROR] Line 63: No source code is available for type com.thoughtworks.xstream.XStream; did you forget to inherit a required module?
[ERROR] Line 63: No source code is available for type com.thoughtworks.xstream.io.xml.DomDriver; did you forget to inherit a required module?
Finding entry point classes
[ERROR] Unable to find type 'org.redboffin.bandmates.client.BandMates'
[ERROR] Hint: Previous compiler errors may have made this type unavailable
[ERROR] Hint: Check the inheritance chain from your module; it may not be inheriting a required module or a module may not be adding its source path entries properly
我不确定您可能需要哪些其他信息来帮助我,但如果您需要我未提供的信息,请询问。
感谢您阅读本文 :-)
【问题讨论】: