bonjour messieurs, mesdames,
Mon problème se situe sur un décodage d'objet json.
En effet l'envoie du json se passe bien mais pas le décodage.
ma première servlet qui encode un objet en json la librairi et Xstream:
Ma deuxième servlet qui récupére le json
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 protected String processRequest(HttpServletRequest request, HttpServletResponse response){ XStream xstream = new XStream(new JsonHierarchicalStreamDriver()); xstream.setMode(XStream.NO_REFERENCES); xstream.alias("moduleInfos", ModuleInfos.class); jsonObject = xstream.toXML(moduleInfos); // System.out.println(xstream.toXML(moduleInfos)); } return jsonObject; } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("application/json"); response.setCharacterEncoding("UTF-8"); String jsonObject = processRequest(request,response ); PrintWriter out = response.getWriter(); out.print(jsonObject); out.flush(); out.close(); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { super.doPost(req, resp); processRequest(req,resp); }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { getcontent(adresse) }
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
31
32
33
34
35
36
37
38 public String getcontent(String adresse) { StringBuilder sb = new StringBuilder(); BufferedReader reader = null; try { // création de la connection URL url = new URL(adresse); URLConnection conn = url.openConnection(); // lecture de la réponse reader = new BufferedReader(new InputStreamReader(conn.getInputStream())); String ligne; while ((ligne = reader.readLine()) != null) { sb.append(ligne).append("\n"); } } catch (Exception e) { e.printStackTrace(); } finally { try { reader.close(); } catch (Exception e) { } } if(sb.toString() != null){ getModuleInfo(sb.toString()); } return sb.toString(); } public String getModuleInfo(String ov541info){ XStream xstream = new XStream(new JettisonMappedXmlDriver()); xstream.alias("moduleInfos", ModuleInfos.class); ModuleInfos moduleInfos = (ModuleInfos)xstream.fromXML(ov541info); System.out.println(moduleInfos.getArtifactId()); return null; }
Et l'erreur que je n'arrive pas a résoudre.
J'utilise l'API xstream pour faire du json.
Merci de votre aide.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 java.lang.NoClassDefFoundError: javax/xml/stream/XMLStreamException at eds.module.ihm.lifepage.ServletInfo.getjson(ServletInfo.java:398) at eds.module.ihm.lifepage.ServletInfo.getcontent(ServletInfo.java:391) at javax.servlet.http.HttpServlet.service(HttpServlet.java:743) at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
Partager