0

jetty/webapps 内にアプリをコピーしてデプロイすると、正常にデプロイされます。しかし、外部ディレクトリからデプロイしたいです。そのために、次の myconf.xml を作成しました。

<?xml version="1.0"?>
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure_9_0.dtd">

<Configure id="myapp" class="org.eclipse.jetty.webapp.WebAppContext">
    <Set name="server">
        <Ref refid="Server" />
    </Set>
    <Set name="contextPath">/myapp</Set>
    <Set name="war">
        <SystemProperty name="myapp.war" /><!-- points to the external war -->
    </Set>
</Configure>

次に、jetty を次のように実行します。

java -XX:-UseSplitVerifier -jar start.jar myconf.xml.

コンソールでは、アプリケーションがデプロイされていることがわかり、db などにアクセスしますが、到達しようとすると 404 が返されます。どんな助けも大歓迎です :)

よろしく、ユージーン。

4

1 に答える 1

0

それは Jetty の使い方ではありません。

オプション 1: 標準の自動展開

  1. 展開で何もカスタマイズしていないため、myconf.xml完全に削除してください。
  2. myapp.warをディレクトリにコピーします${jetty.home}/webapps/
  3. ジェティを起動します。 $ java -jar start.jar

これは、Web アプリケーションの自動展開と呼ばれます。

オプション 2: 標準的なコンテキストの展開

ここで、デプロイをカスタマイズする場合 (たとえば、リッスンするコンテキスト パスを微調整したい場合、extractWar プロセスを無効にしたい場合、カスタムの init パラメーターがある場合、または動作を変更したい場合など)デフォルトのサーブレットなど...)、次のことを行います...

  1. 既存のmyconf.xmlをコピーします${jetty.home}/webapps/myapp.xml(名前の変更に注意してください)
  2. にコピーmyapp.warします${jetty.home}/webapps/myapp.war(このファイルのベース名は XML と同じである必要があります)。
  3. を編集${jetty.home}/webapps/myapp.xmlして展開動作を変更します (例: <Set name="contextPath">/app/1</Set>)
  4. ジェティを起動します。$ java -jar start.jar

これは、特定の WebApp 展開の構成として知られています。

オプション 3: カスタマイズされたコンテキストの展開

war ファイルを 以外の場所に保持したい場合${jetty.home}/webapps/でも、次の手順を実行する必要があります。

  1. 既存のmyconf.xmlを にコピーします${jetty.home}/webapps/myconf.xml
  2. myapp.war好きな場所に置いてください。例えば/opt/webapps/myapp.war
  3. を編集しておよびエントリ${jetty.home}/webapps/myconf.xmlを設定します。contextPathwar
  4. ジェティを起動します。$ java -jar start.jar
<?xml version="1.0"?>
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN"
    "http://www.eclipse.org/jetty/configure_9_0.dtd">

<Configure id="myapp" class="org.eclipse.jetty.webapp.WebAppContext">
    <Set name="server">
        <Ref refid="Server" />
    </Set>
    <Set name="contextPath">/myapp</Set>
    <Set name="war">
        <SystemProperty name="/opt/webapps/myapp.war" />
    </Set>
</Configure>

オプション 4: Jetty ベースの自動展開 (Jetty 9.1+ で利用可能)

${jetty.home}上記の分割と${jetty.base}概念 + 自動展開を使用して、Jetty 9.1 以降で使用できる別の手法があります。

jetty-distribution-9.1.x が にアンパックされ/opt/jetty/、webapp + 構成が にあるとします/opt/myapps/。次のコマンドを実行できます。

[user]$ cd /opt/myapps

[myapps]$ java -jar /opt/jetty/start.jar --add-to-start=server,deploy,websocket,ext,resources
server          initialised in ${jetty.base}/start.ini (appended)
server          enabled in     ${jetty.base}/start.ini
deploy          initialised in ${jetty.base}/start.ini (appended)
deploy          enabled in     ${jetty.base}/start.ini
MKDIR: ${jetty.base}/webapps
server          enabled in     ${jetty.base}/start.ini
websocket       initialised in ${jetty.base}/start.ini (appended)
websocket       enabled in     ${jetty.base}/start.ini
server          enabled in     ${jetty.base}/start.ini
ext             initialised in ${jetty.base}/start.ini (appended)
ext             enabled in     ${jetty.base}/start.ini
MKDIR: ${jetty.base}/lib
MKDIR: ${jetty.base}/lib/ext
resources       initialised in ${jetty.base}/start.ini (appended)
resources       enabled in     ${jetty.base}/start.ini
MKDIR: ${jetty.base}/resources

[myapps]$ ls -l
total 16
drwxrwxr-x 3 user group 4096 Oct 31 08:32 lib/
drwxrwxr-x 2 user group 4096 Oct 31 08:32 resources/
-rw-rw-r-- 1 user group  369 Oct 31 08:30 start.ini
drwxrwxr-x 2 user group 4096 Oct 31 08:30 webapps/

[myapps]$ cat start.ini
--module=server
threads.min=10
threads.max=200
threads.timeout=60000
jetty.dump.start=false
jetty.dump.stop=false

--module=deploy
--module=websocket
--module=ext
--module=resources

[myapps]$ java -jar /opt/jetty/start.jar --list-config | grep -E "jetty.(base|home)="
 jetty.home=/opt/jetty
 jetty.base=/opt/myapps

[myapps]$ cp /home/user/project/myapp/target/myapp-1.0.war /opt/myapps/webapps/myapp.war

[myapps]$ java -jar /opt/jetty/start.jar
2013-10-31 08:35:58.919:INFO:oejs.Server:main: jetty-9.1.0.RC0
2013-10-31 08:35:58.939:INFO:oejdp.ScanningAppProvider:main: Deployment monitor [file:/opt/myapps/webapps/] at interval 1
2013-10-31 08:35:59.109:INFO:oejw.StandardDescriptorProcessor:main: NO JSP Support for /myapp, did not find org.apache.jasper.servlet.JspServlet
2013-10-31 08:35:59.189:INFO:oejsh.ContextHandler:main: Started o.e.j.w.WebAppContext@223ff173{/myapp,file:/tmp/jetty-myapp.war-_myapp-any-/webapp/,AVAILABLE}{/myapp.war}

作業できる場所が 2 つあります。

  • ${jetty.home}- あなたの桟橋の分布がどこにあるか
  • ${jetty.base}- アプリの特定の構成と戦争が配置されている場所

これは非常に強力なオプションであり、私はその機能の表面に触れただけです。

于 2013-10-30T18:07:57.247 に答える