servlet 与 J2me 项目通信?
Posted
技术标签:
【中文标题】servlet 与 J2me 项目通信?【英文标题】:servlet communicate with J2me Project? 【发布时间】:2010-07-22 11:57:57 【问题描述】:我正在使用 Eclipse 在 J2ME 中开发一个应用程序。在这个应用程序中,我使用了一个名为 HitServlet 的 servlet 和一个 J2me 类 HitMIDlet。 我想使用 Eclipse 运行这个项目。但我不知道目录结构是什么 以及我如何制作目录结构。 我已经在我的 Eclipse 中配置了 J2ME 插件和 Tomcat。 但我不知道我的 Eclipse 中我的类的目录结构是什么。 得到正确的输出。 我想当我运行 j2me 类(HitMIDlet)时它会命中 servlet(HitServlet)并发出 放。
这是我的 J2me 类代码:
import java.io.*;
import javax.microedition.io.*;
import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;
public class HitMIDlet
extends MIDlet
implements CommandListener
private Display mDisplay;
private Form mMainForm;
private StringItem mMessageItem;
private Command mExitCommand, mConnectCommand;
public HitMIDlet()
mMainForm = new Form("HitMIDlet");
mMessageItem = new StringItem(null, "");
mExitCommand = new Command("Exit", Command.EXIT, 0);
mConnectCommand = new Command("Connect",
Command.SCREEN, 0);
mMainForm.append(mMessageItem);
mMainForm.addCommand(mExitCommand);
mMainForm.addCommand(mConnectCommand);
mMainForm.setCommandListener(this);
public void startApp()
mDisplay = Display.getDisplay(this);
mDisplay.setCurrent(mMainForm);
public void pauseApp()
public void destroyApp(boolean unconditional)
public void commandAction(Command c, Displayable s)
if (c == mExitCommand)
notifyDestroyed();
else if (c == mConnectCommand)
Form waitForm = new Form("Waiting...");
mDisplay.setCurrent(waitForm);
Thread t = new Thread()
public void run()
connect();
;
t.start();
private void connect()
HttpConnection hc = null;
InputStream in = null;
String url = getAppProperty("HitMIDlet.URL");
try
hc = (HttpConnection)Connector.open(url);
in = hc.openInputStream();
int contentLength = (int)hc.getLength();
byte[] raw = new byte[contentLength];
int length = in.read(raw);
in.close();
hc.close();
// Show the response to the user.
String s = new String(raw, 0, length);
mMessageItem.setText(s);
catch (IOException ioe)
mMessageItem.setText(ioe.toString());
mDisplay.setCurrent(mMainForm);
和servlet(HitServlet)
import javax.servlet.http.*;
import javax.servlet.*;
import java.io.*;
public class HitServlet extends HttpServlet
private int mCount;
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException
String message = "Hits: " + ++mCount;
response.setContentType("text/plain");
response.setContentLength(message.length());
PrintWriter out = response.getWriter();
out.println(message);
【问题讨论】:
【参考方案1】:只需让 Eclipse 生成目录结构即可。创建两个项目。一个用于 J2ME 作为 JavaME> MIDlet 项目(假设您已经正确安装了 Mobile Tools 插件),另一个用于 JavaEE 作为 Web > Dynamic Web Project(假设您'正在使用 Eclipse for Java EE 和/或已单独安装 Web Tools 插件)。在移动客户端运行 J2ME 项目,在 Tomcat 服务器上运行 JavaEE 项目。
另见:
Eclipse Mobile Tools documentation - Creating MIDlet project Eclipse Web Tools documentation - Creating Dynamic Web project【讨论】:
得到了这个异常 未捕获的异常 java/lang/IllegalArgumentException: Null URL。 这是一个完全不同且独立的问题/问题。发布一个关于此的新问题。在这个问题中,您要问如何在 Eclipse 中创建目录结构。我已经为此发布了一个答案。 @BlausC 抱歉,我想问一下,一开始我是说 j2me 应用程序如何与 servlet 通信,它们的目录结构是什么,或者它在不同的项目中,或者 servlet 和 J2me 类都将在一个项目中。 以后有问题,请尝试ask questions the smart way。尽管您没有在任何地方添加问号,但我知道您在问如何创建项目,因为您在说“我不知道”。我已经回答过:使用 Eclipse 的工具创建两个项目。我在问题正文中的任何地方都没有看到有关您遇到的问题的问题,以及详细的异常/错误。你应该问一个关于这个的新问题。或编辑您的问题以澄清,我将删除此答案。再一次:尝试以聪明的方式提问。以上是关于servlet 与 J2me 项目通信?的主要内容,如果未能解决你的问题,请参考以下文章
Cookie中图片的浏览记录与cookie读取servle时路径的设置(文字描述)
异常idea执行Main方法出现 Exception in thread "main" java.lang.NoClassDefFoundError: javax/servle(代