Solucionado (ver solução)
Solucionado
(ver solução)
14
respostas

Problemas ao subir Servidor Local (API Java)

Bom dia,

Acompanhei bem todos os fóruns anteriores em relação à esse problemas - contudo, não cheguei numa solução que consista em subir esse Servidor Local. Dessa forma, peço auxílio de todos vocês. Estarei detalhando abaixo todos os processos realizados:

  1. Fiz a instalação do Java, bem como configuração das variáveis de ambiente do SO.

  2. Fiz os testes para validar a instalação / versão do Java no Prompt de Comando (tudo normal).

  3. Instalei o MySQL e configurei as variáveis de ambiente (também realizando os testes pelo Prompt de Comando, tudo normal).

  4. Validei os serviços do Windows, tudo normalmente funcionando.

  5. Ao executar o comando de execução do '.jar', utilizando

java -Dspring.datasource.password=suaSenha -jar jar-cdc-react.jar

(...) são apresentadas as mensagens imensas de inicialização, e pelo o que percebi ao invés de ficar executando alguma coisa, ele habilita o Prompt de Comando novamente para digitar algo...

Quanto tento abrir no navegador 'http://localhost:8080/api/autores', é aberta uma janelinha com as seguintes informações:

Título: 'Autenticação solicitada' Descrição: 'http://localhost:8080 está solicitando seu nome de usuário e senha. O site diz XDB' Campos: 'Nome do Usuário' e 'Senha' (para digitar). Botões: 'Ok' e 'Cancelar'

Como devo proceder!?

Aguardo, conto com todos.

Abs.

14 respostas

Boa tarde,

Agora nem o Hero está no ar... alguém poderia me ajudar!?

Abraços.

Vou relatar o que tenho de saída no meu Prompt (detalhado):

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v1.3.1.RELEASE)

2018-03-23 17:07:51.816  INFO 12104 --- [           main] br.com.caelum.cdcreact.Boot              : Starting Boot v1.0.0-SNAPSHOT on DESKTOP-GQPH4LK with PID 12104 (C:\Users\Adriano\Desktop\REACT_PT01\jar-cdc-react.jar started by Adriano in C:\Users\Adriano\Desktop\REACT_PT01)
2018-03-23 17:07:51.824  INFO 12104 --- [           main] br.com.caelum.cdcreact.Boot              : No active profile set, falling back to default profiles: default
2018-03-23 17:07:51.905  INFO 12104 --- [           main] ationConfigEmbeddedWebApplicationContext : Refreshing org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@2eb2f4b6: startup date [Fri Mar 23 17:07:51 BRT 2018]; root of context hierarchy
2018-03-23 17:07:53.417  INFO 12104 --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Overriding bean definition for bean 'beanNameViewResolver' with a different definition: replacing [Root bean: class [null]; scope=; abstract=false; lazyInit=false; autowireMode=3; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=org.springframework.boot.autoconfigure.web.ErrorMvcAutoConfiguration$WhitelabelErrorViewConfiguration; factoryMethodName=beanNameViewResolver; initMethodName=null; destroyMethodName=(inferred); defined in class path resource [org/springframework/boot/autoconfigure/web/ErrorMvcAutoConfiguration$WhitelabelErrorViewConfiguration.class]] with [Root bean: class [null]; scope=; abstract=false; lazyInit=false; autowireMode=3; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=org.springframework.boot.autoconfigure.web.WebMvcAutoConfiguration$WebMvcAutoConfigurationAdapter; factoryMethodName=beanNameViewResolver; initMethodName=null; destroyMethodName=(inferred); defined in class path resource [org/springframework/boot/autoconfigure/web/WebMvcAutoConfiguration$WebMvcAutoConfigurationAdapter.class]]
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.springframework.cglib.core.ReflectUtils$1 (jar:file:/C:/Users/Adriano/Desktop/REACT_PT01/jar-cdc-react.jar!/lib/spring-core-4.2.4.RELEASE.jar!/) to method java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain)
WARNING: Please consider reporting this to the maintainers of org.springframework.cglib.core.ReflectUtils$1
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
2018-03-23 17:07:54.032  INFO 12104 --- [           main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [class org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration$$EnhancerBySpringCGLIB$$8a42502d] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2018-03-23 17:07:54.219  WARN 12104 --- [           main] ationConfigEmbeddedWebApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.context.ApplicationContextException: Unable to start embedded container; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'tomcatEmbeddedServletContainerFactory' defined in class path resource [org/springframework/boot/autoconfigure/web/EmbeddedServletContainerAutoConfiguration$EmbeddedTomcat.class]: Initialization of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.boot.autoconfigure.web.ErrorMvcAutoConfiguration': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private org.springframework.boot.autoconfigure.web.ServerProperties org.springframework.boot.autoconfigure.web.ErrorMvcAutoConfiguration.properties; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'serverProperties' defined in class path resource [org/springframework/boot/autoconfigure/web/ServerPropertiesAutoConfiguration.class]: Initialization of bean failed; nested exception is javax.validation.ValidationException: Unable to instantiate Configuration.
2018-03-23 17:07:54.253 ERROR 12104 --- [           main] o.s.boot.SpringApplication               : Application startup failed
Caused by: org.springframework.beans.factory.BeanCreationException: Could not autowire field: private org.springframework.boot.autoconfigure.web.ServerProperties org.springframework.boot.autoconfigure.web.ErrorMvcAutoConfiguration.properties; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'serverProperties' defined in class path resource [org/springframework/boot/autoconfigure/web/ServerPropertiesAutoConfiguration.class]: Initialization of bean failed; nested exception is javax.validation.ValidationException: Unable to instantiate Configuration.
        at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:573)
        at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88)
        at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:331)
        ... 46 more
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'serverProperties' defined in class path resource [org/springframework/boot/autoconfigure/web/ServerPropertiesAutoConfiguration.class]: Initialization of bean failed; nested exception is javax.validation.ValidationException: Unable to instantiate Configuration.
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:553)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)
        at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
        at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
        at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
        at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
        at org.springframework.beans.factory.support.DefaultListableBeanFactory.findAutowireCandidates(DefaultListableBeanFactory.java:1192)
        at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1116)
        at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1014)
        at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:545)
        ... 48 more
