私の目標は、ポート 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 が存在しないか、読み取り可能なディレクトリではありません»