Servidor Rest com Maven no Eclipse

Vamos então para um passo-a-passo objetivando a ativação de um projeto básico de Servidor Rest utilizando o Eclipse com o Maven. Acredito que será uma série de tutoriais a respeito, já que são configurações com detalhes fáceis de esquecer.



Configurando o ambiente.

Para este procedimento precisamos ter o java JDK versão 8. Encontrado no link do site da oracle:
https://www.oracle.com/technetwork/java/javase/downloads/index.html

Atenção para baixar JDK, que é o instalador para ambiente de desenvolvimento. Nele já vem incluso o JRE.

Não abordarei instalação de java, mas a forma de verificar seu funcionamento é executando em um prompt de comando: java -version


Nesta tela verifica-se que o java não está instalado. Mas após instalação deve ter o retorno a seguir:



Outro requisito será o Eclipse JEE instalado. Caso não possua siga o link : https://www.eclipse.org/downloads/packages/


Feito o Download e instalação do JDK e do Eclipse, veremos a preparação do ambiente no eclipse.


Abra o eclipse e preferencialmente crie um novo Workspace


No passo seguinte será iniciar a configuração de ambiente no Eclipse, clicar em Windows preferences.



Siga ate o item Java / Installed JREs


No lado direito perceberá que a versão está incorreta, precisamos que seja apontado para o JDK.
Então, clicar em edit, e em seguida clicar em directory no primeiro campo da tela a seguir





Deverá ir até o diretório do jdk, no caso acima no windows ficou c:\Program Files\Java\jdk1.8.0_191
em JRE name, colocar JDK1.8.0_191, feito isso, clicar em finish.








A seguir clicar no item Compiler, ainda na configuração do java.





Deverá ficar marcada a versão 1.8. Feito isso clicar em apply and close. Na tela a seguir iniciamos a parte do maven.

Clicar em File, New, Maven Project.






Next



Nesta tela selecionar maven archetype webapp 1.0.


No nome insira o que desejar, no exemplo coloquei MeuSiteRest, nos três campos colocar exatamente igual, pelo menos para nosso caso de projeto básico.


Após clicar em finish, as pastas iniciais são criadas automaticamente.



Na estrutura acima, localizar o arquivo pom.xml e clicar duas vezes nele para editar.



Apagar o conteúdo dele e inserir o seguinte, exatamente como está, prestando atenção ao nome do projeto que está neste modelo abaixo:


<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>MeuSiteRest</groupId>
<artifactId>MeuSiteRest</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>MeuSite Maven Webapp</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-server</artifactId>
<version>1.17</version>
</dependency>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-servlet</artifactId>
<version>1.17</version>
</dependency>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-json</artifactId>
<version>1.17</version>
</dependency>
<dependency>
<groupId>javax.ws.rs</groupId>
<artifactId>jsr311-api</artifactId>
<version>1.1.1</version>
</dependency>
</dependencies>
<build>
<finalName>MeuSite</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<webXml>WebContent\WEB-INF\web.xml</webXml>
</configuration>
</plugin>
<plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.1</version>
        <configuration>
            <source>1.8</source>
            <target>1.8</target>
        </configuration>
    </plugin>
</plugins>
</build>
</project>


Feito isso salvar.
Obs: Importante que os campos em negrito acima sejam ajustados de acordo com sua versão do JDK. Caso contrário pode dar problema durante a compilação do projeto.


Em seguida, clicar o botão direito no projeto e selecionar Properties.



 Em seguida entrar na opção Deployment Assembly. Lá deverá constar o Maven Dependencies, caso contrário deverá clicar em ADD, java Build Path Entries e selecionar o Maven Dependencies.



Na tela a seguir em java build path verifica-se a versão do java errada, Clicar em JRE e em edit para corrigir a versão.



Deverá ajustar para o JRE default do workspace



Outro ajuste a ser realizado é no Compiler, que deverá também estar na versão do JDK, no caso 1.8.



A seguir a parte mais chata, em Project Facets, deverá ser seguido de forma atenta.





Esta tela acima encontra-se a forma padrão, deveremos alterar alguns campos. Inicialmente desmarcar o java, aplicar, alterar a versão para a correta e em seguida aplicar novamente.



Mesmo processo para o dynamic web module, desmarca, altera a versao para 3.1 e aplica.
Caso dê erro que nao reconhece o java, desmarca, aplica e fecha, e volta novamente na tela, marca, altera a versão e aplica.



Na tela ao marcar o dynamic, aparece opção de further configuration, clicar nele e na tela que aparece, marcar a opção: generate web.xml e clicar em OK.




próximo a marcar é JAX-RS. Também aparece further configuration,  em type, deixar selecionado disable library configuration.

Feito isso, clicar em apply and close.




Em seguida clicar com botão direito no projeto, e Maven, update project. Nisso ficarã a seguinte estrutura


Remover o arquivo index.jsp.

Vamos então no caminho src / main / java criar um pacote chamado servico


Em package criar uma classe com nome calculadora




Na classe calculadora, insira o código acima. É uma estrutura básica apenas para deixar o serviço respondendo às solicitações.




Outro arquivo importante é  web.xml ele fica no caminho: webcontent/web-inf

apagar o conteúdo e inserir o seguinte, (atenção ao nome do projeto)


<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1">
  <display-name>MeuSiteRest</display-name>
  <servlet>
    <servlet-name>jersey-servlet</servlet-name>
    <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
    <init-param>
      <param-name>com.sun.jersey.config.property.packages</param-name>
      <param-value>servico</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>jersey-servlet</servlet-name>
    <url-pattern>/rest/*</url-pattern>
  </servlet-mapping>
  <servlet>
    <servlet-name>Faces Servlet</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>/faces/*</url-pattern>
  </servlet-mapping>
</web-app>

Feito isso, salvar. Clicar botão direito no projeto, run as / Maven install.




Durante o processo será realizado download de dependências e configurado ambiente.



Quase acabando....
Clicar botão direito no projeto, RunAS Run on Server



Neste processo, ainda não temos um servidor Tomcat para servir a porta de conexão.


Nesta tela, procurar por Tomcat 8.0 Server e Next.


Ajustar a versão do JDK, e clicar em Download and Install. Abrirá uma janela para indicar a pasta onde será salvo o servidor.




Após o rápido processo de instalação chegará na tela para selecionar o projeto para carregamento




Clicar em Next.


Eis o susto, mas lembrar que na configuração o caminho publicado é o host/rest/calculadora, ficando entao: http://localhost/MeuSiteRest/Rest/calculadora



O retorno do Rest é texto. O que fazer com ele, já fica para outra postagem quando eu tiver aprendido ;)



Comentários