0

Eclipse Indigo と Tomcat 7.0 を使用しています。パッケージ「gui」を含むSwingアプリケーション、プロジェクト「Controller」があります。このアプリケーションでは、マシン情報を「設定」するためのコントローラー ツールを作成しています。Swing要素の情報が保存されているいくつかのハッシュマップがあります(20の同様のパネルですが、名前、ステータスなどの異なる情報が含まれています)。

サーブレットを使用して、これらの情報を含む JSON ファイルを作成したいと考えていました (何らかの方法で Android アプリケーションにデータを取得する必要があり、私にとっては JSON が適切な選択でした)。サーブレットは localhost:8080/CommunicationBase/JSONServlet 経由で接続できます。ここで問題があります。サーブレットの Dynamic-Web-Service プロジェクトで Swing アプリケーションを使用できません。

私のサーブレットの小さな例:

public class JSONServlet extends HttpServlet {
    /*this is in my dynamic-web-service-project "CommunicationBase" */

    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        JSONArray arrayObj = new JSONArray();
        arrayObj.add("Machine #1");
        arrayObj.add("Status: Down");

        PrintWriter out = response.getWriter();
        out.println(arrayObj);

        arrayObj = new JSONArray();
        arrayObj.add("Machine #2");
        arrayObj.add("Status: Running");        
    }
}

ハッシュマップ情報を Swing アプリケーションからサーブレットに渡すにはどうすればよいですか? "Controller" プロジェクトに Java クラスを 1 つだけ作成して、web.xml. はいの場合、どこですか?または、どうすればいいですか?

AndroidアプリからサーブレットのJSON情報を変更して、何とか簡単に変更できますか? Swing アプリケーションの情報が変更されるようにします (Android と Swing アプリケーションは常に同じ LAN で動作します)。

4

2 に答える 2

2

Webアプリケーション(つまりサーブレット)は、データベースから情報を取得する必要があります。

スイングアプリケーションは、情報をHashMapsに保存するのではなく、同じデータベースから直接取得して同じデータベースに保存するか、Webアプリと通信して情報を取得/保存する必要があります。

Androidアプリケーションは、情報を取得および変更するためにWebアプリケーションとも通信する必要があります。

結局、誰もが同じデータベースに情報を取得して保存することになります。

于 2012-12-07T17:12:30.423 に答える
1

Android クライアント:

            Socket socket = new Socket(serverIPAddress, SERVER_PORT);
            BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream(), "UTF-8"));
            String help = reader.readLine();
            JSONObject myJson = new JSONObject(help);

スイングアプリケーション:

 Thread thread = new Thread() {
        @Override
        public void run() {
            try {
            //  while(socket.isConnected()){

                writer = new OutputStreamWriter(socket.getOutputStream(), "UTF-8");
                reader = new BufferedReader(new InputStreamReader(socket.getInputStream(), "UTF-8"));

                JSONObject myJson = new JSONObject();
                JSONArray list = new JSONArray();
                ... //do something useful for JsonTransformation

writer.write(myJson.toString());

 }
}catch (IOException e) {
                e.printStackTrace();
            } finally {
                closeSocket();
            }
 }

仕事をした。あなたの助けをthx!

于 2012-12-10T18:50:17.243 に答える