[iアプリ][実機で通信エラー]com.nttdocomo.io.ConnectionException

このQ&Aのポイント
  • 実機での通信エラーに関する解決方法
  • 問題の原因と改善方法についての情報が不足している
  • 必要な情報を提供することで問題の解決に向けたサポートが受けられる
回答を見る
  • ベストアンサー

[iアプリ][実機で通信エラー]com.nttdocomo.io.ConnectionException

エラーが発生する状況を以下に示します。 *doja3.0などエミュレーター上では正常に動作しました。 *実機D506iで実行するとエラーが発生。 *cgiはperlで作成し http://isweb.www.infoseek.co.jp/ のiswebライト(無料)サーバーに置いています。 プログラムの概要は下記アドレスへscore=30000とid=abcdeのデータをcgiへ送り、ランキング情報を取得するプログラムです。 //----------------以下通信プログラムの一部-------- HttpConnection con = null; String url = IApplication.getCurrentApp().getSourceURL() + "/cgi-bin/test/test3.cgi?score="30000"&id=abcde"; con = (HttpConnection)Connector.open(url, Connector.READ, true); con.setRequestMethod(HttpConnection.GET); try{ con.connect(); }catch (com.nttdocomo.io.ConnectionException e) { System.out.println("status=" + e.getStatus()); con.close(); } ------------------------以下省略------------------- con.connect();でエラーが発生し、トレース情報には status=10 という結果が表示されます。 http://acerola.org/motokazu/iap/manual/Doja4.0/com/nttdocomo/io/ConnectionException.html#HTTP_ERROR 上記アドレスを見てみたのですが、結局何が原因で何を改善したら良いのか分からない状態です。 他に必要な情報などがありましたら言っていただければ思います。 どうぞ宜しくお願いいたします。

  • Java
  • 回答数1
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
  • yokkou
  • ベストアンサー率30% (34/111)
回答No.1

ADF設定の UseNetwork = http してますか? あとは接続先URLが間違っているかのどっちかかと String url をの中身を確認してください

believerss
質問者

お礼

ADFのURLに設定しているアドレスと実際にjarファイルを置いている場所のアドレスが違っているのが原因だと分かりました。 この度はご回答頂きまして有難う御座います。

