java - Tomcat application (restfull web services) loaded but do not start without any errors - Stack Overflow

admin2025-04-27  3

In a migration from ,Java to Jakarta,java 1.7 (JE 7) to JE 21 and with tomcat 10

the source code is :


/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package eu.oca;



import jakarta.ws.rs.ApplicationPath;
import java.util.Set;
import jakarta.ws.rs.core.Application;
import java.io.File;
import java.InetAddress;
import java.UnknownHostException;

//import kawa.standard.Scheme;

//import eu.oca.kawafunct.DBtoWebObserversKawa;

/**
 *
 * @author mattei
 */
 

@jakarta.ws.rs.ApplicationPath("jersey")
public class ApplicationConfig extends Application {

   
    private boolean alreadyRun = false; //true; //false;

    @Override
    public Set<Class<?>> getClasses() {

    System.out.println("Sidonie : ApplicationConfig : getClasses : alreadyRun = " + String.valueOf(alreadyRun));

    if (!alreadyRun)
        initSidonie();

    alreadyRun = true;
        Set<Class<?>> resources = new java.util.HashSet<>();
        addRestResourceClasses(resources);
        return resources;
    }

    
    private void initSidonie() {

    System.out.println("Sidonie : ApplicationConfig : initSidonie : registering Scheme environment...");
    
    //Scheme.registerEnvironment(); // if you do not do that you will be sooner or later in serious troubles...
    
    //System.out.println("Sidonie : ApplicationConfig : initSidonie : Scheme environment registered.");
    
    // not really useful: give /root directory when tomcat started by root
    try {
        
        String path = new File(".").getCanonicalPath();
        System.out.println("Sidonie : ApplicationConfig : initSidonie : path = " + path);
        
    } catch(Exception e) {
      
        System.out.println("Sidonie : ApplicationConfig : initSidonie : Exception in getCanonicalPath = ");
        // if any error occurs
        e.printStackTrace();
    }
    

    //System.out.println("Sidonie : ApplicationConfig : initSidonie : ApplicationConfig.APPLICATION_PATH = " + ApplicationConfig.APPLICATION_PATH);
    // try to determine the webapps Catalina directory
    String hostname = "Unknown";
    String webapps_dir = "/usr/local/apache-tomcat-8.0.27/webapps";

    try
        {
        InetAddress addr;
        addr = InetAddress.getLocalHost();
        hostname = addr.getHostName();
        System.out.println("Sidonie : ApplicationConfig : Hostname = " + hostname);
         
        if (hostname.equals("sidonie.oca.eu"))
            webapps_dir = "/var/lib/tomcat8/webapps";

        System.out.println("Sidonie : ApplicationConfig : webapps_dir = " + webapps_dir);

         }
     
     catch (UnknownHostException ex)
     
         {
         System.out.println("Sidonie : ApplicationConfig : Hostname can not be resolved");
         }


    //DBtoWebObserversKawa dbwo = new DBtoWebObserversKawa(webapps_dir);

    //String res = dbwo.work();

    }

    private void addRestResourceClasses(Set<Class<?>> resources) {
        //resources.add(eu.oca.InterfaceNomResource.class);
        resources.add(eu.oca.InterfaceNomResource.class);
        resources.add(eu.oca.ResultatGeneralAF.class);
        resources.add(eu.oca.ResultatGeneralF.class);
        resources.add(eu.oca.ResultatMesuresAF.class);
        resources.add(eu.oca.ResultatMesuresF.class);
        resources.add(eu.oca.SidonieAccueilD.class);
        resources.add(eu.oca.SidonieWelcomeR.class);
        resources.add(eu.oca.UpdateDBResource.class);
    }

}

it seems ,reading logs, the code getClasses() is never called as it used to be in the previous versions of Tomcat .

All has been migrated with Netbeans 24 that use the automatic upgrade to Jakarta.

there is absolutely nothings in the logs:

11-Jan-2025 14:35:32.372 INFOS [http-nio-8080-exec-158] org.apache.catalina.startup.HostConfig.deployWAR Déploiement de l'archive [/opt/tomcat/webapps/Sidonie.war] de l'application web 11-Jan-2025 14:35:33.863 INFOS [http-nio-8080-exec-158] org.apache.jasper.servlet.TldScanner.scanJars Au moins un fichier JAR a été analysé pour trouver des TLDs mais il n'en contenait pas, le mode "debug" du journal peut être activé pour obtenir une liste complète de JAR scannés sans succès ; éviter d'analyser des JARs inutilement peut améliorer sensiblement le temps de démarrage et le temps de compilation des JSPs 11-Jan-2025 14:35:33.865 INFOS [http-nio-8080-exec-158] org.apache.catalina.startup.HostConfig.deployWAR Le déploiement de l'archive de l'application web [/opt/tomcat/webapps/Sidonie.war] s'est terminé en [1 493] ms

I do not understand why there is no errors in log and why the ApplicationConfig which extends Application does not run.

The Application build well in Netbeans , the Sidonie.war is well generated and contains all the classes and libraries, and jakarta new libraries.

转载请注明原文地址:http://anycun.com/QandA/1745708379a91119.html