-1

私の web.xml ファイルコード

<welcome-file-list>
    <welcome-file>/index.jsp</welcome-file>
</welcome-file-list>
<listener>
    <listener-class>com.vts.action.Server</listener-class>
</listener>

Server.java コード....

public class Server extends HttpServlet implements ServletContextListener {
    private static final long serialVersionUID = 1L;

    Socket clientsocket;
    ServerSocket socket = null;
    int PORT = 9090;

    @Override
    public void contextDestroyed(ServletContextEvent arg0) {
        // TODO Auto-generated method stub
        System.out.println("ServletContextListener destroyed");

    }
       @Override
       public void contextInitialized(ServletContextEvent arg0) 
        {
           // hear code create socket server and accept multiple client connection and                        
              String via gps and save string in database is working correctly 
        }
}

しかし、今私の問題は、バックグラウンドで実行される gps を介して継続的な文字列を受け入れたいことです

しかし、index.jsp ページは開始されていません。これは私のウェルカム ファイルです。私の web.xml のリスナー構成が正しいか間違っているかわかりません.....お願いします

ありがとうございます。それでは、お元気で

クリシュナカント

4

1 に答える 1

1

返信ありがとうございます。ようやく解決策が得られました...サーバー側でTCP接続を使用してスレッドを使用し、contextListnerメソッドを使用する2つのJavaクラスMyListerner.javaを作成しています

@Override
public void contextDestroyed(ServletContextEvent arg0) {
    System.out.println("ServletContextListener destroyed");
}
@Override
public void contextInitialized(ServletContextEvent arg0) {
    ExecutorService executorService = Executors.newSingleThreadExecutor();
    executorService.submit(new RunClassOnDeployment(arg0.getServletContext()));
}

コンテキストで初期化された呼び出し server.java (スレッドを使用した TCP 接続)

vtsDataDao vtsData ;
ServletContext myServletContext; // in case you need the servelet context

public server(ServletContext sc) {
       myServletContext = sc;
}
@Override
public void run() {
    ServerSocket serverSocket = null;
    try {
        // Create the server socket.
        serverSocket = new ServerSocket(9090);
       } catch (IOException ioe) {
        System.out.println("Could not create server socket at 9090. Quitting.");
    }
    System.out.println("Listening for clients on 9090...");
    while (true) {
        try {
            Socket clientSocket = serverSocket.accept();
            try{
                DataInputStream is = new DataInputStream(new BufferedInputStream(clientSocket.getInputStream()));
                while (true) 
                   {
                    byte[] byteData = receiveData(is);
                    String frameData = new String(byteData).trim();
                    System.out.println("Incoming String's:-"+frameData);
                    new vtsDataDao().sendInputFrame(frameData);
                   }//end while
               }catch(Exception e){

               }//end ctry catch                
        } catch (IOException ioe) {
            System.out
                    .println("Exception encountered on accept. Ignoring. Stack Trace :");
            ioe.printStackTrace();
        }
    }
}

** 注:- 上記のクラスでは、2 つのメソッド 1 を使用しています。

web.XML

    <listener>
    <listener-class>com.vts.action.MyListener</listener-class>
</listener>
于 2013-03-29T10:31:36.767 に答える