开发者

Tomcat configuration help: multiple ports not responding

开发者 https://www.devze.com 2023-02-05 00:46 出处:网络
My goal is to have port 80 and 81 listen and serve content from two distinct paths. I\'m looking at replicating what I used to do with IIS and creating websites on specific ports.

My goal is to have port 80 and 81 listen and serve content from two distinct paths. I'm looking at replicating what I used to do with IIS and creating websites on specific ports.

I took the base configuration file and added the following lines inside the Server tag (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>

I was going on a tip where I had to install a Service tag with Connector and Context tag for each port I wanted to run (inside the main Server tag).

I looked at my log and found the following:

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)

I am aware about the Context working better in a the more localized context.xml file, but I don't mind restarting until I get this working. Or maybe it NEEDS to be there (not per APress Pro Apache TomCat6).

At this point, going to IP:80 doesn't bring up nothing, no file, no error, just a blank page. Even when I try to access index.html (that was copied in the proper docBase), I get a blank screen without any errors.

Edit #2

I figured I'd post my files in case someone had more time on their hands and wanted a go at them.

Here's my server.xml file: http://pastebin.com/DAunTPTg

Here's the error I'm getting at the moment: http://pastebin.com/mrrd0116

Edit #3

To make things simpler, I've tried to have port 80 respond properly.

As per my book:

The name of this virtual host, as configured with DNS. One of the hosts nested within an engine must have a name that matches the defaultHost attribute of that engine.

Why would I be indicating anything but localhost (localhost1 wouldn't work would it?)

This is where I am at now, still not working:

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

I'm also getting a new errors:

18-Jan-2011 8:37:12 PM org.apache.catalina.startup.Catalina start SEVERE: Catalina.start: LifecycleException: Error initializaing : java.lang.NullPointerException at org.apache.catalina.core.StandardContext.start(StandardContext.java:4380) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045) at org.apache.catalina.core.StandardHost.start(StandardHost.java:785) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045) at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:445) at org.apache.catalina.core.StandardService.start(StandardService.java:519) at org.apache.catalina.core.StandardServer.start(StandardServer.java:710) at 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.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.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)

and

18-Jan-2011 8:36:47 PM org.apache.catalina.mbeans.ServerLifecycleListener createMBeans SEVERE: createMBeans: Throwable java.lang.NullPointerException at org.apache.catalina.mbeans.MBeanUtils.createObjectName(MBeanUtils.java:1086) at org.apache.catalina.mbeans.MBeanUtils.createMBean(MBeanUtils.java:504) at org.apache.catalina.mbeans.ServerLifecycleListener.createMBeans(ServerLifecycleListener.java:570) at org.apache.catalina.mbeans.ServerLifecycleListener.createMBeans(ServerLifecycleListener.java:366) at org.apache.catalina.mbeans.ServerLifecycleListener.createMBeans(ServerLifecycleListener.java:535) at org.apache.catalina.mbeans.ServerLifecycleListener.createMBeans(ServerLifecycleListener.java:498) at org.apache.catalina.mbeans.ServerLifecycleListener.createMBeans(ServerLifecycleListener.java:656) at org.apache.catalina.mbeans.ServerLifecycleListener.createMBeans(ServerLifecycleListener.java:628) at org.apache.catalina.mbeans.ServerLifecycleListener.createMBeans(ServerLifecycleListener.java:278) at org.apache.catalina.mbeans.ServerLifecycleListener.lifecycleEvent(ServerLifecycleListener.java:129) at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119) at org.apache.catalina.core.StandardServer.start(StandardServer.java:703) at 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.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.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)

Edit #4

I added the folder structure /Stable/localhost under the conf folder. Also added both host-manager.xml and manager.xml.

Still doesn't work.

Edit #5

I think I got it, well, I'm serving html and cfml pages with some errors in the log files.

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

        <Engine name="Stable" defaultHost="localhost">
            <Host 
                name="localhost"  
          开发者_如何学C      appBase="C:\websites\test\stable\">

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

Errors:

18-Jan-2011 11:31:40 PM org.apache.catalina.core.StandardContext resourcesStart SEVERE: Error starting static Resources java.lang.IllegalArgumentException: Document base C:\websites\test\stable\manager does not exist or is not a readable directory»


I think you're on the right track, but you're just missing some of the child elements that are listed in the specification for the Service element.

I think you're just forgetting the Engine and Host elements, which are grandparent and parent respectively to the Context element.

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

For more information and a more detailed example, which defines two Service elements, one on port 8080 and one on port 9080, see this mailing list post:

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


This is working for me:

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

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号