2014-10-07 65 views
0

我尝试通过this tutorial启动Jersey + Jetty + Nginx,我无法使用war文件。我如何启动我的Java应用程序?使用jetty启动java应用程序,无WAR文件

我就开始BackendServer.java通过右键点击应用,然后点击“运行”,在思想或使用终端java -cp /home/example/backend/build/WEB-INF/lib/backend.jar:/home/example/backend/libs/* com.example.backend.BackendServer

项目结构描述here.

/opt/jetty/webapps/backend.xml

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE Configure PUBLIC 
    "-//Mort Bay Consulting//DTD Configure//EN" 
    "http://www.eclipse.org/jetty/configure_9_0.dtd"> 

<!-- 
    Configure a custom context for serving javadoc as static resources 
--> 

<Configure class="org.eclipse.jetty.server.handler.ContextHandler"> 
    <Set name="contextPath">/</Set> 
    <Set name="resourceBase"><SystemProperty name="jetty.home" default="."/>??????????</Set> 
    <Set name="handler"> 
    <New class="org.eclipse.jetty.server.handler.ResourceHandler"> 
     <Set name="welcomeFiles"> 
     <Array type="String"> 
      <Item>index.html</Item> 
     </Array> 
     </Set> 
     <Set name="cacheControl">max-age=3600,public</Set> 
    </New> 
    </Set> 
</Configure> 

应该是什么,而不是????????我应该在BackendServer.java中使用嵌入式码头吗?我知道我有重定向从nginx的请求,渡头,但我不明白我怎么能开始与码头球衣应用...

回答

0

链接的例子/教程,以及相关的早期问题是不兼容的。

的教程是码头6(现在不可能过时),并全部采用嵌入式码头,启用了部署和一切。

你之前的问题设置了一个com.sun.net.httpserver.HttpServer这不是一回事。

resourceBase是您可能想要服务的任何Web应用程序内容的根目录。

由于您使用的是简单ContextHandler,那么应该指向你的磁盘上的目录。

如果你使用的是WebAppContext,那么应该指向你的webapp根目录(其中类似WEB-INF/web.xmlWEB-INF/classes可选文件会)

ResourceHandler您已经定义应该使用ContextHandler.resourceBase

注意ResourceHandler是服务最起码的,最简单的静态文件。 如果您的Web客户端有任何要求执行缓存查找,恢复下载,部分下载或MIME类型的控件,请使用DefaultServlet

另外,如果你想要的是在嵌入式码头一个文件服务器,你为什么要使用XML部署一个基本ContextHandler?只要写入您的嵌入式码头服务,这将变得如此简单。

一些嵌入式码头示例代码可能证明对你有用:

相关问题