我通过谷歌网络工具kit StockWatcher Tutorial , 使用了Eclipse , 和
我修改了储存服务机边类别的“植被统计”方法,以便回收一系列存货物体而不是固定物体。 申请完全汇编,但谷歌网络工具包正在退回以下错误: “没有任何源代码可用于 type.google.gwt.sample.stockwatcher.Stock;你是否忘记继承必要的模块?” 看来,即使该类产品已经进口,客户的班子也难以找到存货用途。 这里是我一揽子等级的概述: 我怀疑我在web.xml中漏掉了一些东西,但我不知道是什么。有人能指导我吗? http://www.un.org。 必须指出,库存类别是可维持的,因此需要留在服务器上。
经过很多审判和错误之后,我设法找到了这样做的办法。 这也许不是最佳办法,但它是行之有效的。 希望这一职位能够节省其他人很多时间和精力。
这些指示假定,你完成了basic StockWatcher tutorial和
有一些事情需要记住: 由于上述两个项目,客户永远无法执行我们在 com.google.gwt.sample.stockwatcher.server中建立的储备类别。 相反,我们制造了一个称为“股票”的新的客户-方储备类别。 现在,我们对客户类别做了一些简单的修改,以便他们知道,皇家警察部队将返回股票公司,而不是“努力”。 进口: 所有其他法典保持不变,但添加Stock、装载Stocks和显示Stocks除外: 最后,我们修改了储存服务电离层舱法,以便把服务器-侧储存级转换为客户-总部储存板级,然后返回阵列。 我们需要稍微改变添加识别器的方法,以便把生成的识别器退回: 所有其他方法保持不变,除非有: 以上准则在部署到谷歌应用引擎时对我非常有用,但引发谷歌网络工具箱中的错误: 让我知道你是否遇到同样的问题。 该公司在谷歌应用发动机工作的事实似乎表明,主宰模式是一种泡沫。Create a Client-Side Implementation of the Stock Class
StockClient.java:
package com.google.gwt.sample.stockwatcher.client;
import java.io.Serializable;
import java.util.Date;
public class StockClient implements Serializable {
private Long id;
private String symbol;
private Date createDate;
public StockClient() {
this.createDate = new Date();
}
public StockClient(String symbol) {
this.symbol = symbol;
this.createDate = new Date();
}
public StockClient(Long id, String symbol, Date createDate) {
this();
this.id = id;
this.symbol = symbol;
this.createDate = createDate;
}
public Long getId() {
return this.id;
}
public String getSymbol() {
return this.symbol;
}
public Date getCreateDate() {
return this.createDate;
}
public void setId(Long id) {
this.id = id;
}
public void setSymbol(String symbol) {
this.symbol = symbol;
}
}
Modify Client Classes to Use StockClient[] instead of String[]
StockService.java:
package com.google.gwt.sample.stockwatcher.client;
import com.google.gwt.sample.stockwatcher.client.NotLoggedInException;
import com.google.gwt.user.client.rpc.RemoteService;
import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;
@RemoteServiceRelativePath("stock")
public interface StockService extends RemoteService {
public Long addStock(String symbol) throws NotLoggedInException;
public void removeStock(String symbol) throws NotLoggedInException;
public StockClient[] getStocks() throws NotLoggedInException;
}
StockServiceAsync.java:
package com.google.gwt.sample.stockwatcher.client;
import com.google.gwt.sample.stockwatcher.client.StockClient;
import com.google.gwt.user.client.rpc.AsyncCallback;
public interface StockServiceAsync {
public void addStock(String symbol, AsyncCallback<Long> async);
public void removeStock(String symbol, AsyncCallback<Void> async);
public void getStocks(AsyncCallback<StockClient[]> async);
}
StockWatcher.java:
import com.google.gwt.sample.stockwatcher.client.StockClient;
private void loadStocks() {
stockService = GWT.create(StockService.class);
stockService.getStocks(new AsyncCallback<String[]>() {
public void onFailure(Throwable error) {
handleError(error);
}
public void onSuccess(String[] symbols) {
displayStocks(symbols);
}
});
}
private void displayStocks(String[] symbols) {
for (String symbol : symbols) {
displayStock(symbol);
}
}
private void addStock() {
final String symbol = newSymbolTextBox.getText().toUpperCase().trim();
newSymbolTextBox.setFocus(true);
// Stock code must be between 1 and 10 chars that are numbers, letters,
// or dots.
if (!symbol.matches("^[0-9a-zA-Z\.]{1,10}$")) {
Window.alert(" " + symbol + " is not a valid symbol.");
newSymbolTextBox.selectAll();
return;
}
newSymbolTextBox.setText("");
// Don t add the stock if it s already in the table.
if (stocks.contains(symbol))
return;
addStock(new StockClient(symbol));
}
private void addStock(final StockClient stock) {
stockService.addStock(stock.getSymbol(), new AsyncCallback<Long>() {
public void onFailure(Throwable error) {
handleError(error);
}
public void onSuccess(Long id) {
stock.setId(id);
displayStock(stock.getSymbol());
}
});
}
Modify the StockServiceImpl Class to Return StockClient[]
StockServiceImpl.java
import com.google.gwt.sample.stockwatcher.client.StockClient;
public Long addStock(String symbol) throws NotLoggedInException {
Stock stock = new Stock(getUser(), symbol);
checkLoggedIn();
PersistenceManager pm = getPersistenceManager();
try {
pm.makePersistent(stock);
} finally {
pm.close();
}
return stock.getId();
}
public StockClient[] getStocks() throws NotLoggedInException {
checkLoggedIn();
PersistenceManager pm = getPersistenceManager();
List<StockClient> stockclients = new ArrayList<StockClient>();
try {
Query q = pm.newQuery(Stock.class, "user == u");
q.declareParameters("com.google.appengine.api.users.User u");
q.setOrdering("createDate");
List<Stock> stocks = (List<Stock>) q.execute(getUser());
for (Stock stock : stocks)
{
stockclients.add(new StockClient(stock.getId(), stock.getSymbol(), stock.getCreateDate()));
}
} finally {
pm.close();
}
return (StockClient[]) stockclients.toArray(new StockClient[0]);
}
Summary
SEVERE: [1244408678890000] javax.servlet.ServletContext log: Exception while dispatching incoming RPC call
com.google.gwt.user.server.rpc.UnexpectedException: Service method public abstract com.google.gwt.sample.stockwatcher.client.StockClient[] com.google.gwt.sample.stockwatcher.client.StockService.getStocks() throws com.google.gwt.sample.stockwatcher.client.NotLoggedInException threw an unexpected exception: java.lang.NullPointerException: Name is null
GWT需要除class子外的档案。 此外,库存必须位于地球静止轨道模块的“客户”地点。
GWT的汇编者不了解库存,因为库存不在其所研究的地点。 您可以将其带给客户的夹子,或者如果它更有意义地离开客户,并创建模块Name。 gwt.xml, 提及你想要的任何其他类别,并从中获取你的主要档案。
例:域名
<module>
<inherits name= com.google.gwt.user.User />
<source path="javapackagesabovethispackagegohere"/>
</module>
并且
<module rename-to="gwt_ui">
<inherits name="com.google.gwt.user.User"/>
<inherits name="au.com.groundhog.groundpics.DomainGwt"/>
<entry-point class="au.com.groundhog.groundpics.gwt.client.GPicsUIEntryPoint"/>
</module>
这里的答案是: RPC 简单使用案件问题: 法典包括:。
从根本上说,你可以给你增加参数。 gwt.xml文档使汇编者能够让汇编者进入服务器边班。
I was getting the same issue and the "mvn gwt:compile" output was not very helpful. Instead, when I tried deploying to tomcat (via the maven tomcat plugin: mvn tomcat:deploy) I got helpful error messages.
我必须做几件事:
- Make the object that is sent from the client to the server implement Serializable
- Add an empty-arg constructor to that same object
是的,我们确信,我们需要利用Serialization将服务器物体带给客户。 这些 mo? 档案馆舍在客户使用股票类别方面赢得了一定的工作。
在你的情况下,只有一类股票,你可以在客户方面制造一种股票。 它很容易。 但是,如果有更多班级的人,解决办法是什么。 如同这一类的特性一样,还有一些其他类型的课程。
例:stock.getEOD(date);getHigh(;
<代码>getEOD> 将在规定日期后再交另一类,该类别有<代码>。 高代码>方法。
在这样大的情况下,怎么办? 我不认为在客户方面设立所有实施序列化的班级是好的。 然后,我们必须在服务器和客户中书写代码。 两班制。
以上“rus”的答案......
在我的案件中,我需要编辑单元。 gwt.xml文档并添加如下内容:
<source path= client />
<source path= shared />
我以
这方面的解决办法非常简单和容易。 如果你想把你设计的门槛值从服务器一侧送到客户一边,那么你应在<>共享的包裹中确定这一门槛值。
例如,就你而言,你必须携带储存。 java 班级(rag和 drop)
com.google.gwt.sample.stockwatcher. Commond
一揽子计划。 然而,从你的一揽子等级来看,你似乎删除了这一共有的一揽子方案。 只是重新计算这一一揽子计划,并减少库存。 java在其中,让游戏开始。
- winforms
- combobox
- fogbugz
- java
- date
- internationalization
- asp.net
- iis
- url-rewriting
- urlrewriter
- c#
- enums
- ocaml
- haxe
- algorithm
- string
- viewstate
- .net
- c++
- c
- symbol-table
- mysql
- database
- postgresql
- licensing
- migration
- vb.net
- vb6
- declaration
- vb6-migration
- python
- psycopg2
- backup
- vmware
- virtualization
- gnu-screen
- authentication
- desktop
- excel
- xll
- cultureinfo
- regioninfo
- oracle
- client
- session
- download
- html
- virtual
- constructor
- scenarios
- perl
- full-text-search
- javascript
- ajax
- testing
- oop
- inheritance
- vim
- encapsulation
- information-hiding