Upload
yoshihiro-yamada
View
2.431
Download
3
Embed Size (px)
Citation preview
Java on AzureTomcat Starter Kit +WindowsAzure4j でクラ
ウド開発WINGS プロジェクト 山田祥寛
[email protected]://www.wings.msn.to/
Java サーブレットを Azure で動かすには?
Java アプリからストレージサービスにアクセスする方法
結局、 Java on Azure ってどうなの?
余談: 明日の LT では PHP on Azure をやります!
アジェンダ
Starter Kit for deploying Tomcat-based Java solutions on Windows Azure ( http://code.msdn.microsoft.com/azuretomcat )◦ JSP &サーブレットコンテナ Tomcat を Azure パッケージに組み込む
ためのアクセラレータ
Windows Azure Tomcat Solution Accelerator もあるけど、 こちらは古いものなので、使わない
.war ファイルをブロブから動的に組み込めるので、再デプロイが容易に
事前に必要なもの◦ Tomcat 5.5 以上、 JRE 5 以上(今回は、 Tomcat 6.0 & JRE 6 を利用)
意外と簡単にできます
Java サーブレットを Azure で動かすには?
Tomcat 起動のための Worker ロールを作成&ビルド
Tomcat 、 JRE の組み込み
>C:\Data\TomcatAccelerator \Buildme.cmd
Please enter the path for tomcat binaries: C:\apache-tomcat-6.0.29 …Please enter the path for JRE binaries : C:\Program Files (x86)\Java\jre6
Window s Azure SDK
Command Prompt で実行
Tomcat はWindows Zip 版を。
Services Installer版では不可(??)
.war ファイルをブロブにアップロード( Azure MMC 等)
接続文字列、 .war ファイルの場所を設定◦ これ以降は Visual Studio の操作で可能
.war ファイルの情報を設定
設定名 意味DiagnosticsConnectionString 診断情報の転送先DataConnectionString .war ファイルを格納したストレージWarFileBlobContainer .war ファイルを格納したコンテナWarFileBlobName .war ファイルを格納したブロブWarFileTargetName 展開する .war ファイル名
通常のデバッグ実行で起動可能◦ 接続文字列などの情報を設定していない場合はエラー
ブラウザそのものは自動で起動しないので要注意
Tomcat を開発ファブリックで実行
Windows Azure for Java ( WindowsAzure4J )を利用しよう!◦ Eclipse プラグインとして、[インストール] ウィンド
ウから導入できる◦ http://www.windowsazure4e.org/update
Azure マネージライブラリからストレージライブラリだけを抜き出した感じのライブラリ
→ いわゆる開発支援機能はほとんどない
診断系、セッション管理には未対応 (?)
Java で Azure アプリを開発するには?
ストレージサービスへのアクセス機能
ブロブ、キュー、テーブルの参照、編集などは一通り行える
Visual Studio Azure Tools 1.2 よりは高機能
Storage Explorer
普通に Java プロジェクトを生成したうえで、必要なライブラリにビルドパスを通す◦ ECLIPSE_HOME\plugins\
org.soyatec.windows.azure.java_1.0.0.201002091324\libs のすべての .jar ファイル
◦ ECLIPSE_HOME\plugins\org.soyatec.windows.azure.java_1.0.0.201002091324 フォルダそのものにも
自動ではライブラリは組み込まれないので要注意
Windows4J を利用するには?
ブロブストレージへのアクセスBlobStorage cli = BlobStorage.create(
URI.create("blob.core.windows.net"),
false,
“wings”, “***********************************“
);
cli.setRetryPolicy(RetryPolicies.retryN(1, TimeSpan.fromSeconds(5)));
BlobContainer cont = cli.getBlobContainer("javatest");
if (!cont.doesContainerExist()) {
cont.createContainer();cont.setContainerAccessControl(ContainerAccessControl.Public);
}
BlobProperties props = new BlobProperties("test");
props.setContentType("image/jpeg");
BlobContents blob = new BlobContents(
new FileStream("c:/RIMG0001.JPG"));
cont.createBlob(props, blob, true);
public class Message extends TableStorageEntity {private String name;private String url;private String body;
public Message(String partitionKey, String rowKey){super(partitionKey, rowKey);
}
public String getName() {return name;
}
public void setName(String name) {this.name = name;
}…
}
テーブルストレージへのアクセスTableStorage cli = TableStorage.create (
URI.create("table.core.windows.net"),
false,
"wings",
“**************************"
);
CloudTable table = cli.getWindowsAzureTable("Message");
if(!table.doesTableExist()){ table.createTable(); }
Message msg = new Message("Java", "7");
msg.setName(" 山田 ");
msg.setUrl("http://www.wings.msn.to/");
msg.setBody(" こんにちは! ");
table.insertEntity(msg);
List<TableStorageEntity> list = table.retrieveEntities(
Query.select().eq("name", "Yamada"));
Tomcat を Azure で動作するのは比較的簡単
ライブラリもそれなりにそろっている
でも、現時点では PHP よりは開発しにくい…かも?
まとめ?
PHP Java
開発の準備 Eclipse でプロジェクト作成
必要なライブラリをインポート
開発→デプロイ
Eclipse のみで可 Eclipse 、コマンド、 Visual Studio
ライブラリ ±α やや不足 ?
Windows Azure実践クラウドプログラミングfor C# / Visual Basic / PHP(秀和システム)
こんな文献もよろしくお願いします