ラベル eclipse の投稿を表示しています。 すべての投稿を表示
ラベル eclipse の投稿を表示しています。 すべての投稿を表示

2018/08/30

[Java] Google App Engine で自作のJarライブラリを読み込ませる

はじめに

eclipseで自作jarライブラリをビルドパスに登録すると問題なくコンパイルされる。
ただGAEにデプロイすると「NoClassDefFoundError」と自作jarのクラスが見つからないという例外が発生する。

その対処法を調べたのでここにまとめる。
※他にもっと効率のいい方法があると思います。

手順

  1. 自作jarファイルをGAEにデプロイするプロジェクトのフォルダの「(GAEプロジェクト)/src/main/webapp/WEB-INF/lib/」フォルダへコピー
  2. eclipseを起動し、下記のように自作jarまで開く
  3. jarを右クリック -> ビルド・パス -> ビルド・パスに追加 をクリック
  4. これでGAEへデプロイしても問題なく動作するはず







[Java] Google App Engine で「No handlers matched this URL.」が出る

開発中突然、GAEにデプロイしたアプリが @webservlet で指定したURLを認識せず、404 not found を返すようになったので、その対処法メモ。

状況

  • デプロイ時にはエラーなどは出ない
  • htmlなどの静的ファイルにはアクセスできる
  • @webservlet で指定したURLにアクセスしても「404 not found」が返り。
  • Google Stackdriver Loggingのアクセスログを見ても「No handlers matched this URL.」のみでJavaのエラーが出ているわけではない。
    • 挙動的には@webservlet で指定したURLを読み取っていないイメージ
  • 別のプロジェクトを用意し、GAEにデプロイすると問題なく動作する。
    • eclipseのプロジェクトの設定が原因?

対処法

問題が出るプロジェクトのフォルダを見ると、「src」「target」「.setting (隠しフォルダ)」の他に正常なプロジェクトには存在しない「bin」というフォルダがあった。

binフォルダを別の場所に移動したところ、上記の問題が発生しなくなった。

binフォルダが悪さをしていたのが原因

以上




2018/02/23

[Java 8] JSPファイルをGoogle App Engineにデプロイできない

Google App Engine (GAE) にJava Server Pages (JSP)ファイル込みのコードをデプロイ(アップロード)しようとすると、エラーが出て失敗するためその対処法メモ。

2018/01/29

[Java] Google App Engine で管理者用ページを作る

Google App Engine でデータ登録などに使用する管理者用ページを作る

環境

  • Google App Engine Standard
  • Cloud Tools for Eclipse
  • Java 8

web.xmlの設定

webapp/WEB-INF/web.xml に以下の項目を追記する
<security-constraint>
  <web-resource-collection>
    <web-resource-name>admin</web-resource-name>
    <url-pattern>/admin/*</url-pattern>
  </web-resource-collection>
  <auth-constraint>
    <role-name>admin</role-name>
  </auth-constraint>
</security-constraint>

url-patternで管理者アカウントが必要なページを指定。
この場合は /admin/ 以下のページ全てが対象

role-nameを*にするとGoogleアカウントを持っている人すべてがログインできる。

管理者の設定

管理者の設定はGoogle Cloud Console の「IAMと管理 -> IAM」から設定

projectを作成したオーナーはApp Engineの管理者権限がデフォルトで割り当てられているので追加の設定は無し


別のアカウントログインできるようにするには「追加」から以下の図のように「App Engine -> App Engine 管理者」で別アカウントのGmailのアドレスを入力して権限を与えること


アクセス

App Engine にデプロイしてから対応するページにアクセスすると以下の図のようなログイン画面が表示される


管理者アカウントだとhtml、jspページが表示される。

許可のないアカウントだと 403 Forbidden 「Error: Forbidden」が表示される

参考

web.xml による認証の設定、管理者の指定 - Google App Engine 入門

2015/04/17

centos7にeclipseをインストール

・インストール

ダウンロードサイトからEclipse(4.4.2)をダウンロードしてファイルを/usr/に展開する。
# sudo tar -zxvf eclipse-java-luna-SR2-linux-gtk-x86_64.tar.gz -C /usr/

/usr/bin/にEclipseのリンクを作成する。
# sudo ln -s /usr/eclipse/eclipse /usr/bin/eclipse

・Gnomeランチャーの作成

ランチャーにEclipseが表示されるようにする。ランチャー設定ファイルを/usr/share/applications/eclipse-4.4.2.desktopに作成する。
# sudo vi /usr/share/applications/eclipse-4.4.2.desktop

ランチャー設定を次のように記述して保存する。
[Desktop Entry]
Encoding=UTF-8
Name=Eclipse 4.4.2
Comment=Eclipse Luna
Exec=/usr/bin/eclipse
Icon=/usr/eclipse/icon.xpm
Categories=Application;Development;Java;IDE
Version=1.0
Type=Application
Terminal=0

・Eclipseの起動

コマンドから起動する場合はeclipseと入力すると起動する。
# eclipse

GUIから起動する場合はアプリケーション -> プログラミング -> Eclipse 4.4.2から起動する。



以上。

参考:
Install Eclipse 4.4 Luna IDE on CentOS 7 / RHEL 7
[CentOS7]Eclipse Lunaのインストール | Zero Configuration