Tomcat配置帮助:多个端口无响应

jv2fixgn  于 2023-10-19  发布在  其他
关注(0)|答案(2)|浏览(171)

我的目标是让端口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>

我正在进行一个技巧,我必须为我想要运行的每个端口安装一个带有Connector和Context标签的Service标签(在主Server标签内)。
我看了看我的日志,发现了以下内容:

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:生命周期异常:初始化时出错:java. lang。org上的NullPointerException。Apachecatalina核心StandardContext。start(StandardContext.java:4380)at org.Apachecatalina核心集装箱基地。start(ContainerBase.java:1045)at org.Apachecatalina核心标准主机。start(StandardHost.java:785)at org.Apachecatalina核心集装箱基地。start(ContainerBase.java:1045)at org.Apachecatalina核心标准引擎。start(StandardEngine.java:445)at org.Apachecatalina核心标准服务。start(StandardService.java:519)at org.Apachecatalina核心StandardServer. start(StandardServer.java:710)at org.Apachecatalina启动。卡特琳娜start(Catalina.java:581)at sun.reflect.NativeMethods在sun或Impl.invoke0(Native Method)在sun。反思。NativeMethods工具实现在sun上调用(NativeMethodsObjectorImpl.java:39)。反思。DelegatingMethods委托或实施在java中调用(DelegatingMethodsLogorImpl.java:25)。lang。反思。方法。在org调用(Method.java:597)。Apachecatalina启动。引导。start(Bootstrap.java:289)at org.Apachecatalina启动。引导。main(Bootstrap.java:414)

2011年1月18日下午8:36:47 org. apache. Catalina . mbeans. ServerLifecycle清理MBeans严重:咖啡豆:可抛出的Java。lang。org上的NullPointerException。Apachecatalina mbeans MBeanUtils。在org上搜索ObjectName(MBeanUtils.java:1086)。Apachecatalina mbeans MBeanUtils。在org上搜索MBean(MBeanUtils.java:504)Apachecatalina mbeans服务器生命周期清理。org上的WebMBeans(ServerLifecycle Listener.java:570)。Apachecatalina mbeans服务器生命周期清理。org上的WebMBeans(ServerLifecycle Listener.java:366)。Apachecatalina mbeans服务器生命周期清理。org上的WebMBeans(ServerLifecycle Listener.java:535)。Apachecatalina mbeans服务器生命周期清理。org上的WebMBeans(ServerLifecycle Listener.java:498)。Apachecatalina mbeans服务器生命周期清理。org上的WebMBeans(ServerLifecycle Listener.java:656)。Apachecatalina mbeans服务器生命周期清理。org上的WebMBeans(ServerLifecycle Listener.java:628)。Apachecatalina mbeans服务器生命周期清理。org上的WebMBeans(ServerLifecycle Listener.java:278)。Apachecatalina mbeans服务器生命周期清理。org上的lifecycle Event(ServerLifecycle Listener.java:129)。Apachecatalina效用Lifecycle支持。org上的fireLifecycle Event(Lifecycle Support.java:119)。Apachecatalina核心StandardServer. start(StandardServer.java:703)at org.Apachecatalina启动。卡特琳娜start(Catalina.java:581)at sun.reflect.NativeMethods在sun或Impl.invoke0(Native Method)在sun。反思。NativeMethods工具实现在sun上调用(NativeMethodsObjectorImpl.java:39)。反思。DelegatingMethods委托或实施在java中调用(DelegatingMethodsLogorImpl.java:25)。lang。反思。方法。在org调用(Method.java:597)。Apachecatalina启动。引导。start(Bootstrap.java:289)at org.Apachecatalina启动。引导。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. Standard上下文资源启动SEVERE:启动静态资源时出错java. lang. IllegalArgumentException:您访问的页面不存在或已被删除提示信息

vojdkbi0

vojdkbi01#

我认为您的思路是正确的,但您只是缺少了Service元素规范中列出的一些子元素。
我想你只是忘记了EngineHost元素,它们分别是Context元素的祖父和父元素。

<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上,请参阅此邮件列表帖子:
http://www.mail-archive.com/[email protected]/msg44729.html

yhuiod9q

yhuiod9q2#

这是为我工作:

<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>

相关问题