Caused by: javax.validation.ValidationException: Unable to instantiate Configuration.
        at javax.validation.Validation$GenericBootstrapImpl.configure(Validation.java:279)
        at org.springframework.validation.beanvalidation.LocalValidatorFactoryBean.afterPropertiesSet(LocalValidatorFactoryBean.java:223)
        at org.springframework.boot.context.properties.ConfigurationPropertiesBindingPostProcessor$LocalValidatorFactory.run(ConfigurationPropertiesBindingPostProcessor.java:424)
        at org.springframework.boot.context.properties.ConfigurationPropertiesBindingPostProcessor.getValidator(ConfigurationPropertiesBindingPostProcessor.java:361)
        at org.springframework.boot.context.properties.ConfigurationPropertiesBindingPostProcessor.determineValidator(ConfigurationPropertiesBindingPostProcessor.java:344)
        at org.springframework.boot.context.properties.ConfigurationPropertiesBindingPostProcessor.postProcessBeforeInitialization(ConfigurationPropertiesBindingPostProcessor.java:303)
        at org.springframework.boot.context.properties.ConfigurationPropertiesBindingPostProcessor.postProcessBeforeInitialization(ConfigurationPropertiesBindingPostProcessor.java:275)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanFactory.java:408)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1570)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:545)
        ... 57 more
Caused by: java.lang.ArrayIndexOutOfBoundsException: 1
        at org.hibernate.validator.internal.util.Version.getJavaRelease(Version.java:36)
        at org.hibernate.validator.internal.engine.ConfigurationImpl.<init>(ConfigurationImpl.java:120)
        at org.hibernate.validator.internal.engine.ConfigurationImpl.<init>(ConfigurationImpl.java:96)
        at org.hibernate.validator.HibernateValidator.createGenericConfiguration(HibernateValidator.java:31)
        at javax.validation.Validation$GenericBootstrapImpl.configure(Validation.java:276)
        ... 66 more

Analisando com detalhe esse caso, percebi que pelo fato da API ter sido construída com base no JDK 1.7 / 1.8 (do curso), e como utilizo o 10, teriam como me disponibilizar uma API atualizada? Ou de repente alguma forma com que faça esse JAR funcionar ?

Abs.

oi Adriano!

Dei uma procurada e me parece que esse hibernate que está aí é incompativel com java 9 e java 10. Nao recomendo que voce tente atualizar os jars do hibernate. Acho bem mais seguro que voce mude a versao do java que esta rodando sua app

