GWT无法编译该项目 [英] GWT Cannot compile the project

查看:132
本文介绍了GWT无法编译该项目的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在用GWT + twitter4j创建简单的twitter应用程序。但我无法执行此操作或编译它。



这里是代码,请告诉我它有什么问题。

  package in.isuru.twitter.server; 

import java.util.ArrayList;

import com.google.gwt.user.server.rpc.RemoteServiceServlet;

import twitter4j.Query;
导入twitter4j.QueryResult;
导入twitter4j.Tweet;
导入twitter4j.Twitter;
import twitter4j.TwitterException;
导入twitter4j.TwitterFactory;

public class Twit extends RemoteServiceServlet {

ArrayList< Tweet> tweets = new ArrayList< Tweet>();
// ArrayList< String> status = new ArrayList< String>();

public ArrayList< Tweet> search(String searchTerm){
//工厂实例可重用且线程安全。
Twitter twitter = new TwitterFactory()。getInstance();
查询查询=新查询(searchTerm);
QueryResult result = null;
尝试{
result = twitter.search(query);
} catch(TwitterException e){
// TODO自动生成的catch块
e.printStackTrace(); (Tweet tweet:result.getTweets()){
//System.out.println(tweet.getFromUser()+:+ tweet.getText());
}

tweets.add(tweet);

}

返回推文;
}

}

和客户端一样,

  package in.isuru.twitter.client; 

import java.util.ArrayList;

导入twitter4j.Tweet;

import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.user.client.ui.FlexTable;
import com.google.gwt.user.client.ui.FlexTable.FlexCellFormatter;
import com.google.gwt.user.client.ui.HasHorizo​​ntalAlignment;
import com.google.gwt.user.client.ui.RootPanel;

导入in.isuru.twitter.server。*;

/ **
*入口点类定义< code> onModuleLoad()< / code> ;.
* /
公共类Twitter实现入口点{

Twit twit = new Twit();
ArrayList< Tweet> allStatus;

public void onModuleLoad(){

//创建一个Flex表格
final FlexTable flexTable = new FlexTable();
FlexCellFormatter cellFormatter = flexTable.getFlexCellFormatter();
flexTable.addStyleName(cw-FlexTable);
flexTable.setWidth(32em);
flexTable.setCellSpacing(5);
flexTable.setCellPadding(3);

//添加一些文本
cellFormatter.setHorizo​​ntalAlignment(0,1,HasHorizo​​ntalAlignment.ALIGN_LEFT);
cellFormatter.setColSpan(0,0,2);

//在twitter中搜索
allStatus = twit.search(sex);
for(int i = 0; i< allStatus.size(); i ++){
//System.out.println(tweet.getFromUser()+:+ tweet.getText() );
鸣叫= allStatus.get(i);
String user = tweet.getFromUser();
String status = tweet.getText();
addRow(flexTable,user);
addRow(flexTable,status);

}

//添加两行开始
// addRow(flexTable,这是测试状态更新);
// addRow(flexTable,这是测试状态更新);

//返回面板
flexTable.ensureDebugId(cwFlexTable);
RootPanel.get()。add(flexTable);
}

/ **
*向flex表添加一行。
* /
private void addRow(FlexTable flexTable,String status){
int numRows = flexTable.getRowCount();
flexTable.setText(numRows,0,status);
flexTable.getFlexCellFormatter()。setRowSpan(0,1,numRows + 1);
}

/ **
*从flex表中删除一行。
* /
private void removeRow(FlexTable flexTable){
int numRows = flexTable.getRowCount();
if(numRows> 1){
flexTable.removeRow(numRows - 1);
flexTable.getFlexCellFormatter()。setRowSpan(0,1,numRows - 1);
}

}
}

是编译它时得到的错误代码。

编译模块in.isuru.twitter.Twitter
验证新编译的单元
忽略1第一阶段出现编译错误的单元。
使用-strict编译或使用-logLevel设置为TRACE或DEBUG以查看所有错误。
查找入口点类
[错误]'文件中的错误:/ E:/workspace/Twitter/src/in/isuru/twitter/client/Twitter.java'
[错误]行20:没有源代码可用于输入in.isuru.twitter.server.Twit;你忘了继承一个必需的模块吗?
[错误]第21行:没有源代码可用于类型twitter4j.Tweet;你忘了继承一个必需的模块吗?
[错误]无法找到类型'in.isuru.twitter.client.Twitter'
[错误]提示:以前的编译器错误可能导致此类型不可用
[错误]提示:检查来自你的模块的继承链;它可能不是继承一个必需的模块或一个模块可能没有正确添加它的源路径条目

在此先感谢!

解决方案

