Cícero Ednilson

Blog sobre Desenvolvimento de Softwares

Home » Java – Criando um Web Service Rest com Jersey e JPA.

Java – Criando um Web Service Rest com Jersey e JPA.

0 Flares Twitter 0 Facebook 0 Filament.io 0 Flares ×

Nesse artigo vamos criar um Web Service Rest usando o Jersey que é o framework de referência para o  JAX-RS, hoje em dia os Web Services em Rest estão sendo muito usados em aplicações Mobile para acesso a dados e regras de negócio complexas, mas eles não são limitados para aplicações Mobile, você pode acessar esses Web Services de varias plataformas.

Você pode querer ler também:

Criando o banco de dados

Vamos abrir o Mysql Workbench e vamos executar os comandos abaixo para criar nossa base e nossa tabela.

1
2
3
4
5
6
7
8
9
CREATE DATABASE db_estudo;
 
 
CREATE TABLE db_estudo.tb_pessoa
(
	codigo INTEGER      AUTO_INCREMENT PRIMARY KEY,
	nome   VARCHAR(100) NOT NULL,
	sexo   CHAR(1)	    NOT NULL    
);

Depois podemos ver a base criada do lado esquerdo do Workbench.

Criando o projeto

Vamos abrir o Eclipse e vamos até o menu File -> New -> Maven Project.
 

Na tela que foi aberta vamos apenas clicar em Next.

Agora vamos selecionar maven-archetype-webapp e clicar em Next.

Agora vamos preencher os campos como mostra a imagem abaixo e depois vamos clicar em Finish.

Agora vamos clicar com o botão direito sobre o nosso projeto e vamos até o menu Properties.

Agora em Project Facets vamos retirar a seleção Dynamic Web Module, depois em Java vamos mudar a versão atual para a versão que vamos usar, que no meu caso é a 1.8, depois vamos clicar em Apply.

Agora vamos selecionar Dynamic Web Module e vamos mudar a versão para 3.0 como mostra a imagem abaixo, depois basta clicar em OK

Agora vamos deletar a pasta WebContent que foi gerada.

Agora vamos novamente clicar com o botão direito sobre o nosso projeto e vamos até o menu Properties.

Agora em Java Build Path na aba Libraries vamos clicar no botão Add Library…

Agora vamos selecionar Server Runtime e clicar em Next.

Agora vamos selecionar o Tomcat e clicar em Finish, lembrando que o Tomcat só vai aparecer nessa tela se você já tiver adicionado ele ao Eclipse.

Depois basta clicar em OK.

