我的目标是让端口 80 和 81 监听并提供来自两个不同路径的内容。我正在研究复制我过去使用 IIS 所做的事情并在特定端口上创建网站。
我采用了基本配置文件并在 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 在更本地化的 context.xml 文件中工作得更好,但我不介意重新启动,直到我得到这个工作。或者它可能需要在那里(不是每个 APress Pro Apache TomCat6)。
此时,转到 IP:80 并没有显示任何内容,没有文件,没有错误,只是一个空白页。即使我尝试访问 index.html(在正确的 docBase 中复制),我也得到一个没有任何错误的空白屏幕。
编辑#2
我想我会发布我的文件,以防有人有更多的时间在他们手上并想尝试一下。
这是我的 server.xml 文件: http: //pastebin.com/DAunTPTg
这是我目前遇到的错误:http: //pastebin.com/mrrd0116
编辑#3
为了使事情更简单,我尝试让端口 80 正确响应。
根据我的书:
此虚拟主机的名称,与 DNS 配置的一样。嵌套在引擎中的主机之一必须具有与该引擎的 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 org.apache.catalina.startup.Catalina 开始严重:Catalina.start: LifecycleException: Error initializaing : java.lang.NullPointerException at org.apache.catalina.core.StandardContext.start( StandardContext.java:4380) 在 org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045) 在 org.apache.catalina.core.StandardHost.start(StandardHost.java:785) 在 org.apache.catalina .core.ContainerBase.start(ContainerBase.java:1045) 在 org.apache.catalina.core.StandardEngine.start(StandardEngine.java:445) 在 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。在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 在 java.lang.reflect.Method.invoke(Method.java: 25) 的 invoke0(Native Method)第597章)在org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)在
和
2011 年 1 月 18 日晚上 8:36:47 org.apache.catalina.mbeans.ServerLifecycleListener createMBeans 严重: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:278) 在 org.apache.catalina.mbeans.ServerLifecycleListener 的 org.apache.catalina.mbeans.ServerLifecycleListener.createMBeans(ServerLifecycleListener.java:628) .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) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 在 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>
错误:
2011 年 1 月 18 日晚上 11:31:40 org.apache.catalina.core.StandardContext resourcesStart 严重:启动静态资源时出错 java.lang.IllegalArgumentException:文档库 C:\websites\test\stable\manager 不存在或存在不是一个可读的目录»