在docker中访问时,JAX-RS Rest服务提供“HTTP状态404 - 未找到”错误tomcat

时间:2018-03-21 13:33:47

标签: docker docker-compose jax-rs dockerfile tomcat8

我遇到了使用docker访问rest服务的问题http://192.168.99.100:8080/rest/clients.I正在获取 HTTP状态404 - 未找到。虽然没有泊坞窗,但我可以访问http://localhost:8080/rest/clients.Please之类的其他服务,任何人都可以解决我的问题。

这是我的docker-compose文件,

version: '3'

services:  
  tomcat:
    container_name: tomcat_docker
    image: tomcat:latest
    environment:
      - TOMCAT_USERNAME=admin
      - TOMCAT_PASSWORD=secret
    ports:
      - 8080:8080
    volumes:
      - /docker/AW317/TaskmanagerDocker-03212018/tomcat-users.xml:/usr/local/tomcat/conf/tomcat-users.xml
      - /docker/AW317/TaskmanagerDocker-03212018/TaskManager.war:/usr/local/tomcat/webapps/TaskManager.war
    command: ["/usr/local/tomcat/bin/catalina.sh", "run"]
    links:
      - db:mysql
  db:
    container_name: mysql_docker
    image: mysql
    ports:
      - 53306:3306
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: root

我试图覆盖tomcat-users.xml但是没有帮助。 任何人都可以帮我解决这个问题吗?我错过了什么?

1 个答案:

答案 0 :(得分:1)

我刚刚使用卷路径覆盖docker中的context.xml文件并解决了问题,

<?xml version="1.0" encoding="UTF-8"?>
 <Context antiResourceLocking="true" privileged="true" >
 <!--<Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />-->
</Context>

现在我可以访问其余服务了。

编辑:

你可以在docker-compose文件中覆盖context.xml,如下所示,

volumes:
      - <path to docker whaere it is located>/context.xml:/usr/local/tomcat/webapps/manager/META-INF/context.xml

您可以将context.xml文件放在项目目录中。