Agora vamos abrir o nosso arquivo pom.xml e vamos deixar ele com o código abaixo para o Maven baixar as bibliotecas necessárias para o nosso projeto.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
<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>br.com.ciceroednilson</groupId>
  <artifactId>WebServiceRest</artifactId>
  <packaging>war</packaging>
  <version>0.0.1-SNAPSHOT</version>
  <name>WebServiceRest Maven Webapp</name>
  <url>http://maven.apache.org</url>
 
  <repositories>
  	<repository>
    	<id>snapshot-repository.java.net</id>
    	<name>Java.net Snapshot Repository for Maven</name>
    	<url>https://maven.java.net/content/repositories/snapshots/</url>
    	<layout>default</layout>
	</repository>  
  </repositories>
 
  <properties>
    <jersey.version>2.22.1</jersey.version>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
 </properties>
 
  <dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.glassfish.jersey</groupId>
            <artifactId>jersey-bom</artifactId>
            <version>${jersey.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
  </dependencyManagement>
 
  <dependencies>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>servlet-api</artifactId>
        <version>2.4</version>
    </dependency>
 
    <dependency>
        <groupId>org.glassfish.jersey.ext</groupId>
        <artifactId>jersey-mvc-jsp</artifactId>
    </dependency>
 
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>jstl</artifactId>
        <version>1.2</version>
    </dependency>
 
    <dependency>
        <groupId>org.glassfish.jersey.containers</groupId>
        <artifactId>jersey-container-servlet-core</artifactId>
    </dependency>
 
    <dependency>
        <groupId>javax.ws.rs</groupId>
        <artifactId>javax.ws.rs-api</artifactId>
        <version>2.0.1</version>
    </dependency>
 
    <dependency>
        <groupId>org.glassfish.jersey.media</groupId>
        <artifactId>jersey-media-moxy</artifactId>
    </dependency>
 
	<dependency>
   		<groupId>org.hibernate</groupId>
   		<artifactId>hibernate-core</artifactId>
   		<version>5.1.0.Final</version>
	</dependency>
 
	<dependency>
		<groupId>org.hibernate</groupId>
		<artifactId>hibernate-entitymanager</artifactId>
		<version>5.1.0.Final</version>
	</dependency>
 
 
    <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.37</version>
    </dependency>
 
  </dependencies>
 
  <build>  
	<finalName>WebServiceRest</finalName>   
	<plugins>
	    <plugin>
	       <artifactId>maven-compiler-plugin</artifactId>
	         <configuration>
	             <source>1.8</source>
	             <target>1.8</target>
	         </configuration>
	     </plugin>
	 </plugins>    
  </build>
 
</project>

Agora vamos abrir o nosso arquivo web.xml que fica na pasta src/main/webapp/WEB-INF, depois vamos deixar ele com o código abaixo, veja que temos configurado o pacote que vai conter o nosso serviço (br.com.ciceroednilson.controller).

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
		 xmlns="http://java.sun.com/xml/ns/javaee" 
		 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" 
		 id="WebApp_ID" 
		 version="3.0">
 
 <servlet>
    <servlet-name>Jersey REST Service</servlet-name>
    <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>     
    <init-param>
        <param-name>jersey.config.server.provider.packages</param-name>
        <param-value>br.com.ciceroednilson.controller</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
 </servlet>
 <servlet-mapping>
    <servlet-name>Jersey REST Service</servlet-name>
    <url-pattern>/rest/*</url-pattern>
 </servlet-mapping>
 
</web-app>

Agora em src/main/resources vamos criar uma pasta com o nome de META-INF, e nessa pasta vamos criar um arquivo xml com o nome de persistence.xml, depois no nosso arquivo xml que acabamos de criar vamos adicionar o código abaixo, esse arquivo contem as configurações para acesso ao nosso banco de dados.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?xml version="1.0" encoding="UTF-8"?>
<persistence xsi:schemaLocation="http://java.sun.com/xml/ns/persistence 
								http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd" 
			 version="2.0" 
			 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
			 xmlns="http://java.sun.com/xml/ns/persistence">
 
   <persistence-unit name="persistence_unit_db_estudo" transaction-type="RESOURCE_LOCAL">
      <provider>org.hibernate.ejb.HibernatePersistence</provider>
      <properties>
         <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/>
         <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
         <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/db_estudo"/>
         <property name="javax.persistence.jdbc.user" value="root"/>
         <property name="javax.persistence.jdbc.password" value="123456"/>
         <property name="hibernate.show_sql" value="true"/>
         <property name="hibernate.format_sql" value="true"/>
         <property name="hibernate.hbm2ddl.auto" value="update"/>
      </properties>
   </persistence-unit>
</persistence>

Abaixo podemos ver os nossos arquivos de configurações selecionados.

Agora vamos clicar com o botão direito sobre o nosso projeto e vamos até Maven -> Update Project…

Na tela que foi aberta vamos apenas clicar em OK.

Podemos ver que o nosso projeto não está mais apresentando nenhum erro.

Agora em src/main/java vamos criar um pacote com o nome de br.com.ciceroednilson.repository.entity e depois nesse mesmo pacote vamos adicionar uma classe com o nome de PessoaEntity.java. e na nossa classe vamos adicionar o código abaixo, essa classe vai ser a entidade que vamos persistir no banco de dados.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
package br.com.ciceroednilson.repository.entity;
 
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
 
@Entity
@Table(name="tb_pessoa")
public class PessoaEntity {
 
	@Id
	@GeneratedValue(strategy = GenerationType.IDENTITY)
	@Column(name="codigo")
	private Integer codigo;
 
	@Column(name="nome")	
	private String  nome;
 
	@Column(name="sexo")
	private String  sexo;
 
	public Integer getCodigo() {
		return codigo;
	}
 
	public void setCodigo(Integer codigo) {
		this.codigo = codigo;
	}
 
	public String getNome() {
		return nome;
	}
 
	public void setNome(String nome) {
		this.nome = nome;
	}
 
	public String getSexo() {
		return sexo;
	}
 
	public void setSexo(String sexo) {
		this.sexo = sexo;
	}
 
}

Ainda em src/main/java vamos criar um pacote com o nome de br.com.ciceroednilson.repository e depois nesse mesmo pacote vamos criar uma classe com o nome de PessoaRepository, depois vamos adicionar o código abaixo na classe que criamos.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
package br.com.ciceroednilson.repository;
 
 
import java.util.List;
 
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
 
import br.com.ciceroednilson.repository.entity.PessoaEntity;
 
 
 
public class PessoaRepository {
 
	private final EntityManagerFactory entityManagerFactory;
 
	private final EntityManager entityManager;
 
	public PessoaRepository(){
 
		/*CRIANDO O NOSSO EntityManagerFactory COM AS PORPRIEDADOS DO ARQUIVO persistence.xml */
		this.entityManagerFactory = Persistence.createEntityManagerFactory("persistence_unit_db_estudo");
 
		this.entityManager = this.entityManagerFactory.createEntityManager();
	}
 
	/**
	 * CRIA UM NOVO REGISTRO NO BANCO DE DADOS
	 * */
	public void Salvar(PessoaEntity pessoaEntity){
 
		this.entityManager.getTransaction().begin();
		this.entityManager.persist(pessoaEntity);
		this.entityManager.getTransaction().commit();
	}
 
	/**
	 * ALTERA UM REGISTRO CADASTRADO
	 * */
	public void Alterar(PessoaEntity pessoaEntity){
 
		this.entityManager.getTransaction().begin();
		this.entityManager.merge(pessoaEntity);
		this.entityManager.getTransaction().commit();
	}
 
	/**
	 * RETORNA TODAS AS PESSOAS CADASTRADAS NO BANCO DE DADOS 
	 * */
	@SuppressWarnings("unchecked")
	public List<PessoaEntity> TodasPessoas(){
 
		return this.entityManager.createQuery("SELECT p FROM PessoaEntity p ORDER BY p.nome").getResultList();
	}
 
	/**
	 * CONSULTA UMA PESSOA CADASTRA PELO CÓDIGO
	 * */
	public PessoaEntity GetPessoa(Integer codigo){
 
		return this.entityManager.find(PessoaEntity.class, codigo);
	}
 
	/**
	 * EXCLUINDO UM REGISTRO PELO CÓDIGO
	**/
	public void Excluir(Integer codigo){
 
		PessoaEntity pessoa = this.GetPessoa(codigo);
 
		this.entityManager.getTransaction().begin();
		this.entityManager.remove(pessoa);
		this.entityManager.getTransaction().commit();
 
	}
}

