7
respostas

Erro ao fazer deploy

Olá, Já tentei de todas a maneiras fazer o deploy do meu projeto em Spring Boot mas não consigo de jeito nenhum. Inicialmente da um [warning] dizendo que nao consegue encontrar o projeto. Poderiam me ajudar? já tentei trocar o target/*.war para .jar

https://imgur.com/a/jFtT3

DatabaseConfig

@Configuration
@EnableTransactionManagement
public class DatabaseConfig {

  @Bean
  @Profile("dev")
  public DataSource dataSource() {
    DriverManagerDataSource dataSource = new DriverManagerDataSource();
    dataSource.setDriverClassName(env.getProperty("db.driver"));
    dataSource.setUrl(env.getProperty("db.url"));
    dataSource.setUsername(env.getProperty("db.username"));
    dataSource.setPassword(env.getProperty("db.password"));
    return dataSource;
  }

  @Bean
  @Profile("dev")
  public Properties additionalProperties() {
      Properties props = new Properties();
      props.setProperty("hibernate.dialect","org.hibernate.dialect.MySQL5Dialect");
      props.setProperty("hibernate.show_sql", "true");
      props.setProperty("hibernate.hbm2ddl.auto", "update");
      return props;
  }

  @Bean
  public LocalContainerEntityManagerFactoryBean entityManagerFactory(DataSource dataSource, Properties additionalProperties) {
    LocalContainerEntityManagerFactoryBean entityManagerFactory =
        new LocalContainerEntityManagerFactoryBean();

    entityManagerFactory.setDataSource(dataSource);


    entityManagerFactory.setPackagesToScan(
        env.getProperty("entitymanager.packagesToScan"));


    HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
    entityManagerFactory.setJpaVendorAdapter(vendorAdapter);

    entityManagerFactory.setJpaProperties(additionalProperties);

    return entityManagerFactory;
  }
  @Bean
  public JpaTransactionManager transactionManager() {
    JpaTransactionManager transactionManager = 
        new JpaTransactionManager();
    transactionManager.setEntityManagerFactory(
        entityManagerFactory.getObject());
    return transactionManager;
  }

  @Bean
  public PersistenceExceptionTranslationPostProcessor exceptionTranslation() {
    return new PersistenceExceptionTranslationPostProcessor();

  }
  @Autowired
  private Environment env;

  @Autowired
  private DataSource dataSource;

  @Autowired
  private LocalContainerEntityManagerFactoryBean entityManagerFactory;

}

JPA PRODUCTION

@Profile("prod")
@Configuration
public class JPAProductionConfiguration {

    @Autowired
    private Environment environment;

    @Bean
    public DataSource dataSource() throws URISyntaxException{
        DriverManagerDataSource dataSource = new DriverManagerDataSource();
        dataSource.setDriverClassName("org.postgresql.Driver");

        URI dbUrl = new URI(environment.getProperty("DATABASE_URL"));

        dataSource.setUrl("jdbc:postgresql://"+dbUrl.getHost()+":"+dbUrl.getPort()+dbUrl.getPath());
        dataSource.setUsername(dbUrl.getUserInfo().split(":")[0]);
        dataSource.setPassword(dbUrl.getUserInfo().split(":")[1]);

        return dataSource;
    }
    @Bean
    private Properties aditionalProperties(){
        Properties props = new Properties();
        props.setProperty("hibernate.dialect", "org.hibernate.dialect.PostgreSQLDialect");
        props.setProperty("hibernate.show_sql", "true");
        props.setProperty("hibernate.hbm2ddl.auto", "update");
        return props;
    }

}

pom

<dependencies>
        <dependency>
                <groupId>org.postgresql</groupId>
                <artifactId>postgresql</artifactId>
                <version>9.4-1201-jdbc41</version>
        </dependency>


    </dependencies>
<build>
         <plugins>
                             <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-dependency-plugin</artifactId>
    <version>2.3</version>
    <executions>
        <execution>
            <phase>package</phase>
            <goals><goal>copy</goal></goals>
            <configuration>
                <artifactItems>
                    <artifactItem>
                        <groupId>com.github.jsimone</groupId>
                        <artifactId>webapp-runner</artifactId>
                        <version>7.0.57.2</version>
                        <destFileName>webapp-runner.jar</destFileName>
                    </artifactItem>
                </artifactItems>
            </configuration>
        </execution>
    </executions>
</plugin>
         <plugins>
     </build>

Procfile

web: java $JAVA_OPTS -jar -Dspring.profiles.active=prod target/dependency/webapp-runner.jar --port $PORT target/*.war
7 respostas

Luis, tudo bem ?

Pela imagem deu certo cara, foi deploiado.

Oi matheus,

Então mas eu entro na minha aplicação e da erro! no caso acho que me expressei mal.

Ele sobe o arquivo mas nao abre a aplicacao, por algum motivo ele não inicia o spring.

To tentando ler aqui mais ainda estou com dificuldade de entender o funcionamento

Luis,

Eu tenho algumas coisas rodando no heroku em spring boot, para todas preferi utilizar o application.properties invés de usar a configuração via código, acho que é muito mais simples e se torna mais fácil você identificar as coisas.

Tenta migrar o seu projeto para utilizar também

Oi Matheus,

Vou fazer isso. Você utilizou a configuração como a aula da caelum para subir a aplicação?

Bem similar, dá uma olhadinha em como ficou meu arquivo :


spring.mvc.view.prefix=/WEB-INF/views/
spring.mvc.view.suffix=.jsp

server.port=${PORT:8080}
spring.datasource.driver-class-name=org.postgresql.Driver
spring.datasource.url=postgres://hmgupgjiqkbqne:3efb01e12b302f4f0e8d48309931be4c114e4e909ae8a86a36fcac7b30a7d4c1@ec2-174-129-37-15.compute-1.amazonaws.com:5432/dacunnpsac557r
spring.jpa.hibernate.ddl-auto=update

Oi Matheus,

Desculpe a ignorância, mas essa configuração seria referente a que?

Basicamente o que você está fazendo em código!