我目前的功能有问题:

public static Connection ConnectDB(){
        try{
        File fichier = new File("\\XFiles\\Conf\\init.xml");
        System.out.println(fichier.getAbsoluteFile());
        String nom = fichier.getName();
        InputStream input = Thread.currentThread().getContextClassLoader().getResourceAsStream(nom);
        Document document = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(new InputSource(input));
        XPath xpath = XPathFactory.newInstance().newXPath();

        String url = (String) xpath.compile("//init//jdbc//url").evaluate(document, XPathConstants.STRING);
        String driver = (String) xpath.compile("//init//jdbc//driver").evaluate(document, XPathConstants.STRING);
        String username = (String) xpath.compile("//init//jdbc//username").evaluate(document, XPathConstants.STRING);
        String password = (String) xpath.compile("//init//jdbc//password").evaluate(document, XPathConstants.STRING);

        String passwordCryp = String.valueOf(password);

        Cryptage cipherUtil = new Cryptage();
        String mdpCrypte = cipherUtil.encrypt(passwordCryp);

        Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); //méthode qui retourne la classe de l'objet assoccié au string
        if(conn==null){ //si la connexion est null
            conn = DriverManager.getConnection(url+"integratedSecurity=true;",username,password); //récupérer les informations de la connexion (serveur, BDD...)
            logger.debug("Connexion Réussite");
        }

        return conn; //retourne la connexion
        }catch(Exception e){ //s'il y a une erreur
            logger.error(e);
            return null;
        }
    }


当我编译并运行它时,变量“输入”始终为空。我试图将xml文件放在File对象中,但仍然无法正常工作。

最佳答案

String nom = fichier.getName();将仅返回文件名,即init.xml。如果要在指定的路径中访问文件,则应使用fichier.getPath()甚至fichier.getAbsolutePath()

10-02 21:28