首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何让Springboot访问Heroku上的Postgresql数据库

如何让Springboot访问Heroku上的Postgresql数据库
EN

Stack Overflow用户
提问于 2022-03-29 09:53:07
回答 1查看 531关注 0票数 0

我正在上传一个应用程序,我运行在我的本地个人电脑到Heroku。它有一个Springboot后端访问Postgresql数据库和一个React\Axios前端。

我将源代码上传到GITHUB,并在Heroku中创建了一个项目,并从Heroku部署。我创建了Postgresql数据库,部署了后端和前端。React前端执行并绘制屏幕,但是没有从后端发送数据。

春靴主

代码语言:javascript
运行
AI代码解释
复制
package net.javaguides.springboot;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@SpringBootApplication
public class SpringbootBackendApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringbootBackendApplication.class, args);
    }

    @Bean
    public WebMvcConfigurer corsConfigurer() {
        return new WebMvcConfigurer() {
            @Override
            public void addCorsMappings(CorsRegistry registry) {
                registry.addMapping("/**")
                .allowedOrigins("http://localhost:8080","http://localhost:3000","http://rmsystem.ddns.net:3000")
                .allowedMethods("GET", "PUT", "POST", "PATCH", "DELETE", "OPTIONS");
            }
        };
    }
    
}

我可以用PgAdmin从我的电脑连接到远程数据库。我还可以运行Springboot后端,在本地响应前端,并访问远程Heroku数据库(wow)。POSTMAN在本地工作,以显示来自远程后端的数据。

我试图在src\main\resources下添加一个Datasource.java文件

似乎什么都没做。

代码语言:javascript
运行
AI代码解释
复制
import org.springframework.context.annotation.Bean;
import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
import org.springframework.jdbc.datasource.DriverManagerDataSource;
public class DataSource {
    @Bean
    public DriverManagerDataSource dataSource(){
        DriverManagerDataSource source = new DriverManagerDataSource();
        source.setDriverClassName("org.postgresql.Driver");
        source.setUrl("jdbc:postgres://xmmazemfflgbkj:a323bc337c559fffd0ec7029daaf60f03712cdb1df41ca8629fe8429f0a7a607@ec2-54-85-113-73.compute-1.amazonaws.com:5432/d423nfcf5dbjf7");
        source.setUsername("xmmazemfflgbkj");
        source.setPassword("a323bc337c559fffd0ec7029daaf60f03712cdb1df41ca8629fe8429f0a7a607");
        return source;
    }
    @Bean
    public NamedParameterJdbcTemplate namedParameterJdbcTemplate(){
        NamedParameterJdbcTemplate namedParameterJdbcTemplate = new NamedParameterJdbcTemplate(this.dataSource());
        return namedParameterJdbcTemplate;
    }
}

POM.XML

代码语言:javascript
运行
AI代码解释
复制
<?xml version="1.0" encoding="UTF-8"?>
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion> 
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.5.0</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>net.javaguides</groupId>
    <artifactId>budget-backend-postsql</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>budget-backend-postsql</name>
    <description>Budget Project for Spring Boot</description>
    <properties>
        <java.version>11</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
            <optional>true</optional>
        </dependency>

    
        <dependency>
            <groupId>org.postgresql</groupId>
            <artifactId>postgresql</artifactId>
            <scope>runtime</scope>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                 <configuration>
                  <mainClass>com.places.Main</mainClass>
                 </configuration>
                 <executions>
                  <execution>
                    <goals>
                      <goal>repackage</goal>
                    </goals>
                  </execution>
                 </executions>  
            </plugin>
        </plugins>
    </build>

</project>

Springboot Application.Properties:

代码语言:javascript
运行
AI代码解释
复制
spring.datasource.url=jdbc:postgresql://ec2-54-85-113-73.compute-1.amazonaws.com:5432/d423nfcf5dbjf7
spring.datasource.username=xmmazemfflgbkj
spring.datasource.password=a323bc337c559fffd0ec7029daaf60f03712cdb1df41ca8629fe8429f0a7a607
spring.datasource.driver-class-name=org.postgresql.Driver
server.port=${PORT:8080}

当我从Github存储库部署Springboot后端时,Heroku说应用程序成功部署了‘。

完整构建日志

