ServiceMix中部署:JAR和WAR
部署JAR:
1. Transform a non-OSGi JAR file into an standard OSGi bundle
??? 见:http://springsfeng.iteye.com/admin/blogs/1154006
2. Converting a JAR Using the wrap Scheme
??? 用法:wrap:LocationURL
??? 说明:LocationURL用于获取JAR,wrap Schem的ULR handler将转换获取的JAR文件为标准的Bundle.
??? 例如:osgi:install -s wrap:mvn:hsqldb/hsqldb/1.8.0.7
??? <feature name="examples-jpa-osgi" version="4.4.1-fuse-00-08">
???????? <feature version="4.4.1-fuse-00-08">jpa-hibernate</feature>
???????? <bundle>wrap:mvn:hsqldb/hsqldb/1.8.0.7</bundle>
???????? <bundle>mvn:org.apache.servicemix.examples.jpa-osgi/wsdlfirst-
??????????????? cxfbc-bundle/4.4.1-fuse-00-08</bundle>
???????? <bundle>mvn:org.apache.servicemix.examples.jpa-osgi/wsdlfirst-
??????????????? cxfse-bundle/4.4.1-fuse-00-08</bundle>
?? </feature>
部署WAR:
1. Converting the WAR Using the war Scheme
??? (1) 用法:war:LocationURL[?option]
??? 说明:LocationURL可以是mvn:或file:URL或其他的URL地址,而Options为附在URL后的,格式为:
??? ?Option=Value&Option=Value&...
??? 或?Option=Value&Option=Value&...
??? (2) 部署一个War文件
??? 如果War文件在Maven Repository中,可以直接部署至OSGi容器中使用osgi:install命令,并添加一个
??? 参数:war:mvn:URL,例如:
??? install war:mvn:org.apache.wicket/wicket-examples/1.4.7/war?Web-ContextPath=wicket
??? 如果War文件位于filesystem中,部署至OSGi容器中可以指定war:file:URL参数,例如:
??? install war:file://wicket-examples-1.4.7.war?Web-ContextPath=wicket
??? (3) 访问部署的WAR文件
??? 默认端口:8181,
??? WAR名称:Web-ContextPath参数指定的名称。
??? 备注:默认情况下,通过上述方法产生的WAR文件是一个自包含的、独立的Bundle,既不Import也不
??? Export Package, 这个模仿的WAR部署至J2EE容器中,所以WAR包含了所有他所需要的第三方JAR.
2. 配置Web Container
??? FuseESB自动的部署WAR至WEB容器中,可通过etc/org.ops4j.pax.web.cfg.empty.stub设置端口。