• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:iアプリとサーブレットとの連携。)

iアプリとサーブレットとの連携について

このQ&Aのポイント
  • iモードjava開発に対応したWebサーバーの制限について質問です。
  • 携帯向け(Docomo)スケジュール帳サーブレット開発の前に、簡単なiアプリとの連携テストを行いましたがエラーが発生しています。
  • Windows2000 Professionalとj2sdk1.4.0_01を使用しています。Webサーバが原因か他に原因があるのかわかりません。

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

  • ベストアンサー
  • sasadora
  • ベストアンサー率68% (59/86)
回答No.4

開発機であるtomcatの場合は接続できないというのは、 i-modeでHTMLページすら見られないのでしょうか? ページすら見られないのでしたらそれはアプリの問題ではなく、 環境設定の問題だと思います。 次のことを確認してみてはどうでしょう? tomcatのサイトに外部からWWWブラウザからアクセスできるか?  (外部からhttp://xxxx.ac.jp/などのURLで) 自分の開発機(tomcat)がファイアーウォールの中にあるために、 外部からのアクセスが制限されているということはないですか? 内側でエミュレータを使うとうまく動作するのに、 携帯を使うと、外部からのアクセスになるので弾かれてしまう。 ポート8080なようなので、弾かれてそうな気もします。 ウィルス対策ソフトにもそんな機能があったりします。 とりあえずtomcatをポート80で動作するように設定を変えて試してみるのも手かも。 と、想像しましたが自信はないです。 ここまでくると、具体的な設定や環境を見てみないと、 なんとも言えないです。ごめんなさい。

wareha_uminoko
質問者

お礼

貴殿の言われる通り、8080のポートが開いてませんでした。開けてもらうように頼んだところ、無事iモードにてtomcat上のHTMLファイルをみることができまして解決しました。度重なる質問にもご丁寧にお答え頂きまして本当に本当に感謝いたしております。ありがとうございました。

その他の回答 (3)

  • sasadora
  • ベストアンサー率68% (59/86)
回答No.3

tomcatやapacheはどこにあるのでしょうか? 想像するに、 tomcat…自分の開発マシン apache…一般のプロバイダなど でないですか? 接続するときは、URLにlocalhostとか指定してませんよね? また、i-modeで接続する場合は、IPアドレスで接続することはできます。 (http://xxx.xxx.xxx.xxx/~~~)…グローバルIPアドレス しかし、iアプリから接続する場合は、IPアドレスでの接続は 確かダメだったと思います。ちゃんとドメイン名で指定したURL でないとダメだったと思います。 この辺はドコモの公式ドキュメントを読んでみてください。 iアプリでのネットワーク接続での制限事項が書いてあります。 実機でダメだったというのは、なかなか判断つきにくいです。 (機種ごとの違いもあるので) どういうURLでADFファイルにはどう設定しているかを、 聞いて、多少ならば判断つくこともありますが。

wareha_uminoko
質問者

補足

URLはきちんとドメイン名を記述してます。 http://peterpan・・略・・ac.jp:8080/mypiloti/1st.htm ホスト名『peterpan』。ルートディレクトリの下に『mypiloti』というフォルダを作り、その中に『1st.htm』というファイルを入れています。 また、 >tomcat…自分の開発マシン >apache…一般のプロバイダなど >でないですか? 言われる通りです。後、エミュレータ設定は デバイス指定・・・phone1bw 読み込み先URL・・・http://peterpan・・略・・ac.jp:8080/ NetworkAccess・・・enable 他は何も記述していませんし、チェックボックスにもチェックしておりません。 度々、アドバイスをあおる形になりますが、よろしくお願いします。

  • sasadora
  • ベストアンサー率68% (59/86)
回答No.2

>エラーが発生しているのはおそらくサーブレット受信時だと思います。がその根拠はいまいちわかっていません。 エミュレータの方から出力されているとしたら、 「携帯からの送信時」だと思いますよ。 「サーブレットでの受信時」だとしたら、tomcatの方でエラーが出力されるはずです。 現状としては、まだサーブレットが動作もしていないのだと思います。 エラーの原因としては、おっしゃるようにuseNetworkの件もありますが、 「iアプリで接続できるサーバーの制限」もあります。 iアプリがネットワーク接続できるのは、セキュリティ上、ダウンロード元の サーバーのみです。 Aサーバーからダウンロードしたiアプリは、Aサーバとしか通信できません。 そのへんは大丈夫でしょうか? エミュレータでの設定でどこからダウンロードしたものかどうかの 設定があります。(ADFファイルではなく) そこで設定したサーバーとしか通信できないのでご注意ください。

wareha_uminoko
質問者

補足

遅くなりまして申し訳ありません。 エミュレータの設定でサーバを指定するとエミュレータでの動作は確認できましたが、実機ではできませんでした。ダウンロードし直そうとしたところ、接続が不可能になっていました。 tomcatにおいたhtmlファイルを携帯でみることができず、試しにtomcatではなくほかのwebサーバ(apatch)にhtmlファイルをおいたところ、携帯からそのURLを指定しみることができました。なぜなのでしょうか?

  • sasadora
  • ベストアンサー率68% (59/86)
回答No.1

今の状況では対応策などは考えようがないので、 まずは原因と箇所を特定させましょう。 携帯からの送信→     サーブレットでの受信→     サーブレットからの送信→ 携帯での受信 処理はこのような流れですよね。 さて、エラーが発生しているのは携帯なわけですが、 送信時なのか、受信時なのかを特定させましょう。 開発時にはエミュレータを使って動作確認していますか? それならばエミュレータにスタックトレースが出力されるので、 どこでエラーが発生しているか分かるはずです。 ひょっとしたら、携帯側は問題なくて、サーブレットが想定外の データ出力をしているせいで、携帯側でエラーになっているかも知れません。(でも、状況をみるとこの可能性は低いと思います) どこでエラーが発生しているか分かれば、あとは結構楽です。 箇所が分かってもなぜエラーになるか分からない場合は、 また質問してみてください。 「この箇所で~~~というエラーになるのですが、なぜでしょうか?」 そうすれば、アドバイスも得られやすいでしょう。 難解なのは、エミュレータでは正常にいくが、実機ではうまく いかないといったケースです。(今回もそうなのでしょうか?) 実機ではエラー内容が出力されないので、どこで発生しているかは 分かりにくいです。 私だったら、Dialogを怪しいところに所々で表示させて、 どこまで正常に動いて、どこでエラーになるかを把握します。 場所が分かれば、なぜうまくいかないかを考えやすいと思います。 長くなりましたが、まずはエラーが発生する箇所を特定することから 始めてみてはいかがでしょうか?

wareha_uminoko
質問者

補足

iアプリのエミュレーションで実行させたところ、エラーメッセージとして「Uncaught excpetion: java/lang/SecurityException」が表示されました。 security exceptionエラーの原因として、ADFファイルのパラメータ「useNetwork」に「http」が設定されているかの確認もすみました。また、携帯端末からはほかのURLを認識することもでき、端末からのネットワーク接続が読めないということもないと思います。 エラーが発生しているのはおそらくサーブレット受信時だと思います。がその根拠はいまいちわかっていません。

関連するQ&A

専門家に質問してみよう