ローカルでの Web アプリケーションの実行
ここでは、Maven で Web アプリケーションをパッケージ化し、Jetty を使用してローカルで実行する手順を説明します。Web アプリケーションをパッケージ化する場合、このプロセスにより、Web アプリケーションの実行に必要なすべてのコンポーネント (Jetty を含む) がダウンロードされます。
- コマンドウィンドウを開き、c:\SalesforceCanvasFrameworkSDK に移動します。
-
コマンド mvn package を入力します。Maven によってアプリケーションとその連動コンポーネントがパッケージ化されると、コマンドウィンドウに出力が表示されます。このプロセスが正常に完了すると、次のような出力が表示されます。
- Jetty を使用してアプリケーションを実行するには、ローカル SSL サポートを有効にする必要があります。この手順はアプリケーションごとに 1 回実行すれば済むため、すでに実行している場合はスキップします。コマンドウィンドウが開いていて、現在の場所がディレクトリ c:\SalesforceCanvasFrameworkSDK であることを確認します。
-
コマンド keytool -keystore keystore -alias jetty -genkey -keyalg RSA を実行します。
このコマンドを実行すると、次の情報の入力を要求されます。キーストアのパスワードとして 123456 と入力し、最後に yes と入力して確定します。「Enter key password for <jetty>」というメッセージが表示された場合、Enter を押してキーストアのパスワードを使用します。その他の情報については、値を入力しても空白のままにしても問題ありません。
これにより、ディレクトリ c:\SalesforceCanvasFrameworkSDK に keystore という名前のファイルが作成されます。キーストアは、SSL をサポートするために Jetty で使用されます。
-
target\bin\webapp.bat コマンド (Windows) または sh target/bin/webapp コマンド (Unix/OS X) を実行して Web サーバを実行します。
Unix/OS X を使用している場合は、必要に応じて実行前に実行権限を webapp に追加します。これを行うには、chmod +x target/bin/webapp コマンドを使用します。
-
ブラウザを開いて https://localhost:8443/examples/hello-world/index.jsp の URL に移動し、アプリケーションが実行されていることを確認します。
署名されていない SSL 証明書でサイトを実行しているため、ブラウザやセキュリティ設定によってはセキュリティ例外を追加する必要が生じる場合もあります。
「This App must be invoked via a signed request!」というメッセージが表示されます。これは、Web アプリケーションがローカルで実行されていることを意味します。このメッセージが表示されるのは、Salesforce から署名付き要求を受信するようにアプリケーションが設計されているためです。そのため、アプリケーションは Salesforce キャンバス環境外では実行されません。