Tomcat host configuration server.xml

2019-08-11 04:58发布

I have this web.xml in my application.

<web-app>
    <filter>
        <filter-name>app</filter-name>
        <filter-class>org.apache.tapestry5.spring.TapestrySpringFilter</filter-class>
    </filter>

    <filter-mapping>
        <filter-name>openSessionInView</filter-name>
        <url-pattern>/app/*</url-pattern>
    </filter-mapping>

    <filter-mapping>
        <filter-name>app</filter-name>
        <url-pattern>/app/*</url-pattern>
    </filter-mapping>

    <filter-mapping>
        <filter-name>app</filter-name>
        <url-pattern>/assets/*</url-pattern>
    </filter-mapping>


     <servlet>
        <servlet-name>jersey-serlvet</servlet-name>
        <servlet-class>
            com.sun.jersey.spi.spring.container.servlet.SpringServlet
        </servlet-class>
        <init-param>
            <param-name>com.sun.jersey.config.property.packages</param-name>
            <param-value>com.package.example.restServer</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>jersey-serlvet</servlet-name>
        <url-pattern>/rest/*</url-pattern>
    </servlet-mapping>
</web-app>

when I use my application in jetty works fine.

Web application:

http://localhost/app 

Api rest application:

http://localhost/rest

In produccion I use tomcat.

I want to create http://www.example.com -> http://localhost/app 

and http://rest.example.com -> http://localhost/rest

My server.xml file:

      <Host name="www.example.com" appBase="/usr/local/tomcat/webapps/example">
        <Context path="app" docBase="."/>
      </Host>


      <Host name="rest.example.com" appBase="/usr/local/tomcat/webapps/example">
        <Context path="rest" docBase="."/>
      </Host>

When I use this config, the server return a 404 error code.

How I can fix it?

Thanks.

1条回答
贼婆χ
2楼-- · 2019-08-11 05:31

I got that error too and just couldn't fix for a couple of weeks but somehow i have remembered that i must check the hosts file in the C:\Windows\System32\drivers\etc. When i checked that i got shocked! Because the file was modified by another application that i installed on my machine and the 12.0.0.1 address were showing different urls and 0.0.0.0 was showing the local host.

If you see something like this too; either delete everything and just leave "127.0.0.1 localhost" or, use 0.0.0.0 when making your tests on your local machine.

I hope this helps.

查看更多
登录 后发表回答