GWT无法编译该项目

编程入门 行业动态 更新时间:2024-10-25 22:34:35
本文介绍了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无法编译该项目

本文发布于:2023-11-07 14:50:30,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1566746.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:该项目   GWT

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!