関連するQ&A

  • DoJa5.1でiアプリを作っています。

    DoJa5.1でiアプリを作っています。 サーバー上のテキストファイルの内容を、スクラッチパッドに保存しようとしています。 サーバ(さくらのレンタルサーバ)がcontentLengthを返していないようで、 うまく動作しません。 サーバ上のテキストファイルはサイズが一定ではありません。 contentLengthを取得する方法、または別の解決方法があったら教えてください。 よろしくお願いします。 HttpConnection http = null; InputStream in = null; data = null; try{   http = (HttpConnection)Connector.open("http://xxxxx.sakura.ne.jp/cgi-bin/xxxxx.cgi", Connector. READ);   http.setRequestMethod(HttpConnection.GET);   http.setRequestProperty("Content-Type","text/plain");   http.connect();   int contentLength = (int)http.getLength();   in = http.openInputStream();   // textbox.setText(Integer.toString(contentLength));   // contentLengthの値を確認したらなにもない(空欄のまま)   // ちなみに、5行まえの「http.setRequestProperty("Content-Type","text/plain");」   // をコメントアウトすると、contentLengthは「-1」になりました。   // data = new byte[contentLength];   // contentLengthが取得できないので、ここでエラーになる   // in.read(data); } catch... サーバ上のCGIです。 -------------------------------------------------------------- #!/usr/bin/perl print "Content-type: text/plain\n\n"; print "test"; --------------------------------------------------------------

    • ベストアンサー
    • Java
  • [iアプリ]エミュでは正常。携帯実機で実行すると途中でエラーが発生。

    現在iαppliTool for DoJa-4.1(FOMA)(以下DoJa4.1)でiアプリを作成しています。 DoJa4.1でビルド(正常終了) DoJa4.1で起動(エラーなどは無く正常にiアプリ起動) 携帯(D506i)で起動(エラーなどは無く正常にiアプリ起動) しかしゲームの途中(毎回同じ場面)で20回中一回ぐらいの確率でiアプリエラーが発生し強制終了のような状態が起こります。 DoJa4.1でも何度となく同じ操作をしていますが一度もエラーなどが発生し終了した事はありません。何故携帯側でこのようなエラーが発生してしまうのでしょうか? やはりどこかにiアプリ特有のバグのようなモノがあるのだとは思うのですが見つける事が出来ず困っています。 エミュレーターではエラーにならず、実機ではエラーになってしまうような事例などお分かりになりましたら教えていただければ幸いです。 どうぞ宜しくお願いします。

    • ベストアンサー
    • Java
  • iアプリとサーブレットの連動(eclipse)

    はじめまして、java初心者の者です。 現在私は、eclipseを使って、iアプリ開発に挑戦しています。 その中で、iアプリとサーブレットを連動させる方法が分からず、困っています。 iアプリ上の画面で、aと入力してサーブレットに送ると、サーブレットでテキストデータを書き換え、Aに変更して送り返すという、本当に初歩的な動作を試したいのですが、上手く連動してくれません。 ネット上のサンプルソースを丸写しで使っても動かないため、おそらく設定やファイルの置き場所、接続先の記述などに問題があるのだと思います。 インターネット等でいろいろと情報を集めてみたのですが、そもそもeclipseの中でDoJaプロジェクトを作成した場合、サーブレットを使うにはどのような設定が必要なのか、またデータはどのフォルダへ保存するべきなのかといった基礎的な情報が収集できず、困っています。 tomcatプロジェクトを作成し、その中でjspとサーブレットを連動させるテストは成功したのですが、DoJaプロジェクトではweb.xmlファイルを作らなくていいのか?など、本当に基礎的な部分が全く理解できていません・・・。 また、以下がネット上で拾ったサンプルコードです。 同じフォルダにあるサーブレット(Test)と連動させたいと思っているのですが、下記に何か間違いはないのでしょうか? ---------------------------------------------------------------- import com.nttdocomo.ui.*; import java.io.*; import com.nttdocomo.io.*; import javax.microedition.io.*; public class A extends IApplication { public void start() { String res = http("servlet/Test?test=a"); showDialog(res); } void showDialog(String s) { Dialog d = new Dialog(0, "dialog"); d.setText("" + s); d.show(); } String http(String name) { String url = IApplication.getCurrentApp().getSourceURL(); url += name; String res = null; HttpConnection conn = null; try { conn = (HttpConnection)Connector.open(url, Connector.READ); conn.setRequestMethod(HttpConnection.GET); conn.connect(); InputStream in = conn.openInputStream(); int len = (int)conn.getLength(); byte[] buf = new byte[len]; int off = 0; for (;;) { int n = in.read(buf, off, len); if (n < 0) throw new Exception(); off += n; len -= n; if (len == 0) break; } in.close(); conn.close(); return new String(buf); } catch (Exception e) { try { conn.close(); } catch (Exception e2) { } } return null; } } --------------------------------------------------------------- 本当に基礎的な質問で申し訳ありません。 どなたかご存知の方がいらっしゃいましたら、何卒よろしくお願いいたします。 ※以下、私の環境をお伝えいたします。 ・eclipse3.1 ・DoJa-5.1 ・apache-tomcat-6.0.20

    • ベストアンサー
    • Java
  • iアプリでのHTTP通信について

    こんばんわ。大変困っています。 現在、iアプリで業務アプリの開発を行っています。 HTTP通信によりサーバ上のテキストファイルを読み込もうとしているのですがどうもうまくいきません。 開発環境はdoja5.1+eclipse3を使用しております。 ADFの設定はPackageURL及びUseNetworkを設定しております。 この状態で以下のソースコードをデバッグ起動すると「httpc.connect();」にてConnectionExceptionが発生し、statusの値は0です。 APIリファレンスを参照しても「UNDEFINED:未定義の例外を表します」とあり、何のこっちゃわかりません。 どんな情報でもいいので宜しくお願いいたします。 以下はHTTP通信部分のソースです。 public String HttpGetTest(){ String strRet=""; try { HttpConnection httpc = (HttpConnection)Connector.open(getSourceURL()+"test.txt",Connector.READ,true); httpc.setRequestMethod(HttpConnection.GET); httpc.connect(); int respCode=httpc.getResponseCode(); String respMsg=httpc.getResponseMessage(); long contentLength=httpc.getLength(); if (respCode == HttpConnection.HTTP_OK) { byte rcvData[] = new byte[(int)contentLength]; InputStream ips=httpc.openInputStream(); ips.read(rcvData); ips.close(); strRet = new String(rcvData); } httpc.close(); }catch(ConnectionException ce){ Dialog dlgWarning = new Dialog(Dialog.DIALOG_ERROR,"ConnectionException"); dlgWarning.setText(ce.toString() + ":" + ce.getStatus()); dlgWarning.show(); } catch(Exception e){ Dialog dlgWarning = new Dialog(Dialog.DIALOG_ERROR,"Exception"); dlgWarning.setText(e.toString()); dlgWarning.show(); } return strRet; }

    • ベストアンサー
    • Java
  • iアプリ Tomcatと連携

    前回の質問は、分かりづらいようなので新たに質問させていただきます。 現在、TomcatとiアプリDoja_Ver5.1、MySQLを使いDojaの方からTomcatへアクセスしTomcatからMySQLのデータを取りDojaの方へ表示させたいのですが、下記の文で何度やっても「java.lang.SecurityException: Illegal host」と出てしまいできません。 ADFファイルである、Jamファイルは、Jarファイルと同じ場所にあるので、PackageURLには「dosei_jisaku.jar」としか記述していません。 何故か、java.lang.SecurityException: Illegal hostが出て解決策も見出せずでいます;; public class dosei_jisaku extends IApplication { public void start() { mypanel wp_mypanel = new mypanel(); Display.setCurrent(wp_mypanel); } class mypanel extends Panel{ public mypanel() { add(new Label("項目名:")); TextBox w_name = new TextBox("",8,1,TextBox.DISPLAY_ANY); add(w_name); try { HttpConnection c = (HttpConnection)Connector.open("http://localhost:8080/mfs/mfs/test/dosei_jisakuSV"); ←同PCにあるTomcatのServlet(classファイル)へアクセスしています。 c.setRequestMethod(HttpConnection.GET); c.connect(); if(c.getResponseCode() != HttpConnection.HTTP_OK){ throw new IOException(); } InputStream is = c.openInputStream(); ByteArrayOutputStream os = new ByteArrayOutputStream(); for(;;){ int n = is.read(); if (n == -1) { break; } os.write(n); } String str = new String(); str = os.toString(); w_name.setText(str); os.close(); is.close(); c.close(); } catch(Throwable e) { w_name.setText("読込エラー" + e); } } } } どなたかアドバイスを頂けるようお願い致します…。

  • iアプリの実機起動時に「ソフトに継続動作出来ない障害が発生しました」

    エミュレーター上では正常に動作するのですが、自分のケータイ(P703iν,Doja4.1対応)に自作アプリをダウンロードして起動したときに、「ソフトに継続動作出来ない障害が発生しました」というエラーがでて終了してしまいます。 トレースの結果↓ message=Uncaughtexception happened throwable=java.lang.NullPointerException throwableMessage= ちなみに友達のケータイでも試したのですが、P704i(Doja5.0)はエラー SO903i(Doja5.0)は正常に動作しました。メーカーや機種の違いなのでしょうか? 自分でも、原因究明のため下記のことを確認したのですがこれ以上に思いつくものがありません。 ・スクラッチパッドの容量オーバー P703iνのスクラッチパッド容量はjarファイルが100kbまで、jarファイル+リソースの上限が400kbなのに対し、jarファイルが69kb,resourceが88kbと明らかに余裕でした。ADFの設定は余裕を持って200kbにしました。 ・Threadを使ってるのが原因ではないか? Dojaだと、Threadはあまり推奨されていないようなので、com.nttdocomo.utilのTimerクラスで代用しましたが、おなじ結果になってしましました。 ・Doja4.1でサポートされてないAPIを使ってないか? 隅々まで確認しましたがみつかりませんでした。(商用目的のアプリなのでソースは公開できません) ・トレース内容でもあったように、nullのThrowable値をスローしてないか? 例外エラー時のスタックトレースデータなどをThrowable値として格納しているのではないかというのが自分の理解ですが、正直ここがよくわかりません。どなたかご教授してもらえるとありがたいです。。。

  • PerlでIO::Socket::INET: connect: Unknown errorについて プロキシ設定?

    PerlでIO::Socket::INET: connect: Unknown errorが発生します。IEを使う時でもインターネットに接続する場合、プロパティで192.168.1.1を設定しておりますが、 プロシキ接続できる、設定方法はあるのでしょうか?

    • ベストアンサー
    • Perl
  • dojaのHTTP通信時Exception

    iアプリでアプリの開発を行っています。 開発環境はdoja5.0+eclipse3.1を使用しております。 HTTP通信によりサーバにバイナリデータを送信したいのです ADFの設定はPackageURL及びUseNetworkを設定しております。 localhostでエミュレータでテストしているため PackageURLは「http://localhost:80/dictionary.jar」と設定しています。 以下のソースコードをデバッグ起動すると「httpCon.connect();」にて exceptionが発生して、「Illegal connection object state」のいう メッセージがかえってきます。 以下はHTTP通信部分のソースです。 どうか知恵をお貸しください。 よろしくお願いいたします。 // URLを作成する String url = IApplication.getCurrentApp().getSourceURL() + "getScore.php"; StringBuffer reqMsg = new StringBuffer(); DataInputStream fromStream = null; DataOutputStream toStream = null; HttpConnection httpCon = null; try {   // HTTP接続処理   httpCon = (HttpConnection)Connector.open(url, Connector.READ_WRITE, true);   httpCon.setRequestMethod(HttpConnection.POST);   httpCon.setRequestProperty("Content-Type", "application/x-xpinstall");   //送信データ元(スクラッチパッド頭8000バイト分)   fromStream = Connector.openDataInputStream("scratchpad:///0;pos=0,length=8000");   //送信データ先   toStream = httpCon.openDataOutputStream();   byte[] buff = new byte[8000];   fromStream.read(buff);   toStream.write(buff);   //http接続   httpCon.connect();←ここでException

    • ベストアンサー
    • Java
  • iアプリ/サイコロの作り方

    Doja5.1 J2SDK1.4.2 を使ってソースを書いています。 まずサイコロを振るプログラムを作って、そのあとサイコロの数字を画像で表示できるようなものを作りたいです。 サイコロの画像はgifで用意してあります。 まずサイコロを振るプログラムですが以下のように書きました。 しかし、エラーが出ないにも関わらずエミュレータで動きません。 どこが間違っているのかどなたか教えてください。 また、画像を表示するほうのプログラムはどこを変えれば良いでしょうか。 よろしくお願い致します。 import com.nttdocomo.ui.*; import java.util.Random; class MainCanvas extends Canvas { int dice[] = new int[8*2]; Random rnd = new Random(); boolean init_flg = false; public MainCanvas() { setSoftLabel(Frame.SOFT_KEY_1,"サイコロ"); setSoftLabel(Frame.SOFT_KEY_2,"終了"); } public void paint( Graphics g ) { if(init_flg == false) { init_flg = true; return; } g.clearRect(0,0,200,2*8*13+30); int i; for(i=0;i<8*2;i++) { g.drawString(Integer.toString(i+1)+"回目のサイコロ",0,i*13+30); g.drawString(Integer.toString(dice[i]),100,i*13+30); } } public void processEvent( int type, int param ) { if( type == Display.KEY_PRESSED_EVENT ) { if( param == Display.KEY_SOFT1 ) { int i; for(i=0;i<8*2;i++) { dice[i] = rnd.nextInt(11)+2; } repaint(); } else if( param == Display.KEY_SOFT2 ) { IApplication.getCurrentApp().terminate(); } }

    • ベストアンサー
    • Java
  • 「テキストファイルをリソースから読み込む(iアプリです) 」の続き(発展)

    先日「テキストファイルをリソースから読み込む(iアプリです)」で質問させてもらったものです。 頂いた回答と本を参考に、何とか文字列を読み込んで、","などで区切って保存するところまで出来ました。 で、それを応用させて、「リソースにマップデータが保存してあり、RPGの二次元のマップをそれを使って表現する」ことをしようと試行錯誤したのですが、上手くいきません。ソースは以下の通りです。 import com.nttdocomo.ui.*; import javax.microedition.io.*; import com.nttdocomo.io.*; import com.nttdocomo.ui.*; final class HairetuCanvas extends Canvas{ public static int[][] MAP = null; BufferedReader mread = null; char check=','; //区切り用 int mrx=0,mry=0,i=0,j=0; //マップのX,Y座標 try{ InputStream instream = Connector.openInputStream("resource:///map.txt"); InputStreamReader inreader = new InputStreamReader(instream); mread = new BufferedReader(inreader); for(mrx=0;mrx<10;mrx++){ for(mry=0;mry<10;mry++){ i = mread.indexOf(check,j); j = i; MAP[mrx][mry] = mread.charAt(j-1); } } } catch(Exception e){ e.printStackTrace(); } finally{ try{mread.close();} catch(Exception e){} } } map.txtには 9,9,9,9,9,9,1,9,9,9 1,1,9,1,1,9,1,9,1,1 … という感じで、2次元配列(みたいな)データが10行*10列で入っています。 これを","で区切って、MAP[mrx][mry]に一つずつ保存していくという流れで考えているのですが、以下のエラーがでてきます。 C:\~\HairetuCanvas.java:11: 型の開始が不正です。 try{ ^ C:\~\HairetuCanvas.java:31: <identifier> がありません。 } ^ エラー 2 個 度々聞いてしまってすみません、回答頂けたら幸いです。

    • ベストアンサー
    • Java

専門家に質問してみよう