Paulo, bom dia.

Primeiramente obrigado pelo retorno ao Post. Contudo, não ficou muito claro ainda para mim.

Esse Jar possui o Json com os dados que desejo consumir na minha aplicação em React. Utilizarei dela apenas para subir a API e através de sua URL Local (no caso localhost:8080/api/autores) recuperar os dados e preencher uma tabela.

Compreendo que certas atualizações do JAVA podem influenciar nisso, contudo eu segui todos os passos do curso (até mesmo de instalações) e não fiz nada de diferente do mesmo. Apenas uma coisa que observei é que o Java utilizado pelas explicações é o 1.7 alguma coisa... Não há mais versões de download do Java 7 (ao menos não encontrei). E utilizo o Java em minha máquina para outros escopos também - mesmo se fizesse um downgrade seria inviável para mim.

Caso eu tenha aí me atrapalhado nas minhas justificativas, espero que possa contar contigo para resolver as questões.

Aproveitando seu retorno, gostaria de auxílio nos dois casos abaixo se possível ( ainda em aguardo da resposta do Posto anterior):

  1. Como faço para verificar a versão do Hibernate do Java instalado em minha máquina? Ao mesmo tempo, como faria para que a API funcionasse de acordo com a mesma? - precisaria no caso instalar o Java na versão utilizada pelo curso é isso? O 7... Mas entraríamos naquela questão de outras aplicações terceiras que utilizo o Java na versão que se encontra, bem como não disponibilidade do mesmo nessa versão no próprio site da Oracle.

  2. Senti falta nesse curso de maiores detalhamentos quanto ao uso do MySQL para subir essa API, assim como mais "porquês" dessas configurações.

Deu continuidade ao curso utilizando o endereço do Hero, mas ele cai constantemente e variavelmente paro o curso.

Aguardo você, obrigado!

solução!

oi Adriano

Para baixar o Java 8, pode baixar aqui: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

Da pra baixar o java 7 tambem, mas o 8 basta nesse caso pois li desse bug do hibernate.

Vou adicionar essa nota de que o aluno deve usar no maximo o java 8 para esse curso, dada a incompatibilidade do hibernate.

Sobre o downgrade: um computador pode ter varias versoes de java instaladas ao mesmo tempo! E ai, via maven ou ant ou mesmo linha de comando normal, dá para dizer qual java deve ser usado naquele momento ou em modo default (a tal JAVA_HOME)

Sobre a versao do hibernate, a mesma questao aparece: voce pode ter varios hibernates na maquina e ele vai usar o que estiver mais proximo do seu classpath. No caso dessa sua app, procure o jar dentro dela e voce vai ver que deve ter um hibernate-4-x-y-.jar, indicando a versao usada. Voce poderia atualizar para uma versao mais nova de hibernate, mas ai tem o risco da app precisar de algo da versao mais velha (pouco provavel).

Sobre seu ponto do mysql, realmente as configuracoes sao passadas de forma bem rapida. O foco era deixar os estudos pro react e tudo que fosse a mais ficasse em seus proprios cursos, mas talvez isso tenha deixado o curso puxado demais!

Legal, foi bem explicativo. Um detalhe apenas: eu tenho na minha máquina instalado o Java 8 e o 10 (porém, o 8 é na verdade 1.8.alguma coisa). Eu altere eu os caminhos do Path para a versão 8, mas ao dar o comando Java -version no Prompt, ele ainda mostra o 10. Há algum comando que eu force a versão do 8 na execução do Jar?

Abs.

voce pode tanto chamar o caminho inteiro do java8:

c:\java8\bin\java -version

ou setupar a variavel de ambiente PATH do windows, alem do JAVA_HOME.

caso voce nao esteja ambientado a setupar variaveis de ambiente no windows, tem essa parte do setup no curso de java 1 tambem, no curso de windows prompt e na nossa apostila da caelum:

https://www.caelum.com.br/apostila-java-orientacao-objetos/apendice-instalacao-do-java/#instalao-do-jdk-em-ambiente-windows

Paulo, perfeito !

Eu vou fazer esses testes agora. E tão logo envio um retorno aqui.

Grande abraço.

Paulo, informo que suas explicações foram um sucesso. O problema foi resolvido de maneira concreta.

Agradeço o apoio, disponibilidade e todo o tempo que ficamos aqui trocando essas mensagens.

Tudo de bom!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software