5
respostas

Deploy Java API no IIS

Olá,

Fiz uma API em java, utilizandoNetBeans IDE, Wildfly 10, Hibernate, Postgres,

Rodei o projeto pelo netbeans mesmo, pois connectei o wildfly pelo netbeans (só sabia fazer desse jeito, nem sei se tem outro), também conectei o banco de dados com o wildfly através de um driver e umas config dentro da pasta do wildfly.

Meu front-end roda separado, e tudo localmente no meu PC roda tranquilamente. Porém agora eu quero fazer DEPLOY disso em um dedicado meu na AMAZON que usa o IIS.

Porém meu conhecimento disso é 0, não sei nem por onde começar.

Eu preciso instalar o postgress no dedicado, certo? o wildfly tbm? ou o IIS já resolve tudo?

Alguém pode dar uma luz ?

5 respostas

Vamos lá... você já tinha um Frontend que roda no IIS? Aí você construiu uma API (no padrão REST certo?) em Java que acessa o Postgress usando o Hibernate certo? E durante o desenvolvimento vc usou o wildfly para expor a API em Java ?

No geral você consegue colocar tudo isso numa máquina só ( não é o recomendado), para isso coloque o Frontend no ISS respondendo na porta 80 e o wildfly numa outra porta (ex. 3000) e instale uma instância do Postgress nessa mesma máquina.

Mas pra ficar legal mesmo... você poderia ver esse curso de Docker https://cursos.alura.com.br/course/docker-e-docker-compose aqui na Alura, assim você poderia ter um container para cada componente seu... outra coisa é que o Deploy ficaria bem fácil, uma vez que você vai usar a mesma estrutura criada em desenvolvimento.

Pergunta:

Vamos lá... você já tinha um Frontend que roda no IIS?

R: Não, ele roda localmente. Uso um http-server do node que roda o front-end em uma porta 8081, e o wildfly por padrão roda na portão 8080 (como disse o wildfly é levantado pelo netbeans, não sei fazer de outra forma), e eles se comunicam ambos localmente na minha maquina.

Pergunta:

Aí você construiu uma API (no padrão REST certo?) em Java que acessa o Postgress usando o Hibernate certo?

R: Sim

Sobre o docker, eu quero passar trabalho mesmo kk, pra aprender como funciona essas coisas (que aparentemente muita gente já sabe, menos eu). Para futuramente me aventurar em dockers e outras novas tecnologias.

--- DUVIDA ---

E como eu "rodo" o wildfly no dedicado? e o WAR entra aonde nessa história toda?

Desde já, agradeço a atenção.

Beleza... Já que o seu frontend é Node, você não precisa do IIS, monta uma maquina Linux e instala o Wildfly (https://www.youtube.com/watch?v=W_S0fy0fMXM), instala tb o nodeJS (https://www.youtube.com/watch?v=BleYojqCaeQ) e o postgresql (https://www.youtube.com/watch?v=LYgQW4a_anA)

Após instalar tudo, o WAR vai na pasta $JBOSS_HOME/standalone/deployments

Mas o meu dedicado é aquele de 1 ano free da Amazon, ele vem com windows. E se eu optar por não usar o IIS como vou criar o site, para ser acessado externamente mexer no DNS e etc..? o ISS eu sei que da pra fazer isso, já dei uma mexida nisso uma vez. Também nem sei se consigo instalar linux no dedicado, já que ele é um free trial.

E segundo a resposta desse post, é possível usar um websever java tipo o wildfly/tomcat com IIS através de um plugin, só que ao ler sobre, não consegui compreender como funcionaria com o wildfly o artigo referenciado é com o tomcat. https://stackoverflow.com/questions/24743974/deploying-java-jsp-struts-2-web-app-on-iis-on-windows-server

Pensei na possibilidade de acessara pasta /bin do wildfly e usar o comando standalone.bat pra rodar o servidor wildfly local, e depois só configurar o meu front-end com o IIS o que seria mais fácil de fazer, visto que não pretendo desacoplar, ambas vão ficar sempre na mesma maquina.

Então coloquei em prática, mas agora não sei como acesso a api, antes quando rodava no NetBeans o link de acesso da api era : http://localhost:8080/api/webresources.

Se eu quisse cadastrar ou recuperar um usuario por exemplo, eu faria uma chamada em http://localhost:8080/api/webresources/usuarios

Porém agora, quando "rodo" minha aplicação pela linha de comando, diz que foi deployado mas não consigo acessar nem pelo POSTMAN nem pela minha aplicação FRONT-END esses link que eram acessíveis antes, quando a aplicação back-end rodava pelo NetBeans.

Algumas prints pra ilustrar o que falei: http://prntscr.com/hvoc10

Console após usar o comando standalone.bat http://prntscr.com/hvoe5c

Admin console do wildflyhttp://prntscr.com/hvoep5