maven,Apache ServiceMixを用いてOSGI webを開発した例
一:mavenのwebappプロジェクトの作成 ppweb
pom.xmlの内容は以下の通りです.
注意:ここのtomcat 7-maven-pluginプラグインは、あってもなくても、ローカルで実行しやすいようにしています(mvn tomcat 7:run)
2:
src/main/java/webapp/index.jspファイルを編集し、任意にいくつかの内容を追加します.
3:
apache-servicemixをダウンロードし、解凍します.
四:
上のwebプロジェクトをパッケージ化し、mvn package
生成したwarをapache-servicemixのdeployディレクトリに捨てる
最後にapache-servicemixを起動しbin/servicemix.batを実行
ポップアップウィンドウでlistを入力するとbundleリストが表示されます
ここのppwebプロジェクトはインストールに成功しました
ブラウザを開き、入力http://127.0.0.1:8181/ppwebを選択します.
Webポートのデフォルトは8181です.
ここの/ppwebは、上のWeb-ContextPathの構成で、一貫性を保つ必要があります
pom.xmlの内容は以下の通りです.
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.lala</groupId>
<artifactId>ppweb</artifactId>
<packaging>war</packaging>
<version>1.0.0</version>
<name>ppweb Maven Webapp</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jsp-api</artifactId>
<version>2.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<finalName>ppweb</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<path>/</path>
<port>9090</port>
<uriEncoding>UTF-8</uriEncoding>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.6</version>
<configuration>
<archive>
<manifest>
<addClasspath>false</addClasspath>
<classpathPrefix>WEB-INF/lib/</classpathPrefix>
</manifest>
<manifestEntries>
<Bundle-ManifestVersion>2</Bundle-ManifestVersion>
<Class-Path>${project.build.finalName}.jar</Class-Path>
<Bundle-Name>${project.groupId}.${project.ArtifactId}</Bundle-Name>
<Bundle-SymbolicName>${project.groupId}.${project.ArtifactId}</Bundle-SymbolicName>
<Bundle-Version>${project.version}</Bundle-Version>
<Bundle-Vendor>${project.groupId}</Bundle-Vendor>
<Import-Package>
org.osgi.framework,
javax.servlet.http,
javax.servlet
</Import-Package>
<Embed-Dependency>*</Embed-Dependency>
<DynamicImport-Package>*</DynamicImport-Package>
<Web-ContextPath>/ppweb</Web-ContextPath>
<Bundle-ClassPath>.,WEB-INF/classes</Bundle-ClassPath>
</manifestEntries>
</archive>
</configuration>
</plugin>
</plugins>
</build>
</project>
注意:ここのtomcat 7-maven-pluginプラグインは、あってもなくても、ローカルで実行しやすいようにしています(mvn tomcat 7:run)
2:
src/main/java/webapp/index.jspファイルを編集し、任意にいくつかの内容を追加します.
3:
apache-servicemixをダウンロードし、解凍します.
四:
上のwebプロジェクトをパッケージ化し、mvn package
生成したwarをapache-servicemixのdeployディレクトリに捨てる
最後にapache-servicemixを起動しbin/servicemix.batを実行
ポップアップウィンドウでlistを入力するとbundleリストが表示されます
ここのppwebプロジェクトはインストールに成功しました
ブラウザを開き、入力http://127.0.0.1:8181/ppwebを選択します.
Webポートのデフォルトは8181です.
ここの/ppwebは、上のWeb-ContextPathの構成で、一貫性を保つ必要があります