Ainda em src/main/java vamos criar um pacote com o nome de br.com.ciceroednilson.http, depois nesse mesmo pacote vamos criar uma classe com o nome de Pessoa, nessa classe vamos adicionar o código abaixo, essa classe que vamos usar para o envio e retorno de dados via request e response.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
package br.com.ciceroednilson.http;
 
 
import javax.xml.bind.annotation.XmlRootElement;
 
@XmlRootElement
public class Pessoa {
 
	private int codigo;
	private String nome;
	private String sexo;
 
	public Pessoa(){
 
	}
 
	public Pessoa(int codigo, String nome, String sexo) {
		super();
		this.codigo = codigo;
		this.nome = nome;
		this.sexo = sexo;
	}
 
	public int getCodigo() {
		return codigo;
	}
	public void setCodigo(int codigo) {
		this.codigo = codigo;
	}
	public String getNome() {
		return nome;
	}
	public void setNome(String nome) {
		this.nome = nome;
	}	
	public String getSexo(){
		return sexo;
	}
	public void setSexo(String sexo){
		this.sexo =  sexo;
	}	
 
}

Agora em src/main/java vamos criar um pacote com o nome de br.com.ciceroednilson.controller e nesse pacote vamos criar uma classe com o nome de ServiceController e vamos adicionar o código abaixo.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
package br.com.ciceroednilson.controller;
 
 
import java.util.ArrayList;
import java.util.List;
 
import javax.ws.rs.Consumes;
import javax.ws.rs.DELETE;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.PUT;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
 
import br.com.ciceroednilson.http.Pessoa;
import br.com.ciceroednilson.repository.PessoaRepository;
import br.com.ciceroednilson.repository.entity.PessoaEntity;
 
 
/**
 * Essa classe vai expor os nossos métodos para serem acessasdos via http
 * 
 * @Path - Caminho para a chamada da classe que vai representar o nosso serviço
 * */
@Path("/service")
public class ServiceController {
 
 
 
 
	private final  PessoaRepository repository = new PessoaRepository();
 
	/**
	 * @Consumes - determina o formato dos dados que vamos postar
	 * @Produces - determina o formato dos dados que vamos retornar
	 * 
	 * Esse método cadastra uma nova pessoa
	 * */
	@POST	
	@Consumes("application/json; charset=UTF-8")
	@Produces("application/json; charset=UTF-8")
	@Path("/cadastrar")
	public String Cadastrar(Pessoa pessoa){
 
		PessoaEntity entity = new PessoaEntity();
 
		try {
 
			entity.setNome(pessoa.getNome());
			entity.setSexo(pessoa.getSexo());
 
			repository.Salvar(entity);
 
			return "Registro cadastrado com sucesso!";
 
		} catch (Exception e) {
 
			return "Erro ao cadastrar um registro " + e.getMessage();
		}
 
	}
 
	/**
	 * Essse método altera uma pessoa já cadastrada
	 * **/
	@PUT
	@Produces("application/json; charset=UTF-8")
	@Consumes("application/json; charset=UTF-8")	
	@Path("/alterar")
	public String Alterar(Pessoa pessoa){
 
		PessoaEntity entity = new PessoaEntity();
 
		try {
 
			entity.setCodigo(pessoa.getCodigo());
			entity.setNome(pessoa.getNome());
			entity.setSexo(pessoa.getSexo());
 
			repository.Alterar(entity);
 
			return "Registro alterado com sucesso!";
 
		} catch (Exception e) {
 
			return "Erro ao alterar o registro " + e.getMessage();
 
		}
 
	}
	/**
	 * Esse método lista todas pessoas cadastradas na base
	 * */
	@GET
	@Produces("application/json; charset=UTF-8")
	@Path("/todasPessoas")
	public List<Pessoa> TodasPessoas(){
 
		List<Pessoa> pessoas =  new ArrayList<Pessoa>();
 
		List<PessoaEntity> listaEntityPessoas = repository.TodasPessoas();
 
		for (PessoaEntity entity : listaEntityPessoas) {
 
			pessoas.add(new Pessoa(entity.getCodigo(), entity.getNome(),entity.getSexo()));
		}
 
		return pessoas;
	}
 
