こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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); }
}
}
}


どなたかアドバイスを頂けるようお願い致します…。

投稿日時 - 2008-12-08 11:58:20

QNo.4538875

すぐに回答ほしいです

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

ConnectionException#getStatus()でエラーステータスが得られるので、原因の詳細を調べてみてください。エラーステータスはAPIリファレンスでConnectionExceptionのページを見れば載っています。

また、エラー発生時のTomcatへのアクセスログはどのようになっていますか?何も残っていませんか?

投稿日時 - 2008-12-09 16:06:19

お礼

なんとか無事、解決致しました^^
理由はプログラムの原因ではなく、学校施設でのHttpのプロキシ設定が複雑化しており、Doja側の設定が間違っていたので、そちらを直し無事解決致しました!

長々と質問の検証に、回答をありがとうございます^^

投稿日時 - 2008-12-09 18:00:55

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(4)

ANo.3

書き忘れです。

>エミュレータからでは、ローカルのTomcatにはアクセスできないんですね?

これは違います。エミュレータなら大丈夫です。携帯電話実機では無理ということです。

投稿日時 - 2008-12-08 16:52:10

補足

Illegal portは、8080を付け忘れていたために起きました。
そちらを直したところ、今度は com.nttdocomo.io.ConnectionException が発生しました;;
いくつかADFの設定で、PackageURLには予想できるものは入れましたが「java.lang.SecurityException: Illegal host」か「com.nttdocomo.io.ConnectionException」のエラーを行ったり来たりという状態です;

他に考えられる原因はありますでしょうか?;;

投稿日時 - 2008-12-09 09:48:13

お礼

なるほど! エミュレータなら大丈夫なのですね。
昨日アドバイス頂いた通りの記述をPackageURLに記入してみると、Illegal host ではなく、Illegal portになり進展がありました!

またIllegal portについて調べて、ちょっと作業進めてみようと思います!

投稿日時 - 2008-12-09 09:39:04

ANo.2

質問文をよく見ていませんでした。

ADFのPackageURLを「http://localhost:8080/dosei_jisaku.jar」にしてみてください。

投稿日時 - 2008-12-08 16:48:58

補足

上の回答に補足をさらに付け足せないので、こちらに補足致します;

上記の命令で、どこからエラーに飛んでいるかを調べてみたところ、tryの中にあるc.connect();のところで、エラーに飛んでいるようです。
命令自体は間違っておらず、上の文も間違いはないように思いますが…。現在も原因を調べています;;

投稿日時 - 2008-12-09 10:12:20

お礼

現在、そちらを確認できる場所に居りませんので明日必ず試してみたいと思います!

明日にまた、こちらへ回答の補足として付けますのでお返事の程宜しくお願いします;;

投稿日時 - 2008-12-08 17:42:28

ANo.1

エミュレータを使っての話ですよね?
携帯端末からlocalhostにアクセスしてもエラーになるのは当然なので・・・。

iアプリうんぬん以前に「​http://localhost:8080/mfs/mfs/test/dosei_jisakuSV」自体は正常に表示できているのでしょうか?
8080ポートが空いていないということはないですか?
ADFファイルのパラメータ「useNetwork」に「http」が設定されていますか?

投稿日時 - 2008-12-08 12:25:30

お礼

Cyanberryさん、早速のご回答ありがとうございます。
確かに、DocomoエミュレータのDojaを使っています。
エミュレータからでは、ローカルのTomcatにはアクセスできないんですね?
それは、こちらの調べ不足でした;;

ポートは、開いています。HttpブラウザでのTomcat連携して表示はできました。
また、UseNetworkにHttpは設定してあります。

これは、根本的に間違っていたのですね;

回答ありがとうございました^^

投稿日時 - 2008-12-08 16:24:04

あなたにオススメの質問