GUJ
Notícias, artigos e o maior fórum brasileiro sobre Java
home
fórum
notícias
tópicos recentes
empregos
artigos
Bem-vindo ao GUJ.
Crie seu login
, ou digite-o para logar no site.
Usuário:
Senha:
Applet java rodando em apache
Índice dos Fóruns
»
Desenvolvimento Web
Autor
Mensagem
05/12/2009 12:01:42
Assunto:
Applet java rodando em apache
rvcabral
JavaBaby
Membro desde: 21/05/2008 14:56:21
Mensagens: 95
Localização: Florianópolis - SC
Offline
olá colegas,
estou ocm o seguinte problema:
preciso de um chat java que rode via applet num servidor apache.
fiz um applet com sockets, o mesmo do livro "use a cabeça".
porém não roda o applet na web devido a restrições dos applets.
preciso de alguma adaptação ou outra sugestão de como fazer isto.
segue o cliente:
public class Cliente extends JApplet implements Runnable { /** Initializes the applet Cliente */ public void init() { try { java.awt.EventQueue.invokeAndWait(new Runnable() { public void run() { initComponents(); setUpNetworking(); Thread readerThread = new Thread(new IncomingReader()); readerThread.start(); } }); } catch (Exception ex) { ex.printStackTrace(); } } private void initComponents() { jPanel1 = new javax.swing.JPanel(); jScrollPane1 = new javax.swing.JScrollPane(); conversa = new javax.swing.JTextArea(); jScrollPane2 = new javax.swing.JScrollPane(); enviar = new javax.swing.JTextArea(); brEnviar = new javax.swing.JButton(); jPanel1.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout()); conversa.setColumns(20); conversa.setEditable(false); conversa.setLineWrap(true); conversa.setRows(5); conversa.setWrapStyleWord(true); jScrollPane1.setViewportView(conversa); enviar.setColumns(20); enviar.setLineWrap(true); enviar.setRows(5); enviar.setWrapStyleWord(true); jScrollPane2.setViewportView(enviar); brEnviar.setText("enviar"); brEnviar.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { brEnviarActionPerformed(evt); } }); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, 955, Short.MAX_VALUE) .addGroup(layout.createSequentialGroup() .addGap(21, 21, 21) .addComponent(brEnviar) .addGap(26, 26, 26) .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(595, 595, 595)) .addGroup(layout.createSequentialGroup() .addContainerGap() .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 341, Short.MAX_VALUE) .addGap(604, 604, 604)) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 112, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(24, 24, 24) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGap(37, 37, 37) .addComponent(brEnviar)) .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(1266, 1266, 1266)) ); } private void brEnviarActionPerformed(java.awt.event.ActionEvent evt) { try { // System.out.println(enviar.getText()); writer.println(enviar.getText()); writer.flush(); } catch (Exception e) { System.out.println("erro no actionListner "+ e); } enviar.setText(""); enviar.requestFocus(); } public void run() { //metodo run para utilizar como thread this.init(); } public class IncomingReader implements Runnable{ public void run() { String message; try { while ((message = reader.readLine()) != null) { //System.out.println("lendo "+ message); conversa.append(message + "\n"); } } catch (Exception e) { System.out.println("erro no imcomingReader "+ e); } } } private void setUpNetworking(){ try { sock = new Socket("127.0.0.1", 5000); InputStreamReader streamReader = new InputStreamReader(sock.getInputStream()); reader = new BufferedReader(streamReader); writer = new PrintWriter(sock.getOutputStream()); System.out.println("conexão estabelecida!"); } catch (Exception e) { System.out.println(" erro no setUpNetworking "+ e); } } private javax.swing.JButton brEnviar; private javax.swing.JTextArea conversa; private javax.swing.JTextArea enviar; private javax.swing.JPanel jPanel1; private javax.swing.JScrollPane jScrollPane1; private javax.swing.JScrollPane jScrollPane2; BufferedReader reader; PrintWriter writer; Socket sock; }
agora a classe servidor:
public class VerySimpleChatServer implements Runnable{ ArrayList clienteOutputStreams; public void run() { go(); } public class ClienteHandler implements Runnable{ BufferedReader reader; Socket sock; public ClienteHandler(Socket clientsocket){ sock = clientsocket; try { InputStreamReader isReader; isReader = new InputStreamReader(sock.getInputStream()); reader = new BufferedReader(isReader); } catch (IOException ex) { System.out.println("erro no ClientHandler " + ex); } } public void run() { String message; try { while ((message = reader.readLine()) != null) { System.out.println("lendo no servidor "+ message); tellEveryone(message); } } catch (Exception e) { } } } public static void main(String[] args) { new VerySimpleChatServer().go(); } public void go(){ clienteOutputStreams = new ArrayList(); try { ServerSocket serverSocket = new ServerSocket(5000); while(true){ Socket clientSocket = serverSocket.accept(); PrintWriter writer = new PrintWriter(clientSocket.getOutputStream()); clienteOutputStreams.add(writer); Thread t = new Thread(new ClienteHandler(clientSocket)); t.start(); System.out.println("conectando"); } } catch (Exception ex) { System.out.println("erro no metodo go "+ ex); } } public void tellEveryone(String message){ Iterator it = clienteOutputStreams.iterator(); while (it.hasNext()) { try { PrintWriter writer = (PrintWriter) it.next(); writer.println(message); writer.flush(); } catch (Exception e) { System.out.println("erro no tellEveryone "+ e); } } } }
pela ferramente netbeans executando primeiro o servidor, e depois o cliente (ou os clientes roda bonitinho).
ja no browser não.
obrigado
05/12/2009 12:27:15
Assunto:
Re:Applet java rodando em apache
rvcabral
JavaBaby
Membro desde: 21/05/2008 14:56:21
Mensagens: 95
Localização: Florianópolis - SC
Offline
.
This message was edited 1 time. Last update was at 05/12/2009 12:27:34
Índice dos Fóruns
»
Desenvolvimento Web
Ir para:
Selecione um Fórum
Notícias
Assuntos gerais (Off-topic)
MundoJ - Artigos, Notícias e Debates
Artigos e Tutoriais
Java Básico
Java Avançado
Ferramentas, Frameworks e Utilitários
Desenvolvimento Web
Interface Gráfica
Google Android e Java Micro Edition (ME)
Certificação Java
Persistência: Hibernate, JPA, JDBC e outros
Java Enterprise Edition (Java EE)
Frameworks e Bibliotecas brasileiros
RIA - Flex, JavaFX e outros
Arquitetura de Sistemas
Metodologias de Desenvolvimento e Testes de Software
JavaScript
Ruby & Ruby on Rails
Outras Linguagens
Powered by
JForum 2.1.8
©
JForum Team