Bonsoir,
Je vous explique je voudrais creer un petit serveur http en listening sur un port de mon choix afin de recevoir des informations de l'exterieur, seulement je ne veux absolument pas creer une application war celle-ci ne s'rait que bloquante et ne me permettrait de faire des actions que quand elle est sollicitee.
Ci-dessous mon code :
Code Java : 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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46 public class Main { public static void main(String[] args) { // TODO Auto-generated method stub MyServer server = new MyServer(4242); server.setupConnection(); } } class MyHandler implements HttpHandler { public void handle(HttpExchange t) throws IOException { InputStream is = t.getRequestBody(); System.out.println(is.read()); } } class MyServer { private int port; private HttpServer server; private LinkedBlockingQueue queue; private ThreadPoolExecutor executor; public MyServer(int port) { this.port = port; try { server = HttpServer.create(new InetSocketAddress(port), 10); queue = new LinkedBlockingQueue(); executor = new ThreadPoolExecutor(2, 10, 1, TimeUnit.MINUTES, queue); } catch (IOException e) { System.err.println(e); } } public void setupConnection() { server.createContext("xxxxx", new MyHandler()); server.setExecutor(executor); server.start(); } } class Test { public void testServer() { } }
Je rencontre un probleme avec le server.createContext("xxxxx", new MyHandler()), oui car celui ci m'oblige a entrer un path de fichiers xml ou autres et moi je ne recherche en fait qu'a afficher le contenu qui m'arrive sur le port, c'est deja problematique et logiquement lorsque je lance curl pour effectuer une requete de ce type, bien voici le resultat : <h1>404 Not Found</h1>No context found for request, resultat logique.
Mon objectif pour le moment que n'etant que d'afficher des notifications que je vais recevoir, et apparemment ces notifications utilisent le proto Http donc je suis oblige d'utiliser le protocole http
pourtant en creeant une simple serverSocket de l'api Java cela fonctionne tres bien quand je fais des tests avec telnet mais je ne recois pas les notifications qqun pourrait il m'orienter.
Merci Beaucoup.
Partager