代码语言:javascript
运行
AI代码解释
复制
-----> Building on the Heroku-20 stack
-----> Using buildpack: heroku/java
-----> Java app detected
-----> Installing JDK 11... done
-----> Executing Maven
       $ ./mvnw -DskipTests clean dependency:list install
       [INFO] Scanning for projects...
       [INFO] 
       [INFO] ---------------< net.javaguides:budget-backend-postsql >----------------
       [INFO] Building budget-backend-postsql 0.0.1-SNAPSHOT
       [INFO] --------------------------------[ jar ]---------------------------------
       [INFO] 
       [INFO] --- maven-clean-plugin:3.1.0:clean (default-clean) @ budget-backend-postsql ---
       [INFO] 
       [INFO] --- maven-dependency-plugin:3.1.2:list (default-cli) @ budget-backend-postsql ---
       [INFO] 
       [INFO] --- maven-resources-plugin:3.2.0:resources (default-resources) @ budget-backend-postsql ---
       [INFO] Using 'UTF-8' encoding to copy filtered resources.
       [INFO] Using 'UTF-8' encoding to copy filtered properties files.
       [INFO] Copying 1 resource
       [INFO] Copying 1 resource
       [INFO] 
       [INFO] --- maven-compiler-plugin:3.8.1:compile (default-compile) @ budget-backend-postsql ---
       [INFO] Changes detected - recompiling the module!
       [INFO] Compiling 22 source files to /tmp/build_39c5c180/target/classes
       [INFO] 
       [INFO] --- maven-resources-plugin:3.2.0:testResources (default-testResources) @ budget-backend-postsql ---
       [INFO] Using 'UTF-8' encoding to copy filtered resources.
       [INFO] Using 'UTF-8' encoding to copy filtered properties files.
       [INFO] skip non existing resourceDirectory /tmp/build_39c5c180/src/test/resources
       [INFO] 
       [INFO] --- maven-compiler-plugin:3.8.1:testCompile (default-testCompile) @ budget-backend-postsql ---
       [INFO] Changes detected - recompiling the module!
       [INFO] Compiling 1 source file to /tmp/build_39c5c180/target/test-classes
       [INFO] 
       [INFO] --- maven-surefire-plugin:2.22.2:test (default-test) @ budget-backend-postsql ---
       [INFO] Tests are skipped.
       [INFO] 
       [INFO] --- maven-jar-plugin:3.2.0:jar (default-jar) @ budget-backend-postsql ---
       [INFO] Building jar: /tmp/build_39c5c180/target/budget-backend-postsql-0.0.1-SNAPSHOT.jar
       [INFO] 
       [INFO] --- spring-boot-maven-plugin:2.5.0:repackage (repackage) @ budget-backend-postsql ---
       [INFO] Replacing main artifact with repackaged archive
       [INFO] 
       [INFO] --- spring-boot-maven-plugin:2.5.0:repackage (default) @ budget-backend-postsql ---
       [INFO] Replacing main artifact with repackaged archive
       [INFO] 
       [INFO] --- maven-install-plugin:2.5.2:install (default-install) @ budget-backend-postsql ---
       [INFO] Installing /tmp/build_39c5c180/target/budget-backend-postsql-0.0.1-SNAPSHOT.jar to /tmp/codon/tmp/cache/.m2/repository/net/javaguides/budget-backend-postsql/0.0.1-SNAPSHOT/budget-backend-postsql-0.0.1-SNAPSHOT.jar
       [INFO] Installing /tmp/build_39c5c180/pom.xml to /tmp/codon/tmp/cache/.m2/repository/net/javaguides/budget-backend-postsql/0.0.1-SNAPSHOT/budget-backend-postsql-0.0.1-SNAPSHOT.pom
       [INFO] ------------------------------------------------------------------------
       [INFO] BUILD SUCCESS
       [INFO] ------------------------------------------------------------------------
       [INFO] Total time:  5.451 s
       [INFO] Finished at: 2022-04-07T16:05:05Z
       [INFO] ------------------------------------------------------------------------
-----> Discovering process types
       Procfile declares types -> web
-----> Compressing...
       Done: 91.9M
-----> Launching...
       Released v19
       https://budget-program-backend.herokuapp.com/ deployed to Heroku

