网上搜索了半天,都比较凌乱,花了好几个小时才搞定,写下来备忘,同时供大家参考!
1、生成一个证书
使用jdk自带的工具keytool来生成证书,假设jdk安装路径为d:\jdk
java 代码
- cd D:\jdk\bin
- keytool -genkey -alias tomcat -keyalg RSA -keystore c:\keystore
按照提示回答问题,完了后在c盘根目录下就生成了证书文件keystore. 注意填写您的姓名的时候要填写网站的主机名,比如localhost。
2、在tomcat5中配置https
将server.xml中找到下面的代码,默认被注释掉了
xml 代码
- <Connector port="8443" maxHttpHeaderSize="8192"
- maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
- enableLookups="false" disableUploadTimeout="true"
- acceptCount="100" scheme="https" secure="true"
- clientAuth="false" sslProtocol="TLS" />
替换为
xml 代码
- <Connector port="443" maxHttpHeaderSize="8192"
- maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
- enableLookups="true" disableUploadTimeout="true"
- acceptCount="100" scheme="https" secure="true"
- clientAuth="false" sslProtocol="TLS" keystoreFile="c:/keystore"
- keystorePass="hxrainbow"/>
重新启动tomcat,使用https应该就能访问到了。
3、导入证书到wtk
假设wtk的安装路径为D:\WTK2.5.2\
java 代码
- cd D:\WTK2.5.2\bin
- mekeytool.exe -import -keystore c:\keystore -storepass hxrainbow -alias tomcat
没有错误提示,就导入成功。
4、在midlet中使用https
主要就是使用HttpsConnection,HttpsConnection是HttpConnection的子类,使用方法一样的,不再啰嗦了,给个帮助手册里面的代码
java 代码
- void getViaHttpsConnection(String url)
- throws CertificateException, IOException {
- HttpsConnection c = null;
- InputStream is = null;
- try {
- c = (HttpsConnection)Connector.open(url);
-
-
-
-
-
-
- is = c.openDataInputStream();
-
- if c.getResponseCode() == HttpConnection.HTTP_OK) {
-
- int len = (int)c.getLength();
- if (len > 0) {
- byte[] data = new byte[len];
- int actual = is.readFully(data);
- ...
- } else {
- int ch;
- while ((ch = is.read()) != -1) {
- ...
- }
- }
- } else {
- ...
- }
- } finally {
- if (is != null)
- is.close();
- if (c != null)
- c.close();
- }
- }
编写完成后,用模拟器应该就可以访问https了。
5、可能遇到的问题
1)运行midlet时,异常Certificate was issued by an unrecognized entity
未将证书导入到wtk中
2)使用wtk界面来导入证书的时候,提示too big
换成文中描述的命令行方式来导入或者使用keytool导出一个cert证书
3)Certificate does not contain the correct site name
keystore里面的CN值不正确,重新生成keystore,CN填写为主机名,比如 127.0.0.1
4)删除证书
keytool -delete -alias tomcat -keystore c:\keystore -storepass hxrainbow
分享到:
相关推荐
**J2ME开发资料整理-在MIDlet中使用图标** 在Java 2 Micro Edition (J2ME)的开发环境中,MIDlet是用于移动设备和嵌入式系统的应用程序框架。MIDlet提供了丰富的功能,使得开发者能够创建交互式的、功能强大的移动...
《黑莓MIDlet开发指南》(BlackBerry MIDlet Development Guide V4.0)是一份详细介绍如何使用黑莓JDE(Java Development Environment)开发适用于黑莓手机的标准MIDlet应用程序的技术文档。 #### 二、文档概述 该...
同时,使用HTTPS进行加密通信可以保护敏感数据不被窃取。 6. **异步通信**:为了提高用户体验,MIDLet可以采用异步方式通信,这样在等待服务器响应时,用户界面仍然可以操作。J2ME提供了一些轻量级的线程模型,如`...
- **添加证书信息到JAD文件**:使用JadTool工具将自签名证书的信息添加到MIDlet的JAD文件中。 - **添加签名信息到JAD文件**:通过JadTool工具,将签名信息添加到JAD文件中,确保MIDlet可以被正确验证。 ##### 5. ...
**MIDlet 控件实例项目 (mvc) 深度解析*...通过这个项目,学习者可以深入理解MIDlet的生命周期管理,控件的使用,以及如何在J2ME环境中实现MVC设计模式。这对于想要进入移动开发领域的开发者来说是一份宝贵的实践资料。
- **开发过程中的签名**: 在开发阶段,为了方便调试和测试,开发者通常会使用自签名证书对Midlet进行签名。这种签名方式主要用于内部测试,不具备广泛的认可度。 - **产品签名**: 当Midlet准备发布时,需要使用由...
本文将详细讲解如何在J2ME中读取MIDlet的系统属性,并解释这些属性的含义。 首先,让我们看一个简单的示例代码,该代码创建了一个名为`DetectMIDlet`的MIDlet,它展示了一些关键的系统属性: ```java import javax...
【标题】"Midlet2.rar_midlet_simple" 涉及的是Java 2 Micro Edition (J2ME) 平台中的MIDlet应用开发,利用Lightweight User Interface Toolkit (LWUIT) 库来创建一个简单的用户界面。MIDlet是J2ME中的一个核心概念...
首先,要实现MIDlet与电脑的蓝牙通信,我们需要理解J2ME中的蓝牙API,主要涉及两个包:javax.bluetooth和javax.microedition.io。`javax.bluetooth`包提供了用于搜索、发现和连接蓝牙设备的类,而`javax....
4. WTK使用:如何在WTK环境中创建、运行和调试Midlet应用程序。 5. JAR文件打包:了解如何将编译后的Java类打包成.JAR文件,以便在Java支持的设备上运行。 这个项目对于理解移动应用与服务器之间的通信机制,以及...
在移动设备上开发应用程序,尤其是早期的Java ME(Mobile Information Device Profile)平台,开发者常常使用MIDlet来创建可运行在手机上的小程序。MIDlet是Java Micro Edition(Java ME)的一部分,它允许开发者为...
总的来说,这个RMS-MidLet例子是一个很好的起点,可以帮助初学者理解J2ME中的RMS系统,以及如何在实际项目中使用它来实现数据持久化。通过深入研究这个例子,你可以学习到如何在资源有限的移动设备上有效地管理和...
这里的“midlet”通常是MIDP应用程序的基本单元,类似于Java应用程序中的JAR文件。 描述中提到“View PNG files and see PNG files”,这表明这个MIDlet可能是一个PNG图像查看器。PNG(Portable Network Graphics)...
除了使用rapc之外,还可以直接在BlackBerry开发环境中导入MIDlet项目。这种方式更加方便,尤其是在处理复杂的项目结构时。具体步骤如下: 1. **准备MIDlet项目**: 确保你的MIDlet项目是完整的,包含了所有的源代码...
使用pascal语言开发手机java游戏的工具.
在Java ME(J2ME)开发环境中,遇到调试困难,特别是使用Eclipse时无法精确地定位到代码的出错行,这时可以考虑转向其他开发工具,比如JBuilder2006。JBuilder2006是一款强大的Java集成开发环境,尤其在支持J2ME...
3. **增强用户体验**:通过对MIDlet进行签名,可以减少用户在使用过程中出现的安全提示,从而提高用户体验。 #### 三、签名MIDlet的意义 对MIDlet进行签名的主要意义在于: 1. **提升应用程序的信任度**:签名后...
根据提供的文件信息,本文将对《MIDP_2_0_Signed_MIDlet_Developers_Guide(2.0版本)》中的关键知识点进行详细解读。这份文档主要介绍了MIDP 2.0环境下对MIDlets进行签名的相关技术和实践方法。 ### 关于文档 该...