	/**
	 * Esse método busca uma pessoa cadastrada pelo código
	 * */
	@GET
	@Produces("application/json; charset=UTF-8")
	@Path("/getPessoa/{codigo}")
	public Pessoa GetPessoa(@PathParam("codigo") Integer codigo){
 
		PessoaEntity entity = repository.GetPessoa(codigo);
 
		if(entity != null)
			return new Pessoa(entity.getCodigo(), entity.getNome(),entity.getSexo());
 
		return null;
	}
 
	/**
	 * Excluindo uma pessoa pelo código
	 * */
	@DELETE
	@Produces("application/json; charset=UTF-8")
	@Path("/excluir/{codigo}")	
	public String Excluir(@PathParam("codigo") Integer codigo){
 
		try {
 
			repository.Excluir(codigo);
 
			return "Registro excluido com sucesso!";
 
		} catch (Exception e) {
 
			return "Erro ao excluir o registro! " + e.getMessage();
		}
 
	}
 
}

Agora vamos realizar o deploy no Tomcat, vamos clicar com o botão direito no nosso projeto e vamos até Run As -> Run on Server como mostra a imagem abaixo.

Na tela que foi aberta vamos apenas clicar em Finish.

Testando o Web Service com SoapUI

Vamos abrir o SoapUI e vamos clicar no botão com o nome de Rest como mostra a imagem abaixo.

Na tela que foi aberta vamos colocar o endereço onde está rodando o nosso serviço no Tomcat, no meu caso está rodando em http://localhost:8081/WebServiceRest/rest/service, por default o tomcat usa a porta 8080, mais no meu estou usando 8081, depois disso basta clicar em OK.

Agora vamos mudar o método para POST, colocar a operação cadastrar e informar os dados em JSON como mostra a imagem abaixo, depois basta clicar no botão Submit que fica ao lado das opções de métodos, então você deve receber a mensagem de registro cadastrado com sucesso!

Cadastre alguns registros para testarmos as outras operações.

Agora vamos alterar um registro, para isso vamos deixar nossa request como mostra a imagem abaixo, depois basta clicar no botão Submit.

Agora vamos testar a operação que retorna todos os registros, para isso vamos mudar o método para GET e a operação para todasPessoas, depois vamos clicar no botão Submit.

Captura de tela de 2016-02-23 11:10:34

Agora vamos testar a operação getPessoa que retorna uma pessoa pelo seu código, para isso vamos alterar a operação e vamos passar também o código na url, veja na imagem abaixo.

Captura de tela de 2016-02-23 11:16:43

Agora vamos testar a operação para excluir um registro, vamos alterar o método para DELETE, depois vamos mudar a operação passando o código do registro que queremos excluir, depois basta clicar no botão submit para testar a operação como mostra a imagem abaixo.

Bom é isso ai amigos, nesse tutorial aprendemos a criar um Web Service Rest usando Jersey, até a próxima.

Você pode pegar o código fonte desse projeto aqui.

Comentários

Name of author

Name: ciceroednilson@gmail.com

