6

私の目標は、ポート 80 と 81 がリッスンし、2 つの異なるパスからコンテンツを提供することです。IIS で行っていたことを複製し、特定のポートで Web サイトを作成することを考えています。

基本構成ファイルを取得し、Server タグ (server.xml) 内に次の行を追加しました。

<Service name="stable">
    <Connector port="80" protocol="HTTP/1.1" />
    <Context docBase="C:\websites\test\stable\" />
  </Service>
  <Service name="release">
    <Connector port="81" protocol="HTTP/1.1" />
    <Context docBase="C:\websites\test\release\" />
  </Service>

実行したいポートごとにコネクタとコンテキストタグを含むサービスタグをインストールする必要があるというヒントに行きました(メインのサーバータグ内)。

ログを確認したところ、次のことがわかりました。

16-Jan-2011 8:54:44 AM org.apache.catalina.connector.CoyoteAdapter service
SEVERE: An exception or error occurred in the container during the request processing
java.lang.NullPointerException
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
    at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:861)
    at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:579)
    at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1584)
    at java.lang.Thread.run(Thread.java:619)

よりローカライズされた context.xml ファイルでコンテキストがより適切に機能することは認識していますが、これが機能するまで再起動してもかまいません。または、そこにある必要があるかもしれません (APress Pro Apache TomCat6 によるものではありません)。

この時点で、IP:80 に移動しても、何も表示されず、ファイルもエラーも表示されず、空白のページだけが表示されます。(適切な docBase にコピーされた) index.html にアクセスしようとしても、エラーなしで空白の画面が表示されます。

編集#2

誰かがもっと時間があり、試してみたいと思った場合に備えて、ファイルを投稿すると思いました。

ここに私の server.xml ファイルがあります: http://pastebin.com/DAunTPTg

現時点で発生しているエラーは次のとおりです。 http://pastebin.com/mrrd0116

編集 #3

簡単にするために、ポート 80 が適切に応答するようにしました。

私の本によると:

DNS で構成された、この仮想ホストの名前。エンジン内にネストされたホストの 1 つは、そのエンジンの defaultHost 属性と一致する名前を持っている必要があります。

localhost 以外のものを示すのはなぜですか (localhost1 は機能しませんか?)

これは私が今いるところですが、まだ働いていません:

<Service name="Stable">
        <Connector 
            port="80" 
            protocol="HTTP/1.1"                
            connectionTimeout="20000" />

        <Engine name="Stable" defaultHost="localhost">
            <Host 
                name="localhost"  
                appBase="webapps">

                <Context docBase="C:\websites\test\stable" />               
            </Host>
        </Engine>
  </Service>

また、新しいエラーが発生しています:

2011 年 1 月 18 日 8:37:12 PM org.apache.catalina.startup.Catalina 開始重大: Catalina.start: LifecycleException: 初期化エラー: org.apache.catalina.core.StandardContext.start での java.lang.NullPointerException ( StandardContext.java:4380) で org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045) で org.apache.catalina.core.StandardHost.start(StandardHost.java:785) で org.apache.catalina org.apache.catalina.core.StandardEngine.start(StandardEngine.java:445) の .core.ContainerBase.start(ContainerBase.java:1045) org.apache.catalina.core.StandardService.start(StandardService.java:519) ) org.apache.catalina.core.StandardServer.start(StandardServer.java:710) で、org.apache.catalina.startup.Catalina.start(Catalina.java:581) で、sun.reflect.NativeMethodAccessorImpl で。java.lang.reflect.Method.invoke(Method.java: 597) org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289) で org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414) で

