last day (15 days later) » 

12:30
0
A: Endpoint Rest com Jersey não exibe resultado esperado

Lucas DueteCreio que o problema esteja na classe de inicalização, proponho as seguintes mudanças: Primeiramente adicione estas dependências (do Jersey) no seu pom.xml: <dependency> <groupId>javax.ws.rs</groupId> <artifactId>javax.ws.rs-api</artifactId> <version>2.1</version> </dependency> <dep...

Qual o caminho pra import do ResourceConfig? Para mim, não aparece para importar.
import org.glassfish.jersey.server.ResourceConfig, verifiquei aqui e você não tem as dependências do jersey vou adicionar isto a minha resposta.
Adicionei as dependências e ainda não funciona. Tentei com "packages" e register. Eu coloquei um debug no construtor do JerseyConfig, porém, ele não chegou a passar lá. Preciso declarar algo no web.xml?
o método MyApplication em JerseyConfig é o método construtor, eu errei o nome entao deveria ser public JerseyConfig() { }
Sim, to ligado. Alterei para o correto, mas, mesmo assim não funciona...
12:30
tem certeza que a url http://localhost:9090/resources/info está correta? o servidor de aplicação não colocou um path com o nome da aplicação? algo como: http://localhost:9090/myApplication/resources/info
e então?
crie um pacote novo só para por os controllers:
br.com.javaee tu poe só o JerseyConfig
br.com.javaee.controllers tu poe os controllers rest

ai lá na em JerseyConfig tu poe `packages("br.com.javaee.controllers")`
Dae
ok, irei fazer
Esse path que você falou localhost:9090/myApplication/resources/info, que contém o myApplication
Eu não setei em nenhum luar, com exceção do "Applicationpath"
eu so queria saber se a url está correta
acredito estar
clica lá nas configurações do servidor de aplicação do intellij no lado superior direito, na janela de configuração vai ter um inputText "URL" se estiver como "http://localhost:9090/" então a url está correta
Fiz o que você falou, coloquei na pasta controller e alterei o "packages", mesmo assim, não funcionou :/
12:42
ei
tira isso de la kk
deixa só "http://localhost:9090/"
tipo
esse campo url diz qual a url base
Eu coloquei so pra abrir direto no caminho
kkk
isso dai é a url base
Removi e startei, apareceu a página do wildfly corretamente
mas tentei acessar /resources/info
e nada
Queres log de inicialização?
tá dando algum erro?
não
baiscamente
12:46
pode mandar aquela foto de config do servidor de novo?
vou subir o meu pro github e te mandar ok?
ok, vou tentar usar o seu
tais acessando com
localhost:suaporta/resources/info
certo?
Como tá a configuração do seu servidor?
Aqui o seu exemplo não foi, to começando a achar que é coisa do wildfly
alguma configuração que esqueci talvez
isso
tambem não foi?
não :/
Como você tinha pedido antes
o seu packages estava errado, estava sem o restTest
alterei achando que poderia ser isso, mas tbm não foi
estava: packages("io.github.lucasduete.controllers");
correto: packages("io.github.lucasduete.restTest.controllers");
13:04
cara, verificando aqui aparentemente o problema é o servidor de aplicações
no jboss eles usam restlet ai dá problema ao usar o jersey
Como está seu servidor?
hmm, vou baixar o tomcat
eu testei no glassfish, tomcat8 e payara
em casa estava usando tomcat, aqui so tinha wildfly
beleza, vou baixar aqui
me dá uns min ja retorno
te agradeço imensamente se funcionar xD
13:06
certo
tmj aprendendo cara
se o problema for o wildfly será interessante, mais tarde farei alguns testes na minha máquina pq não sabia deste erro
na minha vida inteira usei spring
tipo, eu já tinha usado jersey, mas junto com spring
mas só com javaEE nunca tinha criado
daí onde to apanhando xD
kkkkkkkkkkk que massa
não conheço muito spring, preciso tirar um tempo pra estudar
Podemos trocar experiencias sem problema
Trabalho só com spring praticamente
com certeza k
O seu exemplo funcionou agora com o tomcat
13:15
deve ser isso mesmo, no widlfl7 só funciona com o restlet
Tu usa CDI?
Eu tinha criado um projeto em casa, tinha funcionado o jersey e tudo mais, porém eu tava com um problema pra fazer a injeção de dependencia
Dai foii onde criei outro projeto pra ver se eu não tinha esquecido de nada
Por exemplo
Eu precisaria de algo assim
@Inject
private OlaMundoService olaMundoService;
@GET
@Produces(MediaType.APPLICATION_JSON)
public String get() {
return olaMundoService.olaMundo();
}
sim
e qual o erro?
Sempre dá esse erro
Então, algumas pesquisas, precisei criar um binder
Não achei correto, mas criei
Mas praticamente, todo o @Inject que eu precisava usar, eu tinha que dar o binder
mostra essa classe OlamundoService
public class OlaMundoService {

public String olaMundo(){
return "Ola, mundo!";
}
}
basicamente
13:21
põe um @RequestScopped nessa classe
Isso é só pra teste agora, no projeto que criarei, terá uma interface e uma classe concreta
pacote
import javax.enterprise.context.RequestScoped;?
não deu liga
estou testando diretamente n oseu projeto
13:25
tu adicionou a dependencia do cdi?
Adicionei essa aqui:
<dependency>
<groupId>javax.enterprise</groupId>
<artifactId>cdi-api</artifactId>
<version>2.0.SP1</version>
<scope>provided</scope>
</dependency>
e o arquivo de configurações?
n web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">

