2016-07-21 5 views
0

Ich habe ein ServletOne läuft in lokalen TOMCAT und ServletTwo ist in verschiedenen TOMCAT in remote-Speicherort bereitgestellt. Ich möchte auf Werte (Array/ArrayList) zugreifen, die in servletTwo festgelegt sind. Ich bin mir nicht sicher, wie es geht. Ich habe mir verschiedene Beispiele angeschaut aber nichts funktioniert. Das habe ich bisher. Hier ist meine doPostSetzen Sie Wert in einem Servlet und greifen Sie darauf von verschiedenen Servlet

doGet(req, resp); 

//doGet 
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException 
{ 
ArrayList al = new ArrayList(); 

    al.add("valOne"); 
    al.add("valTwo"); 
    //Should I use this 
    PrintWriter out = resp.getWriter(); 
    out.println(al); 
    //Or should I use this 
    req.setAttribute("ArrayList", al); 
} 

Nun möchte Ich mag die Arraylist für den Zugriff aus dem servletOne

In servletOne ich habe,

try 
    { 
     URL url = new URL("http://myhost:8080/servletTest"); 
     URLConnection conn = url.openConnection(); 
     conn.setDoOutput(true); 

     BufferedReader in = 
       new BufferedReader(new InputStreamReader(conn.getInputStream())); 

     String response; 
     while ((response = in.readLine()) != null) 
     { 
      System.out.println(response); 

     } 
     in.close(); 
    } 
    catch (MalformedURLException ex) 
    { 
     // handle this exception 
    } 
    catch (IOException ex) 
    { 
     // handle this exception 
    } 

} 

Ich glaube nicht, es wird funktionieren, wie ich bin immer der Wert als String nicht als Array vom ServletOne. Jede Hilfe wird geschätzt. Vielen Dank im Voraus.

Antwort

0

können Sie JSON verwenden:

protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException 
{ 
ArrayList al = new ArrayList(); 

    al.add("valOne"); 
    al.add("valTwo"); 
    //Should I use this 
    PrintWriter out = resp.getWriter(); 
    out.println(al); 
    //Or should I use this 
    // req.setAttribute("ArrayList", al); 

//create al object to JSOn and send it another servlet on another tomcat 


    Gson gson=new Gson(); 

    String jsonlist=gson.toJson(al) 

    String url = "http://example.com/query?q=" + URLEncoder.encode(jsonlist, "UTF-8"); 

} 
+0

Ist encodeURIComponent und JSON.stringify in JAVA zur Verfügung? – msu

+0

Sie können JSON lib in Java verwenden JSONObject obj = ... String jsonString = obj.toString(); – Mogli

+0

Könnten Sie bitte ersetzen, encodeURIComponent (JSON.stringify (al)); mit Ihrer vorgeschlagenen Java-Lösung. Danke – msu