Maven ne fonctionne plus à cause de ssl

Salut à tous,   Aujourd’hui, j’ai voulu joué avec spring, et créer une petite application avec springboot, impossible de téléchargé le pom parent, rien ne fonctionnais ! Après avoir pas mal tatoné, je me suis rendu compte que c’était ssl qui était complètement cassé (peut-être à cause d’une mise à jour foireuse ?).   En tout, avec cette petite commande magique (sous ubuntu / debian), j’ai pu tout réparer en clin d’oeil : sudo apt-get install -y ca-certificates-java && sudo update-ca-certificates -f  ...

Read More

créer une application spring-boot déployable en war (tomcat)

Bonjour à tous,   après m’être cassé les dents pas mal de temps sur ce problème, j’ai ENFIN trouvé la solution. Et évidement, c’était tout bête.   pour créer une appllication springboot que l’on peut déployer dans un tomcat   il faut que votre classe application hérite de SpringBootServletInitializer et override la méthode configure   comme ceci : Java @SpringBootApplication public class Application extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { return application.sources(Application.class); } public static void main(String[] args) throws Exception { SpringApplication.run(Application.class, args); } } 12345678910111213 @SpringBootApplicationpublic class Application extends SpringBootServletInitializer {     @Override    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {        return application.sources(Application.class);    }     public static void main(String[] args) throws Exception {        SpringApplication.run(Application.class, args);    } }   et votre pom.xml doit ressembler à ceci : XHTML <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>huseyinbabal.net</groupId> <artifactId>spring-mongodb-data-rest</artifactId> <version>0.1.0</version> <packaging>war</packaging> <properties> <java.version>1.7</java.version> </properties> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>1.2.7.RELEASE</version> <type>pom</type> <scope>import</scope> </dependency> <dependency> <groupId>io.spring.platform</groupId> <artifactId>platform-bom</artifactId> <version>1.1.4.RELEASE</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-rest</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb</artifactId> </dependency> <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> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> <pluginManagement> <plugins> <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.2</version> <configuration> <url>http://localhost:8080/manager/text</url> <server>TomcatServer</server> <path>/morgan</path> <username>openfoodfacts</username> <password>password</password> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>2.6</version> <configuration> <failOnMissingWebXml>false</failOnMissingWebXml> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.3</version> <configuration> <source>1.7</source> <target>1.7</target> </configuration> </plugin> </plugins> </pluginManagement> <finalName>restWS</finalName> </build> </project> 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 <?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion>  <groupId>huseyinbabal.net</groupId> <artifactId>spring-mongodb-data-rest</artifactId> <version>0.1.0</version> <packaging>war</packaging>  <properties> <java.version>1.7</java.version> </properties>  <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>1.2.7.RELEASE</version> <type>pom</type> <scope>import</scope> </dependency> <dependency> <groupId>io.spring.platform</groupId> <artifactId>platform-bom</artifactId> <version>1.1.4.RELEASE</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>   <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-rest</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb</artifactId> </dependency>   <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>        </dependency> </dependencies>  <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins>  <pluginManagement> <plugins> <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.2</version> <configuration> <url>http://localhost:8080/manager/text</url> <server>TomcatServer</server> <path>/morgan</path> <username>openfoodfacts</username> <password>password</password> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>2.6</version> <configuration> <failOnMissingWebXml>false</failOnMissingWebXml> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.3</version> <configuration> <source>1.7</source> <target>1.7</target> </configuration> </plugin> </plugins> </pluginManagement> <finalName>restWS</finalName> </build> </project>   il doit générer un fichier war grâce à la propriété : XHTML <packaging>war</packaging> 1 <packaging>war</packaging> utiliser la dépendence : XHTML <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> </dependency> 12345   <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-tomcat</artifactId>            <scope>provided</scope>        </dependency> et normalement le problème devrais etre...

Read More

Savoir si un utilisateur à fini de télécharger un fichier

Savoir si un utilisateur à fini de télécharger un fichier

Bonjour à tous, Récemment j’ai eu la problématique d’effectuer une action uniquement dans l’utilisateur à fini de télécharger un fichier. Pour résoudre ce problème j’ai du utiliser FileChannel qui permet de savoir exactement où l’on en est dans la lecture du fichier. La solution est tellement simple qu’elle en est élégante : il suffit de overrider la méthode close de FileInputStream Java final FileInputStream fileInputStream = new FileInputStream(zipFile){ @Override public void close() throws IOException { FileChannel fc = this.getChannel(); if (fc.position() == fc.size()) { LOGGER.warn("#### download finished ###"); } else { LOGGER.warn("#### File is not finished to download ###"); } super.close(); } }; 1234567891011121314 final FileInputStream fileInputStream = new FileInputStream(zipFile){ @Override public void close() throws IOException { FileChannel fc = this.getChannel();  if (fc.position() ==  fc.size()) { LOGGER.warn("#### download finished ###");  } else { LOGGER.warn("#### File is not finished to download ###"); } super.close(); }}; Enfaîte, la méthode close est appelé quand la connexion est close. Si la position du fileChannel est égale à la taille totale, cela veux dire que le téléchargement à été terminé (tout le fichier à été lu). Hors si la position n’est pas égale à la taille, c’est que la connexion à été close par le client avant la fin du téléchargement (téléchargement annulé par l’utilisateur)....

Read More