gpt4 book ai didi

java - Google App Engine 应用程序与第三方云的连接

转载 作者:行者123 更新时间:2023-12-02 09:02:18 25 4
gpt4 key购买 nike

根据this link我应该能够将我的 Google App Engine Web 应用程序连接到外部数据库(具体来说,在本例中,我想将其连接到 heroku ClearCB-mysql)。

"Other cloud providers
App Engine apps can connect to external databases that are hosted on other public clouds as
long as those database servers and your firewall are configured properly to accept
connections. Your App Engine app connects over the Internet using that external
service's public IP address."

有人可以指出我的服务器和防火墙的正确配置吗?我找不到任何关于它的文档,我什至不知道从哪里开始(我需要傻瓜 o_O 的解释);)。

我通过 spring-jpa 连接到数据库,它在本地主机上运行得很好,只是当我将文件上传到 Google App Engine 时超时。

<小时/>

ApplicationConfig.java

@Configuration
@EnableJpaRepositories(basePackages = "dominikazb")
@EnableTransactionManagement
@ComponentScan(basePackages = "dominikazb")
public class ApplicationConfig extends WebMvcConfigurationSupport {

@Bean
public InternalResourceViewResolver jspViewResolver(){
InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
viewResolver.setPrefix("/WEB-INF/jsp/");
viewResolver.setSuffix(".jsp");
viewResolver.setViewClass(JstlView.class);
return viewResolver;
}


@Bean
public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
LocalContainerEntityManagerFactoryBean em
= new LocalContainerEntityManagerFactoryBean();
em.setDataSource(dataSource());
em.setPackagesToScan(new String[] { "dominikazb" });

JpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
em.setJpaVendorAdapter(vendorAdapter);
em.setJpaProperties(additionalProperties());
return em;
}

@Bean
public DataSource dataSource(){
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.cj.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://hostname/databasename");
dataSource.setUsername( "username" );
dataSource.setPassword( "password" );
return dataSource;
}

@Bean
public PlatformTransactionManager transactionManager(EntityManagerFactory emf) {
JpaTransactionManager transactionManager = new JpaTransactionManager();
transactionManager.setEntityManagerFactory(emf);
return transactionManager;
}

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

Properties additionalProperties() {
Properties properties = new Properties();
properties.setProperty("hibernate.dialect", "org.hibernate.dialect.MySQL5Dialect");
return properties;
}
}

UserRepository.java

@Repository
public interface UserRepository extends JpaRepository<User, Integer> {
}

用户.java

@Entity
public class User {

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int user_id;
private String username;
private String password;

//getters, setters and constructor

}

HomeController.java

@Controller
public class HomeController {

@Autowired
private UserRepository userRepository;

@RequestMapping(value = "/", method = RequestMethod.GET)
public String takeMeHome() {
return "index";
}

@RequestMapping(value = "/getall", method = RequestMethod.GET)
public @ResponseBody Iterable<User> getAllUsers() {
return userRepository.findAll();
}
}

pom.xml(相关依赖)

<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
<version>8.0.19</version>
</dependency>

<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-jpa</artifactId>
<version>2.1.4.RELEASE</version>
</dependency>

<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.4.1.Final</version>
</dependency>

<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>5.4.2.Final</version>
<scope>runtime</scope>
</dependency>

<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.10.0.pr3</version>
</dependency>

最佳答案

致所有与我有同样问题的人。我在 Google App Engine 的“计费”部分找到了答案。我的意思是,我用完了可以添加到我的计费帐户中的项目,并且它们与外部数据库的连接受到限制。当我将应用程序上传到启用了计费功能的项目后,一切都变得非常顺利。

关于java - Google App Engine 应用程序与第三方云的连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60076107/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com