我将所有必需的Jetty捆绑包部署到OSGi容器并启动服务器实例。然而,虽然我正在部署jetty-webapp并且相应的jar包含文件org\eclipse\jetty\webapp\webdefault.xml
,但在启动时我提出了错误
java.io.FileNotFoundException: D:\eclipse\org\eclipse\jetty\webapp\webdefault.xml
(D:\eclipse
是我发起的日食安装)
为什么Jetty不使用它附带的文件?当我将文件从jar复制到请求的位置时,Jetty运行正常 - 但这不是一个可行的解决方案。
我不介意提供文件,但是我再也不知道如何将路径传递给Jetty。启动直接发生在eclipse启动配置中,不涉及maven。
答案 0 :(得分:2)
如果您使用jetty-osgi-boot.jar,则必须设置以下系统属性:
-Djetty.home.bundle=org.eclipse.jetty.osgi.boot
-Djetty.port=8080
该值是包含默认配置的osgi-boot软件包的符号名称。
码头文档中的更多信息:http://www.eclipse.org/jetty/documentation/current/framework-jetty-osgi.html
或者,您可以使用org.apache.felix.http.jetty包。您可以在此处找到相关信息:http://felix.apache.org/documentation/subprojects/apache-felix-http-service.html
或者您可以使用Pax Web:https://ops4j1.jira.com/wiki/display/paxweb/Advanced+Jetty+Configuration
我之前使用过jetty-osgi。现在我使用felix的东西,因为它可以通过configadmin配置。 Pax-web也可以通过configAdmin使用。我还没有尝试过,但我听说它有它的好处(例如使用HTTPService更好的servlet上下文处理)