Bom dia,
Faz pouco tempo que trabalho com java e estou com um problema relativamente simples,
mas por ser novo não tenho idéia de como resolve-lo.
Tenho um SocketServer rodando recebendo multiplas conexões e gravando alguns dados
em banco. Tudo tranquilo até ae, mas eu quero rodar simultaneamente um Servlet pra que
através de uma requisição ajax na minha pagina Web o cliente possa disparar um evento no
servidor principal (SocketServer).
Minha dúvida é… como posso integrar o Servlet com o servidor que já esta rodando, sem ter
que fazer uma conexão socket, ou algo do gênero?
:Damigo, eu não manjo muito também sou novo aqui. Mas, estou num projeto que uso tanto socket quanto servlets. Se eu bem intendi, vc quer uma única aplicação que integre os dois processos não é? para servidor socket e servidor Servlet. Eu não sei se dá pra fazer isso, mas se vc deixar as duas rodando não funciona?
No meu caso eu deixo o serversocket rodando, o cliente faz as requisições e eu registro uma informação no banco. Então o Servlet varre o banco procurando essas requisiçoes… não é muito eficiente mas to fazendo assim
Espero ter ajudado, se eu não entendi a ideia me fala ok?!
ah, pq vc não cria uma função no seu servlet que tem um socket(cliente) e envia uma string para o ServerSocket? Faça um tratamento nesse pra interpretar essa string e disparar um evento. Acho que assim é mais eficiente
ops… vc não quer uma conexão socket… quer chamar o ServerSocket direto já rodando não é? Nao sei como faz isso, se vc chama um método específico do serversocket não funciona?
Então… eu não tenho conhecimento do servidor no meu servlet… esse é o problema…
queria saber se tem como, por exemplo, disparar o servlet de dentro da aplicação que já
está rodando meu servidor… ou o contrario.
Esta opção do banco de dados eu ja havia pensado,
mas como tem muita coisa sendo manipulada em banco aumentar o número de requisições não
é uma alternativa viável no momento.
A opção de criar um socket eu ja estou fazendo… mas em php… tenho uma conexão com outra porta
para manipular as recepções que chegam do php… mas eu queria tirar isso ^^
Espero que alguem me de uma luz… se é possível integrar ambos
(SocketServer e Servlet) em uma única aplicação servidor. Talvez JEE ou algo assim, qualquer dica
é bem vinda.
Obrigado aos que responderam.
[]´s
Descio
[quote=Descio]Então… eu não tenho conhecimento do servidor no meu servlet… esse é o problema…
queria saber se tem como, por exemplo, disparar o servlet de dentro da aplicação que já
está rodando meu servidor… ou o contrario.
[]´s
Descio[/quote]
Certo. Mas esse servidor que vc fala, é o que? uma aplicação servidora, o socket servidor, servlet?
O servidor é uma aplicação servidora… ela esta rodando com um SocketServer e multiplos acessos a banco de dados.
Pra ficar mais claro, eu quero que meu Servlet receba algo via Ajax, interprete esses dados e envie (direto ou indireto) algo pra um determinado socket que esta rodando na aplicação que esta com socketserver.
Não to conseguindo ver como fazer pra subir o Servlet junto com essa aplicação… ainda vejo os dois como duas coisas
separadas ;/.
Estou estudando, mas ainda não vi nda que una os dois… acho q não fui tão afundo ainda
Um caminho, uma direção pra que sentindo devo seguir, já ajuda.
Obrigado
[]´s
haha, desculpe é que sou tão inexperiente quanto vc. Então, pq vc nao usa o servlet e o socketserver na mesma aplicação? vc roda o servlet normalmente, faz as threads que tem q fazer e trata eventos, fica monitorando pra ver se existe :
- Alguma conexão socket
ou ainda - chamada do método “serversocket”.
Se conseguir me avisa, qq coisa eu tento codificar aqui
Tipo… o ultimo jeito que eu sei pra subir o servlet… é através de um container…
no meu caso, to usando o tomcat. Mas tipo… a não ser que eu faça o servlet
chamar meu socketServer, isso não iria funcionar …
Mas pra mim isso não eh muito bom, pq se travar ou parar o tomcat pára toda a minha aplicação
o ideal é que o socketserver continue rodando.
Ainda atraz da solução ^^
Quero ver se começo estudar EJB e JEE… talvez lá tenha uma solução…
mas como não conheço nda heheh… so estudando pra saber
Dicas ainda são bem vindas…
[]´s
Heh, não deu… boa sorte aí kra =P
hehe obrigado… vlw pela boa vontade xD…
quando eu achar uma solução posto aki
se alguem souber antes… e poder ajudar hehe
Mesmo assim… obrigado
[]´s
Oi Descio,
Eu entendi que sua situação é a seguinte: Você tem o Tomcat executando uma aplicação e um servidor Socket executando uma outra aplicação, e você está querendo executar algum tipo de serviço no servidor Socket através de um Servlet que está no Tomcat e por alguma razão acha que isso não dá pra ser feito.
É isso mesmo?
Desculpe não ter entendido a descrição do seu problema direito.
[]'s
É isso mesmo fantosma… to querendo integrar as duas aplicações…
Vo colocar da seguinte forma…
Tenho uma aplicação “A” recebendo varias conexoes Socket, conexões com BD etc… e tenho uma aplicação “B” rodando em tomcat com servlet.
Minha aplicação “A” é meio critica e minha quantidade de erros deve ser reduzida, então por isso não posso subir ela junto como servlet
através do tomcat.
Até agora to fazendo da seguinte forma: abro mais um socketserver na minha aplicação “A”,
e conecto nele via socket dentro do servlet da aplicação “B”
Tem alguma forma mais eficiente de integrar essas duas aplicações? Sem que precise ser via socket? Porque a duas estão rodando na mesma máquina e cada socket que abro diminui meu número de portas disponíveis nessa maquina.
[]´s