IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Tomcat et TomEE Java Discussion :

deployer une app SpringBoot/Angular sur un serveur externe TOMCAT9: erreur unexpected error(type=Forbiden, 403


Sujet :

Tomcat et TomEE Java

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    728
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 728
    Points : 250
    Points
    250
    Par défaut deployer une app SpringBoot/Angular sur un serveur externe TOMCAT9: erreur unexpected error(type=Forbiden, 403
    Bonjour, je veux deployer une application SpringBoot / Angular sur un serveur externe TOMCAT9 mais quand j'accède à l'url http://localhost:8080/server/, cela me donne l'erreur suivant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Whitelabel Error Page
    This application has no explicit mapping for /error, so you are seeing this as a fallback.
     
    Wed Jun 01 12:49:37 CEST 2022
    There was an unexpected error (type=Forbidden, status=403).

    Sur la partie back-end, j'ai ajouté les propriétés suivantes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    server.port=8080
    server.servlet.context-path=/server
    Pour Maven, j'ai ajouté les lignes suivantes
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    	<packaging>war</packaging> 
    .........
        <properties>
            <start-class>package.StartApplication</start-class>
        </properties>
    .........
        <dependencies>
            <!-- dependency for deploying the application with external tomcat -->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-tomcat</artifactId>
                <scope>provided</scope>
            </dependency>
    ..........
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
                <exclusions>
                    <exclusion>
                        <artifactId>spring-boot-starter-tomcat</artifactId>
                        <groupId>org.springframework.boot</groupId>
                    </exclusion>
                </exclusions>
            </dependency>

    Ma classe de lancement de SpringBoot est la suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    @SpringBootApplication
    @EnableScheduling
    public class StartApplication extends SpringBootServletInitializer {
     
     
     
        public static void main(String[] args) {
            SpringApplication.run(StartApplication.class, args);
        }
     
        @Override
        protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
            return builder.sources(StartApplication.class);
        }
     
        @Bean
        public FilterRegistrationBean<CorsFilter> simpleCorsFilter() {
            UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
            CorsConfiguration config = new CorsConfiguration();
            config.setAllowCredentials(true);
            config.setAllowedOrigins(Collections.singletonList("http://localhost:4200/server"));
            config.setAllowedMethods(Collections.singletonList("*"));
            config.setAllowedHeaders(Collections.singletonList("*"));
            source.registerCorsConfiguration("/**", config);
            FilterRegistrationBean<CorsFilter> bean = new FilterRegistrationBean<>(new CorsFilter(source));
            bean.setOrder(Ordered.HIGHEST_PRECEDENCE);
            return bean;
        }
     
    }
    Je génère une archive server.war en executant man package et je la charge sur TOMCAT 9


    Sur la partie front-end, j'utilise Angular

    le fichier proxy.config.json est le suivant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    {
      "server/api/*": {
        "target": {
          "host": "localhost",
          "protocol": "http",
          "port": 8080
        },
        "secure": false,
        "changeOrigin": true,
        "logLevel": "info"
      }
    }

    Le service de base d'API est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.baseUrl = 'http://localhost:4200/server/api';
    et j'exécute la partie front end en exécutant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ng serve --proxy-config proxy.config.json

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    728
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 728
    Points : 250
    Points
    250
    Par défaut
    Bonjour, c'est une étourderie de ma part.

    cela marche quand je remplace

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    {
      "server/api/*": {
        "target": {
          "host": "localhost",
          "protocol": "http",
          "port": 8080
        }, ......
    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    {
      "/server/api/*": {
        "target": {
          "host": "localhost",
          "protocol": "http",
          "port": 8080
        },
    il fallait juste ajouter un slash

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Ajouter une librairie pour php sur un Serveur dédié
    Par tchoumak dans le forum Applications et environnements graphiques
    Réponses: 1
    Dernier message: 28/06/2006, 22h22
  2. Réponses: 12
    Dernier message: 02/05/2006, 16h31
  3. Simuler une monter en charge sur un serveur
    Par MrPink dans le forum Outils
    Réponses: 4
    Dernier message: 06/12/2004, 10h16
  4. [Kylix] deployer une app. kylix3... PROBLEME!
    Par le_barbu dans le forum EDI
    Réponses: 2
    Dernier message: 16/12/2003, 20h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo