正如標題所說,我正在嘗試使用Objectify創建GAE + GWT項目,但我甚至無法將其解開。我確信我錯過了一些簡單的東西,但似乎並沒有工作。GAE + GWT +物化工作
以下是我迄今所做的:
- 創建一個新項目,並添加
guava-17.0.jar
,guava-gwt-17.0.jar
,objectify-5.0.3.jar
和objectify-gwt-1.1jar
我WEB-INF\lib
文件夾。這些都是這些罐子的最新版本。 - 運行該應用程序。發送一個簡單的RPC命令,服務器響應,並且客戶端成功接收響應(調用
onSuccess()
)。 - 將行
<inherits name="com.googlecode.objectify.Objectify" />
添加到我的gwt.xml文件中,根據Objectify-GWT's website這應該啓用GWT中的Objectify。 - 運行該應用程序。應用程序啓動,發送相同的RPC命令,服務器接收並響應,但客戶端說該命令失敗(調用
onFailure()
)。
我正在使用首次創建新的Web應用程序時預填充的樣板代碼。作爲參考,這裏是RPC命令:
private void sendNameToServer() {
// First, we validate the input.
errorLabel.setText("");
String textToServer = nameField.getText();
if (!FieldVerifier.isValidName(textToServer)) {
errorLabel.setText("Please enter at least four characters");
return;
}
// Then, we send the input to the server.
sendButton.setEnabled(false);
textToServerLabel.setText(textToServer);
serverResponseLabel.setText("");
greetingService.greetServer(textToServer,
new AsyncCallback<String>() {
public void onFailure(Throwable caught) {
// Show the RPC error message to the user
dialogBox
.setText("Remote Procedure Call - Failure");
serverResponseLabel
.addStyleName("serverResponseLabelError");
serverResponseLabel.setHTML(SERVER_ERROR);
dialogBox.center();
closeButton.setFocus(true);
}
public void onSuccess(String result) {
dialogBox.setText("Remote Procedure Call");
serverResponseLabel
.removeStyleName("serverResponseLabelError");
serverResponseLabel.setHTML(result);
dialogBox.center();
closeButton.setFocus(true);
}
});
}
這是我收到後我儘量讓RPC調用錯誤:
[DEBUG] [my_app] - Validating units:
[INFO] [my_app] - Module my_app has been loaded
[ERROR] [my_app] - Errors in 'com/google/gwt/dev/jjs/SourceOrigin.java'
[ERROR] [my_app] - Line 77: The method synchronizedMap(new LinkedHashMap<SourceOrigin,SourceOrigin>(){}) is undefined for the type Collections
[ERROR] [my_app] - Errors in 'com/google/gwt/dev/util/StringInterner.java'
[ERROR] [my_app] - Line 29: No source code is available for type com.google.gwt.thirdparty.guava.common.collect.Interner<E>; did you forget to inherit a required module?
[ERROR] [my_app] - Line 29: No source code is available for type com.google.gwt.thirdparty.guava.common.collect.Interners; did you forget to inherit a required module?
對我來說,它看起來像物化與GWT干擾。我知道他們應該一起工作,所以不知道我做錯了什麼。任何意見,將不勝感激。
我發現1.2是在幾天前提交的。根據更改日誌,它看起來應該解決編譯問題。當我今晚回家時,我會嘗試,如果有效,請給出答案。謝謝。 – awudoin