</web-app>
13:31
e o beans?
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/beans_1_1.xsd"
bean-discovery-mode="all">
</beans>
13:43
testei aqui e realmente deu problema
oq é estranho já que já usei em outros projetos porem não definido espliciatamente o cdi
tenho que sair agr pq tenho aula mas as 12 eu volto pra esse chat e contiuamos blz?
oq creio é que o tomcat talvez n tenha suporte já que ele não é um servidor completo
porem tenho q testar ainda
vou tentar glassfish
porém, na minha especificação, tenho que usar o tomcat :/
sinceramente, achei que seria mais fácil kk
Acho que vou ter que abandonar o CDI
 
1 hour later…
15:20
tenta usar outra versão do tomcat
a 9 por xemplo
15:49
tomcat não tem cdi
já pesquisei aq e todas as fontes diz
16:03
putz
conhece algum framework?
voltei agora
foi mal
Outra coisa, atualiza tua resposta lá no stackoverflow
Dizendo sobre o wildfly
dai coloco como Correta
16:34
iam isso
pra injeção de dependencias no tomcat? não
tenta no tomcat 9... eu não testei mas pode ser q funcione
não no tomcat9
mas digo, como você pra essa questão de dependencia?
Ou você faz as instancias na mão e tals
no tomcat eu faço na mão
na verdade eu geralmente uso algum padrão de projetos tipo o abstract factory
testei aq no tomcat9 e parace q também não tem suporte ao cdi
vou fazer na mão mesmo, é o jeito
no doc do projeto não tá especificado CDI
eu comecei usar por conhecer e tal
16:41
ah sim
é legal começar a trabalhar com essas tecnologias o problema é mais isso de suporte
esse link q te mandei teoricamente ensina a rodar cdi no tomcat porém n testei
e tem esse tbm
beleza
vou testar em casa a noite
obrigado ai pela ajuda por enquanto xD
kkk
kkkkk tmj
teste ia primeira opção no seu projeto
sem suceso
mesmo erro
é, testei a outra tbm
e não deu liga
16:58
vou verificar aqui tambem
testei ambos no tomcat 8 e 9 e realmente não funcinou
17:25
é grota
kkk
vou ficar sem usar o CDI mesmo
não dá nada
e eu achando que era problma do projeto
acho que perdi 1 dia e pouco
kkkkk deixa CDI pra lá mesmo, não dá pra brigar com a tecnologia kk
faz na mão usando algum tipo de padrão de projeto se couber
Sim sim, farei isso
como antigamente
De qualquer forma ai
value cara
tmj cara
E quando precisar alguma ajuda de spring
so falar
blz, vlw ein
17:28
mas de começo
conehce o spring initilzr?
Quando for criar um algum projeto rest, querendo utilizar spring, usa esse site ai pra gerar o projeto, ele gera tudo pra ti, com as dependencias e tudo mais
E ele ja vem com inejção de dependencia automaticamente quando se usa o spring mvc/spring web
nooosa que massa, nunca tinha ouvido falar
vlw
so adicionar as dependencias
"web"
não precisa nem de servidor de aplicação
ele tem o tomcat embutido
já ouvi falar nisso de que ele n preciisa de servidor de aplicação, como funciona?
se eu rodar mvn package ele já executa o projeto?
17:39
tens 10 min ai pra fazer um teste?
dai tu ja vai pegar o jeito
18:00
opa, desculpa a demora
eu topo kkk
abre o site
que te mandei
ali no "search dependencies..."
adiciona "web"
dai clica no botão "generate project"
pronto, já abri o projeto tbm
ok
agora vai classe principal
clica com o direito "Run Application..."
só isso kkk
pra criar um rest
pronto
Cria uma classe
qualquer nome
18:05
ahhh massa
Anota em cima da classe
@RestController
@RequestMapping("/info")
cria um método chamado
@GetMapping
public String hello(){
return "Hello";
}
dps starta o projeto novamente como te falei
vai na url e acessa
localhost:8080/info
caraca massa
em requestmapping preciso por o "/" msm?
sim
ai nos métodos, se quiser outro mapping
@GetMapping("/outroResource")
pra inejeção de depencencia do spring, inves de usar @Inject
é @Autowired
E inves de @RequestScoped é @Service
pra definir qual o tipo MIME que ele recebe e qual ele produz
sempre json
18:12
não tem como defnir outro
?
tem
Na anotação @GetMapping tem um atributo consumes
dai tu coloca consumes = {"application/json","application/xml"}
o que tu quiser, no caso
consumes não kkk
procudes***
produces = "application/xml"
cara, muito massa e é bem simples
@GetMapping(value = "/outroResource", produces = "application/xml")
sim
muito mais fácil que java ee
Deu liga ai os testes?
sim
vlw ein cara
faz um teste ai com o @Autowired
Uma coisa que tensq ue sempre ficar atendo, a classe principal, que contem a anotação @SpringBootApplication
Tem que ficar na pasta raiz
onde gerar o projeto, tem que ficar
18:18
certo
Porque ela começa a scanear os pacotes abaixo dela
se tu colocar dentro de um pacote, não funciona
dps da uma olhada no spring data
tu vai ficar de cara
já ouvi falar nele tbm, vou atrás com certeza
viu, por isso eu tava apanhando no JavaEE + jersey
olha o spring, muito mais fácil kk
é impressionante como esse framework é simples
kkkkkkkk vdd
cara, uso o spring faz uns 3~4 anos
muito bom, fácil
tem integração com várias coisas
testes unitários, bancos não relacionais...
18:22
é realmente muito impressionante esse framework
bancos não relacionais é com o spring data né?
a parte de persistencia
quer ver
vamos fazer um exemplo ai pra tu
vai no site de novo
Qual banco tu usa?
nosql?
mongo
postgres
vai no site e coloca as dependencias
web
data
postgres
e gera o projeto
dps de gerado e importado
18:28
data é o jpa suponho
altera o arquivo application.xml para application.yml
sim, exato
spring controla toda essa parte
de jpa, entitymanager e etc
dps de alterado pra .yml
acrescenta
spring:
jpa:
database-platform: org.hibernate.dialect.PostgreSQLDialect
show-sql: true
datasource:
url: jdbc:postgresql://localhost:5432/clientes
username: postgres
password: postgres
bá, pera ai que não foi formatado correto
tem que ficar identado
aonde encontro o arquivo application.xml
fica dentro de src -> main -> resources
ah sim, aqui tava como application.properties
18:48
ah, verdade, confundi o nome kk
como faço pra persistir um obj
Cria uma classe de entidade
igual tu faz normalmente, @Entity, @Id...
Depois de criar a classe
cria uma interface chamada
@Repository
public interface NomeDaInterfaceRepository extends JpaRepository<SeuObjeto, TipoDaCahvePrimaria>
cria uma classe service, não esquece de anotar com @Service
cria um método que faça
@Autowired private NomeDaInterfaceRepository repository;
public void save(){
repository.save(new SeuObjeto());
}
19:06
massa, funcionou aq
até fiz alguns outros testes como recuperar
já tem vários métodos prontos e tals
vou ter q sair agora, mas obrigado ai pela ajuda/introdução ao spring kk
vlw mesmo
é bem mais interessante do que eu pensei
opa, tamo junto
BEM mais
hahah
vlw flw
kkkkk vlw cara

last day (15 days later) »