2011 年 1 月 18 日 8:36:47 PM org.apache.catalina.mbeans.ServerLifecycleListener createMBeans SEVERE: createMBeans: org.apache.catalina.mbeans.MBeanUtils.createObjectName (MBeanUtils.java:1086) でスロー可能な java.lang.NullPointerException org.apache.catalina.mbeans.MBeanUtils.createMBean(MBeanUtils.java:504) で org.apache.catalina.mbeans.ServerLifecycleListener.createMBeans(ServerLifecycleListener.java:570) で org.apache.catalina.mbeans.ServerLifecycleListener.createMBeans (ServerLifecycleListener.java:366) org.apache.catalina.mbeans.ServerLifecycleListener.createMBeans(ServerLifecycleListener.java:535) org.apache.catalina.mbeans.ServerLifecycleListener.createMBeans(ServerLifecycleListener.java:498) org.apache. catalina.mbeans.ServerLifecycleListener.createMBeans(ServerLifecycleListener.java:656) org.apache.catalina.mbeans.ServerLifecycleListener.createMBeans(ServerLifecycleListener.java:628) で org.apache.catalina.mbeans.ServerLifecycleListener.createMBeans(ServerLifecycleListener.java:278) で org.apache.catalina.mbeans.ServerLifecycleListener .lifecycleEvent(ServerLifecycleListener.java:129) org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119) org.apache.catalina.core.StandardServer.start(StandardServer.java:703) org. apache.catalina.startup.Catalina.start(Catalina.java:581) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl. java.lang.reflect で (DelegatingMethodAccessorImpl.java:25) を呼び出します。Method.invoke(Method.java:597) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)

編集#4

conf フォルダーの下にフォルダー構造 /Stable/localhost を追加しました。また、host-manager.xml と manager.xml の両方を追加しました。

それでもうまくいきません。

編集#5

私はそれを理解したと思います。まあ、ログ ファイルにいくつかのエラーがある html および cfml ページを提供しています。

<Service name="Stable">
        <Connector 
            port="80" 
            protocol="HTTP/1.1"                
            connectionTimeout="20000" />

        <Engine name="Stable" defaultHost="localhost">
            <Host 
                name="localhost"  
                appBase="C:\websites\test\stable\">

                <Context docBase="C:\websites\test\stable\" path="" />              
            </Host>
        </Engine>
  </Service>

エラー:

18-Jan-2011 11:31:40 PM org.apache.catalina.core.StandardContext resourcesStart SEVERE: 静的リソースの起動エラー java.lang.IllegalArgumentException: ドキュメント ベース C:\websites\test\stable\manager が存在しないか、読み取り可能なディレクトリではありません»

4

2 に答える 2

3

あなたは正しい方向に進んでいると思いますが、Service 要素の仕様に記載されている子要素の一部が欠けているだけです。

Context要素の祖父母と親であるEngine要素とHost要素を忘れているだけだと思います。

<Service name="stable">

     <Connector port="80" protocol="HTTP/1.1" 
           maxThreads="150" connectionTimeout="20000"/>

     <Engine name="stable" defaultHost="localhost">
         <Host name="localhost1" appBase="webapp1">
             <Context docBase="C:\websites\test\stable\" />
        </Host>
     </Engine>

</Service>


<Service name="release">

    <Connector port="81" protocol="HTTP/1.1" 
           maxThreads="150" connectionTimeout="20000"/>

    <Engine name="release" defaultHost="localhost2">
         <Host name="localhost2" appBase="webapp2">
             <Context docBase="C:\websites\test\release\" />
         </Host>
     </Engine>

</Service>

ポート 8080 とポート 9080 の 2 つの Service 要素を定義する詳細な例と詳細については、次のメーリング リストの投稿を参照してください。

http://www.mail-archive.com/users@tomcat.apache.org/msg44729.html

于 2011-01-18T01:40:27.740 に答える
0

これは私のために働いています:

<Service name="Stable">
    <Connector 
        port="80" 
        protocol="HTTP/1.1"                
        connectionTimeout="20000" />

    <Engine name="Stable" defaultHost="localhost">
        <Host 
            name="localhost"  
            appBase="C:\websites\test\stable\">

            <Context docBase="C:\websites\test\stable\" path="" />              
        </Host>
    </Engine>

于 2011-01-25T16:41:23.923 に答える