点击opening,获取错误指示符,这是打开应用程序的日志。

代码语言:javascript
运行
AI代码解释
复制
2022-04-07T16:05:25.936640+00:00 app[web.1]:    at java.base/java.lang.Class.forName0(Native Method)
2022-04-07T16:05:25.936704+00:00 app[web.1]:    at java.base/java.lang.Class.forName(Class.java:398)
2022-04-07T16:05:25.936759+00:00 app[web.1]:    at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:46)
2022-04-07T16:05:25.936813+00:00 app[web.1]:    at org.springframework.boot.loader.Launcher.launch(Launcher.java:108)
2022-04-07T16:05:25.936866+00:00 app[web.1]:    at org.springframework.boot.loader.Launcher.launch(Launcher.java:58)
2022-04-07T16:05:25.936920+00:00 app[web.1]:    at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:88)
2022-04-07T16:05:26.079615+00:00 heroku[web.1]: Process exited with status 1
2022-04-07T16:05:26.140845+00:00 heroku[web.1]: State changed from starting to crashed
2022-04-07T16:07:24.801800+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=budget-program-backend.herokuapp.com request_id=162d7ce0-822c-4578-8326-bc39a74b25cf fwd="35.136.227.81" dyno= connect= service= status=503 bytes= protocol=https
2022-04-07T16:07:25.042311+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/favicon.ico" host=budget-program-backend.herokuapp.com request_id=ed6f3924-f8da-449f-8366-fed58d58fe98 fwd="35.136.227.81" dyno= connect= service= status=503 bytes= protocol=https
EN

回答 1

Stack Overflow用户

发布于 2022-03-30 12:41:44

您需要spring.datasource.driver-class-name=org.postgresql.Driver在您的application.properties

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71666699

