Я использую Eclipse Version: 3.5.1, GWT 2.0.0, GAE 1.3.0, и я пытаюсь использовать XStream 1.3.2 для «сериализации» моих объектов Java в и из xml между клиентской и серверной сторонами GWT.
На стороне сервера XStream работает без проблем.
На стороне клиента компилятор жалуется, что не может найти исходный код для используемых классов XStream. Я понимаю, что это своего рода проблема со ссылками, когда клиентские классы GWT не могут автоматически находить серверные классы, и я понимаю, почему это так, однако, я постепенно схожу с ума, пытаясь использовать подходы, описанные в различных статьях и руководствах, которые охватывают использовать сторонние библиотеки в GWT.
Никто из них не работает!
Мой файл 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
Я не уверен, какая другая информация вам может понадобиться, чтобы помочь мне, но если вам нужно что-то, чего я не предоставил, пожалуйста, спросите.
Спасибо за чтение этого: -)