18 thoughts on “Java – Criando um Web Service Rest com Jersey e JPA.

  • Nauana Sandrelly

    Olá, Cicero. Tudo bom?

    Primeiramente parabéns pelo post, ele está super didático, porém não consegui chegar ao endereço http://localhost:8080/WebServiceRest/rest/service. Fiz o procedimento igualzinho ao do tutorial. Até o http://localhost:8080/WebServiceRest está funcionando perfeitamente, tanto é que me retorna aquele famoso “Hello Word”. Não sei se é necessário acrescentar algo no web.xml. Sou nova nisso. Grata!!

    Reply
    • ciceroednilson@gmail.com Post author

      Em primeiro lugar muito obrigado por visitar o blog!

      Você testou o serviço usando o SoapUI como no tutorial? Pois no browser você não vai conseguir testar as operações direto pela url.

      Reply
  • Muito bom o tutorial. Fui ate o final porem quando o tento rodar no Rest o log e o seguinte:
    Fri Jul 29 20:02:36 BRT 2016:ERROR:org.apache.http.conn.HttpHostConnectException: Connection to http://localhost:8081 refused
    org.apache.http.conn.HttpHostConnectException: Connection to http://localhost:8081 refused
    at com.eviware.soapui.impl.wsdl.support.http.SoapUIMultiThreadedHttpConnectionManager$SoapUIClientConnectionOperator.openConnection(SoapUIMultiThreadedHttpConnectionManager.java:279)
    at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:149)
    at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:121)
    at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:561)
    at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:415)
    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:820)
    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:754)
    at com.eviware.soapui.impl.wsdl.support.http.HttpClientSupport$Helper.execute(HttpClientSupport.java:233)
    at com.eviware.soapui.impl.wsdl.support.http.HttpClientSupport.execute(HttpClientSupport.java:323)
    at com.eviware.soapui.impl.wsdl.submit.transports.http.HttpClientRequestTransport.submitRequest(HttpClientRequestTransport.java:290)
    at com.eviware.soapui.impl.wsdl.submit.transports.http.HttpClientRequestTransport.sendRequest(HttpClientRequestTransport.java:220)
    at com.eviware.soapui.impl.wsdl.WsdlSubmit.run(WsdlSubmit.java:119)
    at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
    at java.util.concurrent.FutureTask.run(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
    Caused by: java.net.ConnectException: Connection refused: connect
    at java.net.DualStackPlainSocketImpl.connect0(Native Method)
    at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source)
    at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
    at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
    at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
    at java.net.PlainSocketImpl.connect(Unknown Source)
    at java.net.SocksSocketImpl.connect(Unknown Source)
    at java.net.Socket.connect(Unknown Source)
    at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:123)
    at com.eviware.soapui.impl.wsdl.support.http.SoapUIMultiThreadedHttpConnectionManager$SoapUIClientConnectionOperator.openConnection(SoapUIMultiThreadedHttpConnectionManager.java:262)
    … 16 more

    Tem alguma ideia que possa ajudar

    Obrigo

    Reply
    • ciceroednilson@gmail.com Post author

      Em primeiro lugar muito obrigado por visitar o blog,

      O erro que está ocorrendo é que você não está conseguindo acessar a url http://localhost:8081, o seu Tomcat está mesmo rodando na porta 8081 ou 8080?

      Abraços.

      Reply
  • Cicero, simples e fantástico ! Deu tudo certo !

    Reply
    • ciceroednilson@gmail.com Post author

      Muito obrigado por visitar o blog!

      Estou sempre postando tutorias, se possível não deixe de acompanhar.

      Abraços!

      Reply
  • Qual design pattern vc esta utilizando nesse tutorial, nao consegui entender pq separou a classe Pessoa no pacote http. Poderia me explicar por favor

    Reply
    • ciceroednilson@gmail.com Post author

      Obrigado por visitar o blog Bruno,

      A classe pessoa deixei no pacote http apenas para saber que nesse pacote as classes são usadas como request e response nos métodos http.

      Abraços.

      Reply
      • Antonio Farias (DaLua)

        Parabéns pelo post, excelente e funcionou sem problemas…

        Entretanto também não entendi o motivo de separar estas duas classes, e para reduzir o código, anotei a classe PessoaEntity com @XmlRootElement, e direcionei o Controller para trabalhar diretamente com ela, o que funcionou perfeitamente e dispensei o uso pessoa.

        Existe outro, digamos, efeito colateral que eu não estou enxergando ao fazer isso?

        Estou aprendendo justamente isso para um aplicativo feito em Android Studio, e meu próximo passo será tornar as classes genéricas de entity e dao e fazer todas as demais herdarem delas…

        Reply
        • ciceroednilson@gmail.com Post author

          Obrigado por visitar o blog Antonio,

          Não tem problema fazer a alteração que você fez, eu apenas gosto de separar a entidade de banco de dados da que vou enviar usar nas requisições http.

          Abraços,
          Cícero Ednilson.

          Reply
  • Antes, Parabéns.

    The content you are trying to view cannot be viewed as JSON
    no SoapUI 5.2

    Tem uma dica

    Reply
    • ciceroednilson@gmail.com Post author

      Obrigado por visitar o blog,

      Parece que o formato no seu Json não está correto!

      Abraços,
      Cícero Ednilson.

      Reply
  • Muito bom,
    Mas agradeceria muito se pudesse me ajudar, bom, já fiz este processo muitas vezes testei no TomCat, Glassfish, Wildfly, e bom todos me retornam um erro na hora que tento persistir, já não sei mais oque fazer, pesquisei em tudo e nada, até baixei o seu projeto e testei aqui e o erro dá o continua, no caso o mesmo que o meu, bom agradeceria se pudesse me ajudar, segue o erro:
    Este é o erro que da no GlassFish:
    <– Advertência: StandardWrapperValve[Jersey REST Service]: Servlet.service() for servlet Jersey REST Service threw exception
    javax.persistence.PersistenceException: No Persistence provider for EntityManager named persistence_unit_db_estudo
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:85)
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:54)
    at br.com.ciceroednilson.repository.PessoaRepository.(PessoaRepository.java:23)
    at br.com.ciceroednilson.controller.ServiceController.(ServiceController.java:29)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at org.glassfish.hk2.utilities.reflection.ReflectionHelper.makeMe(ReflectionHelper.java:1091)
    at org.jvnet.hk2.internal.ClazzCreator.createMe(ClazzCreator.java:244)
    at org.jvnet.hk2.internal.ClazzCreator.create(ClazzCreator.java:319)
    at org.jvnet.hk2.internal.SystemDescriptor.create(SystemDescriptor.java:448)
    at org.glassfish.jersey.process.internal.RequestScope.findOrCreate(RequestScope.java:157)
    at org.jvnet.hk2.internal.Utilities.createService(Utilities.java:2204)
    at org.jvnet.hk2.internal.ServiceLocatorImpl.getService(ServiceLocatorImpl.java:579)
    at org.jvnet.hk2.internal.ServiceLocatorImpl.getService(ServiceLocatorImpl.java:566)
    at org.glassfish.jersey.internal.inject.Injections.getOrCreate(Injections.java:172)
    at org.glassfish.jersey.server.model.MethodHandler$ClassBasedMethodHandler.getInstance(MethodHandler.java:185)
    at org.glassfish.jersey.server.internal.routing.PushMethodHandlerRouter.apply(PushMethodHandlerRouter.java:105)
    at org.glassfish.jersey.server.internal.routing.RoutingStage._apply(RoutingStage.java:118)
    at org.glassfish.jersey.server.internal.routing.RoutingStage._apply(RoutingStage.java:121)
    at org.glassfish.jersey.server.internal.routing.RoutingStage._apply(RoutingStage.java:121)
    at org.glassfish.jersey.server.internal.routing.RoutingStage._apply(RoutingStage.java:121)
    at org.glassfish.jersey.server.internal.routing.RoutingStage._apply(RoutingStage.java:121)
    at org.glassfish.jersey.server.internal.routing.RoutingStage.apply(RoutingStage.java:102)
    at org.glassfish.jersey.server.internal.routing.RoutingStage.apply(RoutingStage.java:62)
    at org.glassfish.jersey.process.internal.Stages.process(Stages.java:197)
    at org.glassfish.jersey.server.ServerRuntime$1.run(ServerRuntime.java:215)
    at org.glassfish.jersey.internal.Errors$1.call(Errors.java:271)
    at org.glassfish.jersey.internal.Errors$1.call(Errors.java:267)
    at org.glassfish.jersey.internal.Errors.process(Errors.java:315)
    at org.glassfish.jersey.internal.Errors.process(Errors.java:297)
    at org.glassfish.jersey.internal.Errors.process(Errors.java:267)
    at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:317)
    at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:198)
    at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:946)
    at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:323)
    at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:372)
    at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:335)
    at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:218)
    at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1682)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:318)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:160)
    at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:734)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:673)
    at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:99)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:174)
    at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:357)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:260)
    at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:188)
    at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:191)
    at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:168)
    at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:189)
    at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:288)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:206)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:136)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:114)
    at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)
    at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:838)
    at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:113)
    at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:115)
    at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:55)
    at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:135)
    at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:564)
    at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:544)
    at java.lang.Thread.run(Thread.java:745)
    –>
    Bom no TomCat o nem da o deploy:

    E no WildFly:
    <– WARN [org.hibernate.orm.connections] (default task-2) HHH10001002: Using Hibernate built-in connection pool (not for production use!)
    12:27:14,394 ERROR [io.undertow.request] (default task-2) UT005023: Exception handling request to /projetoBase/service: org.jboss.resteasy.spi.UnhandledException: javax.persistence.PersistenceException: Unable to build entity manager factory
    at org.jboss.resteasy.core.ExceptionHandler.handleApplicationException(ExceptionHandler.java:76)
    at org.jboss.resteasy.core.ExceptionHandler.handleException(ExceptionHandler.java:212)
    at org.jboss.resteasy.core.SynchronousDispatcher.writeException(SynchronousDispatcher.java:168)
    at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:411)
    at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:202)
    at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:221)
    at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:56)
    at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:51)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
    at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:85)
    at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
    at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
    at org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:131)
    at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
    at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)
    at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60)
    at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77)
    at io.undertow.security.handlers.NotificationReceiverHandler.handleRequest(NotificationReceiverHandler.java:50)
    at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:284)
    at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:263)
    at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:81)
    at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:174)
    at io.undertow.server.Connectors.executeRootHandler(Connectors.java:202)
    at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:793)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
    Caused by: javax.persistence.PersistenceException: Unable to build entity manager factory
    at org.hibernate.jpa.HibernatePersistenceProvider.createEntityManagerFactory(HibernatePersistenceProvider.java:66)
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:55)
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:39)
    at br.com.teste.dao.impl.PessoaDAOImpl.(PessoaDAOImpl.java:20)
    at br.com.teste.webservice.impl.TesteEndPoint.getHello(TesteEndPoint.java:16)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:139)
    at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTarget(ResourceMethodInvoker.java:295)
    at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:249)
    at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:236)
    at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:395)
    … 32 more
    Caused by: org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:244)
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:208)
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:189)
    at org.hibernate.engine.jdbc.internal.JdbcServicesImpl.configure(JdbcServicesImpl.java:51)
    at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:94)
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:217)
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:189)
    at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.handleTypes(MetadataBuildingProcess.java:352)
    at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:111)
    at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.metadata(EntityManagerFactoryBuilderImpl.java:847)
    at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:874)
    at org.hibernate.jpa.HibernatePersistenceProvider.createEntityManagerFactory(HibernatePersistenceProvider.java:58)
    … 45 more
    Caused by: org.hibernate.boot.registry.classloading.spi.ClassLoadingException: Unable to load class [com.mysql.jdbc.Driver]
    at org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl.classForName(ClassLoaderServiceImpl.java:229)
    at org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.loadDriverIfPossible(DriverManagerConnectionProviderImpl.java:161)
    at org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.buildCreator(DriverManagerConnectionProviderImpl.java:117)
    at org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.configure(DriverManagerConnectionProviderImpl.java:73)
    at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:94)
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:217)
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:189)
    at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.buildJdbcConnectionAccess(JdbcEnvironmentInitiator.java:145)
    at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:66)
    at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:35)
    at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.initiateService(StandardServiceRegistryImpl.java:88)
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:234)
    … 56 more
    Caused by: java.lang.ClassNotFoundException: Could not load requested class : com.mysql.jdbc.Driver
    at org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl$AggregatedClassLoader.findClass(ClassLoaderServiceImpl.java:217)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:348)
    at org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl.classForName(ClassLoaderServiceImpl.java:226)
    … 67 more–>

    Se puder me ajudar eu agradeço, posso mandar meu código para dar uma olhada, obrigado mesmo.

    Cicero Junior

    Reply
  • Cara.. Muito bom o tutorial, mas estou c um certo problema.. instancio o repositorio do controlador qd executo mas n chego no metodo (extensao da url /cadastrar). Segue log:

    ago 17, 2017 10:13:00 PM org.apache.tomcat.util.digester.SetPropertiesRule begin
    ADVERTÊNCIA: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property ‘source’ to ‘org.eclipse.jst.jee.server:burguerApp’ did not find a matching property.
    ago 17, 2017 10:13:00 PM org.apache.catalina.startup.VersionLoggerListener log
    INFORMAÇÕES: Server version: Apache Tomcat/8.5.20
    ago 17, 2017 10:13:00 PM org.apache.catalina.startup.VersionLoggerListener log
    INFORMAÇÕES: Server built: Aug 2 2017 21:35:49 UTC
    ago 17, 2017 10:13:00 PM org.apache.catalina.startup.VersionLoggerListener log
    INFORMAÇÕES: Server number: 8.5.20.0
    ago 17, 2017 10:13:00 PM org.apache.catalina.startup.VersionLoggerListener log
    INFORMAÇÕES: OS Name: Windows 10
    ago 17, 2017 10:13:00 PM org.apache.catalina.startup.VersionLoggerListener log
    INFORMAÇÕES: OS Version: 10.0
    ago 17, 2017 10:13:00 PM org.apache.catalina.startup.VersionLoggerListener log
    INFORMAÇÕES: Architecture: amd64
    ago 17, 2017 10:13:00 PM org.apache.catalina.startup.VersionLoggerListener log
    INFORMAÇÕES: Java Home: C:\Program Files\Java\jre1.8.0_144
    ago 17, 2017 10:13:00 PM org.apache.catalina.startup.VersionLoggerListener log
    INFORMAÇÕES: JVM Version: 1.8.0_144-b01
    ago 17, 2017 10:13:00 PM org.apache.catalina.startup.VersionLoggerListener log
    INFORMAÇÕES: JVM Vendor: Oracle Corporation
    ago 17, 2017 10:13:00 PM org.apache.catalina.startup.VersionLoggerListener log
    INFORMAÇÕES: CATALINA_BASE: C:\Users\Kleber Santos\eclipse-workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0
    ago 17, 2017 10:13:00 PM org.apache.catalina.startup.VersionLoggerListener log
    INFORMAÇÕES: CATALINA_HOME: C:\apache-tomcat-8.5.20
    ago 17, 2017 10:13:00 PM org.apache.catalina.startup.VersionLoggerListener log
    INFORMAÇÕES: Command line argument: -agentlib:jdwp=transport=dt_socket,suspend=y,address=localhost:55339
    ago 17, 2017 10:13:00 PM org.apache.catalina.startup.VersionLoggerListener log
    INFORMAÇÕES: Command line argument: -Dcatalina.base=C:\Users\Kleber Santos\eclipse-workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0
    ago 17, 2017 10:13:00 PM org.apache.catalina.startup.VersionLoggerListener log
    INFORMAÇÕES: Command line argument: -Dcatalina.home=C:\apache-tomcat-8.5.20
    ago 17, 2017 10:13:00 PM org.apache.catalina.startup.VersionLoggerListener log
    INFORMAÇÕES: Command line argument: -Dwtp.deploy=C:\Users\Kleber Santos\eclipse-workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps
    ago 17, 2017 10:13:00 PM org.apache.catalina.startup.VersionLoggerListener log
    INFORMAÇÕES: Command line argument: -Djava.endorsed.dirs=C:\apache-tomcat-8.5.20\endorsed
    ago 17, 2017 10:13:00 PM org.apache.catalina.startup.VersionLoggerListener log
    INFORMAÇÕES: Command line argument: -Dfile.encoding=Cp1252
    ago 17, 2017 10:13:00 PM org.apache.catalina.core.AprLifecycleListener lifecycleEvent
    INFORMAÇÕES: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: [C:\Program Files\Java\jre1.8.0_144\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:/Program Files/Java/jre1.8.0_144/bin/server;C:/Program Files/Java/jre1.8.0_144/bin;C:/Program Files/Java/jre1.8.0_144/lib/amd64;C:\ProgramData\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\nodejs\;C:\Program Files\Java\jdk1.8.0_144\bin;C:\apache-maven-3.5.0\bin;C:\Android\sdk\platform-tools;C:\Android\sdk\tools;C:\Program Files\Git\cmd;C:\Users\Kleber Santos\AppData\Local\Microsoft\WindowsApps;C:\Users\Kleber Santos\AppData\Roaming\npm;C:\Users\Kleber Santos\eclipse\jee-oxygen\eclipse;;.]
    ago 17, 2017 10:13:00 PM org.apache.coyote.AbstractProtocol init
    INFORMAÇÕES: Initializing ProtocolHandler [“http-nio-8080”]
    ago 17, 2017 10:13:01 PM org.apache.tomcat.util.net.NioSelectorPool getSharedSelector
    INFORMAÇÕES: Using a shared selector for servlet write/read
    ago 17, 2017 10:13:01 PM org.apache.coyote.AbstractProtocol init
    INFORMAÇÕES: Initializing ProtocolHandler [“ajp-nio-8009”]
    ago 17, 2017 10:13:01 PM org.apache.tomcat.util.net.NioSelectorPool getSharedSelector
    INFORMAÇÕES: Using a shared selector for servlet write/read
    ago 17, 2017 10:13:01 PM org.apache.catalina.startup.Catalina load
    INFORMAÇÕES: Initialization processed in 1568 ms
    ago 17, 2017 10:13:01 PM org.apache.catalina.core.StandardService startInternal
    INFORMAÇÕES: Starting service [Catalina]
    ago 17, 2017 10:13:01 PM org.apache.catalina.core.StandardEngine startInternal
    INFORMAÇÕES: Starting Servlet Engine: Apache Tomcat/8.5.20
    ago 17, 2017 10:13:05 PM org.apache.jasper.servlet.TldScanner scanJars
    INFORMAÇÕES: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
    ago 17, 2017 10:13:07 PM org.apache.coyote.AbstractProtocol start
    INFORMAÇÕES: Starting ProtocolHandler [“http-nio-8080”]
    ago 17, 2017 10:13:07 PM org.apache.coyote.AbstractProtocol start
    INFORMAÇÕES: Starting ProtocolHandler [“ajp-nio-8009”]
    ago 17, 2017 10:13:07 PM org.apache.catalina.startup.Catalina start
    INFORMAÇÕES: Server startup in 5946 ms
    ago 17, 2017 10:13:19 PM org.hibernate.jpa.internal.util.LogHelper logPersistenceUnitInformation
    INFO: HHH000204: Processing PersistenceUnitInfo [
    name: persistence_burguerapp_db
    …]
    ago 17, 2017 10:13:23 PM org.hibernate.Version logVersion
    INFO: HHH000412: Hibernate Core {5.1.0.Final}
    ago 17, 2017 10:13:24 PM org.hibernate.cfg.Environment
    INFO: HHH000206: hibernate.properties not found
    ago 17, 2017 10:13:24 PM org.hibernate.cfg.Environment buildBytecodeProvider
    INFO: HHH000021: Bytecode provider name : javassist
    ago 17, 2017 10:13:26 PM org.hibernate.annotations.common.reflection.java.JavaReflectionManager
    INFO: HCANN000001: Hibernate Commons Annotations {5.0.1.Final}
    ago 17, 2017 10:13:32 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure
    WARN: HHH10001002: Using Hibernate built-in connection pool (not for production use!)
    ago 17, 2017 10:13:32 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
    INFO: HHH10001005: using driver [org.postgresql.Driver] at URL [jdbc:postgresql://localhost:5432/burguerapp_db]
    ago 17, 2017 10:13:32 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
    INFO: HHH10001001: Connection properties: {user=postgres, password=****, shutdown=true}
    ago 17, 2017 10:13:32 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
    INFO: HHH10001003: Autocommit mode: false
    ago 17, 2017 10:13:33 PM org.hibernate.engine.jdbc.connections.internal.PooledConnections
    INFO: HHH000115: Hibernate connection pool size: 20 (min=1)
    ago 17, 2017 10:13:36 PM org.hibernate.dialect.Dialect
    INFO: HHH000400: Using dialect: org.hibernate.dialect.PostgreSQLDialect
    ago 17, 2017 10:13:43 PM org.hibernate.engine.jdbc.env.internal.LobCreatorBuilderImpl useContextualLobCreation
    INFO: HHH000424: Disabling contextual LOB creation as createClob() method threw error : java.lang.reflect.InvocationTargetException
    ago 17, 2017 10:13:43 PM org.hibernate.type.BasicTypeRegistry register
    INFO: HHH000270: Type registration [java.util.UUID] overrides previous : org.hibernate.type.UUIDBinaryType@89595cd

    Reply
  • Opa Cícero, parabéns pelo artigo. Muito didático e objetivo!

    Não sei se poderia me ajudar, estou tentando fazer um projeto (estudo) em angular e tenho um server q fiz em PHP agora, queria mudar ele pra Java usando esta mesma estrutura proposta por você.

    Quando acesso o REST JAVA pelo SOAPUI o resultado é trazido com sucesso. Entretanto, no angular, que está rodando no xampp (porta 80), quando tento acessar o server é exibida a seguinte mensagem:

    No ‘Access-Control-Allow-Origin’ header is present on the requested resource. Origin

    Já criei filtros de response , usei o CORS e em todos o erro persiste. Mesmo debugando, nenhuma response passou pelo meu filtro.

    Tem alguma ideia que possa me ajudar?

    Desde já mt obg.

    Reply

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

0 Flares Twitter 0 Facebook 0 Filament.io 0 Flares ×