复制
相关文章
Java的几个版本
一、 Java SE(Java Platform,Standard Edition) Java SE 以前称为 J2SE。它允许开发和部署在桌面、服务器、嵌入式环境和实时环境中使用的 Java 应用程序。Java SE 包含了支持 Java Web 服务开发的类,并为 Java Platform,Enterprise Edition(Java EE)提供基础。
全栈程序员站长
2022/09/08
1.8K0
Xcode低版本运行高版本代码的适配问题
最近升级到Xcode13后,发现机子发热量过大,卡顿量,于是做好适配iOS15后,再安装Xcode12,把Xcode12作为开发IDE
freesan44
2021/10/12
9430
安装和运行 .NET Core 版本的 PowerShell
Windows 自带一个强大的 PowerShell,不过自带的 PowerShell 一直是基于 .NET Framework 的版本。你可以下载安装一个 .NET Core 版本的 PowerShell,以便获得 .NET Core 的各种好处。包括跨平台,以及更好的性能。
walterlv
2023/10/22
4110
安装和运行 .NET Core 版本的 PowerShell
Xcode低版本运行高版本代码的适配问题
最近升级到Xcode13后,发现机子发热量过大,卡顿量,于是做好适配iOS15后,再安装Xcode12,把Xcode12作为开发IDE
freesan44
2021/12/06
1.4K0
Python版本的OpenCV安装
https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/
MiChong
2020/09/24
1.5K0
安装Oracle Linux碰见的几个问题
今儿需要部署一个Oracle环境,为了简单些,选择了Oracle提供的Linux版本介质:OracleLinux-R6-U2-Server-x86_64-dvd.iso,在安装的过程中碰见了几个常见的问题,简要记录下,便于日后查找。
bisal
2019/01/29
1K0
安装 Druid 安装的时候提示 JAVA 版本的问题
这个其实不是问题,出现上面提示的原因就是 Druid 在安装的时候需要校验 Java 的版本。
HoneyMoose
2021/07/29
5540
安装 Druid 安装的时候提示 JAVA 版本的问题
Android:解决debug版本无法运行的问题
在用Android Studio做开发时,如果将build之后的app-debug版本发给用户,用户会无法安装。这里有两种解决方案:
zstar
2022/06/14
1.2K0
源码安装PHP常遇到的几个问题
如果你还是找不到php.ini或者找到了php.ini修改后不生效(其实是没找对),请使用如下办法: 1.新建php文件,写入如下代码
咪啪咪啪
2019/11/15
7570
python升级后带来的几个小问题
1)python升级带来的yum异常:File "/usr/bin/yum", line 30 原因:这是因为yum采用Python作为命令解释器,这可以从/usr/bin/yum文件中第一行#!/usr/bin/python发现。 而python版本之间兼容性不太好,使得2.X版本与3.0版本之间存在语法不一致问题。而CentOS 5自带的yum采用的是python2.4,当系统将python升级到2.6或3.0后,出现语法解释错误 解决办法: [root@jenkins-server ~]# pyth
洗尽了浮华
2018/01/22
1.7K0
初识Python并安装版本的Python
一、Linux下载安装python源码包 2.7.13 wget https://www.python.org/ftp/python/2.7.13/Python-2.7.13.tgz tar zxvf Python-2.7.13.tgz cd Python-2.7.13/ ./configure make && make install 进入python: [[email protected] ~]# python -V //查看python的版本 Python 2.7.13 [[email p
老七Linux
2018/05/31
1.8K3
安装Termux的手机上运行Python
Android是一个单用户图形化系统,功能主要以应用的形式呈现给用户,因此在系统上我们无法直接获取终端,更是无法直接调用系统自带的丰富指令。使用ADB是一个曲线救国的方法,打开USB调试后开发者可以在桌面系统的终端中触发Android系统自带指令,使用方法大概如下:
JQ实验室
2022/02/09
5.1K0
安装Termux的手机上运行Python
Pycharm和Anaconda的python版本问题
问题描述:Pycharm需要导入tensorflow库,但现在的python版本为3.8,不支持导入。于是想办法在Anaconda新建python3.6环境,之后再用于Pycharm开发。
全栈程序员站长
2022/09/27
1.5K0
Pycharm和Anaconda的python版本问题
eNSP安装你需要注意的几个问题
eNSP是由华为官方打造的一款用于模拟网络通信的仿真模拟器,在其中你可以进行网络模拟。关于它的安装,总是有那么多的问题,今天我就来说一说,如何正确的快速安装。
小狐狸说事
2022/11/17
8060
eNSP安装你需要注意的几个问题
chromium最近几个版本的改动
Chrome 57 Beta: 1,css grid layout基本完成 2,Media Session API 3,视频全屏的时候锁住屏幕 4,setTimeout的性能大幅改进 5,Fetch API 支持.redirected attribute 6,padStart and padEnd 7,Service Worker Navigation Preload 8,Payment Request API  9,PaymentMethodData支持 basic-card 10,改进<event>属性 11,新增AudioContext.getOutputTimestamp api 12,开发者能发送WebAudio-specific事件,例如OfflineAudioCompletionEvent 与AudioProcessEvent.  13,XSS Auditor 功能加强
龙泉寺扫地僧
2019/02/20
1.2K0
如何快速切换Python运行版本,如何选择Python版本
想必在学习Python时会面临选择Python2.X或者是Python3.X的问题。
软测小生
2019/07/04
1.9K0
WordPress3.5安装出现的几个问题
一直使用WordPress3.1的版本,12月份WordPress发布了3.5的版本,想尝试升级一一下。当然最好是先在本地环境测试通过,然后上传的服务器是最好的方法。操作系统是Windows8 64位,设置基本和操作无关。 按照安装步骤,显示Apache2.2,然后是PHP5.4,最后就是MySQL5.5。安装过程问题还是蛮多了,下面总结如下,基本都是因为少配置了,或者配置不正确导致的。我安装好以上三个软件之后,将下载的WordPress3.5解压后的文件复制到Apache htdocs根目录下。然后在浏览
八哥
2018/01/18
1.5K0
WordPress3.5安装出现的几个问题
安装双系统需要注意的几个问题
今天为了体验下微软的windows8.1 系统,折磨了一天,蛋都疼了。郁闷的是把原来的系统都弄报废了,再不断的摸索下终于成功了,让我的老古董电脑也时髦了一把。特此总结下,以便下次再坐弯路。 
跟着阿笨一起玩NET
2018/09/18
3K0
点击加载更多

相似问题

重用现有jQuery UI对话框

13

重用jQuery-UI对话框

35

更改jQuery UI对话框的行为

20

jquery:同步行为的jquery ui对话框?

10

在Jquery UI对话框中重用CKEditor实例

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文