用戶通過無線網絡 (GPRS/3G/WiFi) 訪問 WEB/WAP 頁面 → 點擊鏈接下載 .jad → 設備解析 JAD 檢查兼容性 → 下載 .jar → AMS 安裝 → (可選) 向服務器上報安裝狀態。
編輯 TOMCAT_HOME/conf/web.xml,確保包含以下映射 (Tomcat 5.5+ 默認已含,舊版需手動添加):
<mime-mapping>
<extension>jad</extension>
<mime-type>text/vnd.sun.j2me.app-descriptor</mime-type>
</mime-mapping>
<mime-mapping>
<extension>jar</extension>
<mime-type>application/java-archive</mime-type>
</mime-mapping>
驗證方法:瀏覽器訪問 https://your-server:8080/test.jad,響應頭 Content-Type 應為 text/vnd.sun.j2me.app-descriptor。
MIDlet-Jar-Size: 2128
MIDlet-1: HelloWorld,/icon.png,com.j2medev.mingjava.HelloWorld
MIDlet-Jar-URL: https://222.28.218.222:8088/HelloWorldMIDlet.jar
MicroEdition-Configuration: CLDC-1.0
MIDlet-Version: 1.0.0
MIDlet-Name: HelloWorldMIDlet
MIDlet-Vendor: www.J2MEdev.com
MicroEdition-Profile: MIDP-1.0
含類文件、圖標 icon.png、META-INF/MANIFEST.MF。MANIFEST 中 MIDlet-Name、MIDlet-Version、MIDlet-Vendor 必須與 JAD 完全一致。
<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "https://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<card title="Software Center" id="main">
<p>Available Applications:</p>
<p align="left">
<a href="HelloWorldMIDlet.jad">HelloWorld MIDlet</a></p>
</card>
</wml>
HelloWorldMIDlet.jar、HelloWorldMIDlet.jad、down.wml 放入 TOMCAT_HOME/webapps/ROOT/https://your-ip:8088/down.wml
@WebServlet("/download.jad")
public class JadServlet extends HttpServlet {
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
String jarUrl = "https://" + req.getServerName() + ":" + req.getServerPort() + "/download.jar";
String jadContent = "MIDlet-Jar-URL: " + jarUrl + "\n" +
"MIDlet-Jar-Size: " + getJarSize() + "\n" +
"MIDlet-Name: DynamicApp\n" +
"MIDlet-Version: 1.0.0\n" +
"MIDlet-Vendor: MyCorp\n" +
"MIDlet-1: DynamicApp,/icon.png,com.mycorp.DynamicApp\n" +
"MicroEdition-Configuration: CLDC-1.1\n" +
"MicroEdition-Profile: MIDP-2.0";
resp.setContentType("text/vnd.sun.j2me.app-descriptor; charset=UTF-8");
resp.getWriter().print(jadContent);
}
}
| 現象 | 原因 | 解決 |
|---|---|---|
| 手機提示「無效的 JAD」 | MIME 類型錯誤或 JAD 格式錯誤 (編碼、換行、必填字段缺失) | 檢查 web.xml MIME、JAD 編碼為 UTF-8、必填 6 項屬性齊全 |
| 下載 JAR 失敗/卡住 | MIDlet-Jar-URL 為相對路徑、JAR 大小與 MIDlet-Jar-Size 不符、防火牆攔截 | 使用絕對 URL、JAD 中 Size 填寫實際 JAR 字節數、開放端口 |
| 安裝後圖標不顯示 | JAR 內無 icon.png 或路徑錯誤 | 確認 jar tf HelloWorldMIDlet.jar | grep icon.png |
| HTTPS 下載失敗 | 設備不信任服務器證書 (自簽名) | 使用 CA 簽名證書,或引導用戶安裝根證書 |