你不能在GWT中使用任何Java库。 GWT不是java,库必须以特殊的方式创建和配置,这就是为什么你会得到这个错误。



我建议您阅读官方文档


I am creating simple twitter application with GWT+twitter4j. But I can't run this or compile it.

Here codes and please tell me what is wrong with it.

package in.isuru.twitter.server;

import java.util.ArrayList;

import com.google.gwt.user.server.rpc.RemoteServiceServlet;

import twitter4j.Query;
import twitter4j.QueryResult;
import twitter4j.Tweet;
import twitter4j.Twitter;
import twitter4j.TwitterException;
import twitter4j.TwitterFactory;

public class Twit extends RemoteServiceServlet{

ArrayList<Tweet> tweets = new ArrayList<Tweet>();
//ArrayList<String> status = new ArrayList<String>();

public ArrayList<Tweet> search(String searchTerm){
    // The factory instance is re-useable and thread safe.
    Twitter twitter = new TwitterFactory().getInstance();
    Query query = new Query(searchTerm);
    QueryResult result = null;
    try {
        result = twitter.search(query);
    } catch (TwitterException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    for (Tweet tweet : result.getTweets()) {
        //System.out.println(tweet.getFromUser() + ":" + tweet.getText());
        tweets.add(tweet);

    }

    return tweets;
}

}

And client side,

package in.isuru.twitter.client;

import java.util.ArrayList;

import twitter4j.Tweet;

import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.user.client.ui.FlexTable;
import com.google.gwt.user.client.ui.FlexTable.FlexCellFormatter;
import com.google.gwt.user.client.ui.HasHorizontalAlignment;
import com.google.gwt.user.client.ui.RootPanel;

import in.isuru.twitter.server.*;

/**
  * Entry point classes define <code>onModuleLoad()</code>.
 */
 public class Twitter implements EntryPoint {

Twit twit = new Twit();
ArrayList<Tweet> allStatus;

public void onModuleLoad() {

     // Create a Flex Table
    final FlexTable flexTable = new FlexTable();
    FlexCellFormatter cellFormatter = flexTable.getFlexCellFormatter();
    flexTable.addStyleName("cw-FlexTable");
    flexTable.setWidth("32em");
    flexTable.setCellSpacing(5);
    flexTable.setCellPadding(3);

    // Add some text
    cellFormatter.setHorizontalAlignment(0, 1, HasHorizontalAlignment.ALIGN_LEFT);
    cellFormatter.setColSpan(0, 0, 2);

    //search in twitter
    allStatus = twit.search("sex");
    for (int i=0 ; i <allStatus.size() ; i++) {
        //System.out.println(tweet.getFromUser() + ":" + tweet.getText());
        Tweet tweet = allStatus.get(i);
        String user = tweet.getFromUser();
        String status = tweet.getText();
        addRow(flexTable, user);
        addRow(flexTable, status);

    }

    // Add two rows to start
    // addRow(flexTable, "This is testing status update");
    // addRow(flexTable, "This is testing status update");

    // Return the panel
    flexTable.ensureDebugId("cwFlexTable");
    RootPanel.get().add(flexTable);
  }

  /**
   * Add a row to the flex table.
   */
  private void addRow(FlexTable flexTable, String status) {
    int numRows = flexTable.getRowCount();
    flexTable.setText(numRows, 0, status);
    flexTable.getFlexCellFormatter().setRowSpan(0, 1, numRows + 1);
  }

  /**
   * Remove a row from the flex table.
   */
  private void removeRow(FlexTable flexTable) {
    int numRows = flexTable.getRowCount();
    if (numRows > 1) {
      flexTable.removeRow(numRows - 1);
      flexTable.getFlexCellFormatter().setRowSpan(0, 1, numRows - 1);
    }

}
}

And here is the error code which i get when i compile it.

Compiling module in.isuru.twitter.Twitter Validating newly compiled units Ignored 1 unit with compilation errors in first pass. Compile with -strict or with -logLevel set to TRACE or DEBUG to see all errors. Finding entry point classes [ERROR] Errors in 'file:/E:/workspace/Twitter/src/in/isuru/twitter/client/Twitter.java' [ERROR] Line 20: No source code is available for type in.isuru.twitter.server.Twit; did you forget to inherit a required module? [ERROR] Line 21: No source code is available for type twitter4j.Tweet; did you forget to inherit a required module? [ERROR] Unable to find type 'in.isuru.twitter.client.Twitter' [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

Thanks in advance!

解决方案

You can't use just any java library in GWT. GWT is not java, and libraries have to be created and configured in special way, that's why you are getting this error.

I recommend to read official documentation

这篇关于GWT无法编译该项目的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