小编Mat*_*eus的帖子

Java Spring Boot - 在本地运行时,sp​​ring-boot-starter-tomcat 依赖项不适用于提供的范围

我正在开发一个需要在我们客户端的 Tomcat 服务器上运行的 Java Spring Boot 应用程序。这个应用程序基本上包含一个 REST API,它为我们的前端提供文件。

在我们第一次在客户端的服务器上进行部署测试之前,在本地运行这个应用程序一直很顺利。我们不得不重构我们的代码并向项目的 pom.xml 添加一些依赖项。这最终奏效了(有点)。

现在我想再次开始本地开发,并注意到我的代码无法使用我之前使用的相同运行配置运行。虽然执行mvn spring-boot:run工作正常,但我需要 IntelliJ 的调试功能才能继续开发。

经过一番搜索,我在我的 pom.xml 中发现了这个问题:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-tomcat</artifactId>
    <scope>provided</scope>
</dependency>
Run Code Online (Sandbox Code Playgroud)

虽然<scope>provided</scope>必须在 tomcat 上运行生成的 WAR 文件,但我在本地运行时遇到了一些问题。更具体地说,产生了以下错误:

java.lang.IllegalStateException: ApplicationEventMulticaster not initialized - call 'refresh' before multicasting events via the context: org.springframework.context.annotation.AnnotationConfigApplicationContext@2a693f59: startup date [Mon Nov 06 10:52:25 CET 2017]; root of context hierarchy
at Org.springframework.context.support.AbstractApplicationContext.getApplicationEventMulticaster(AbstractApplicationContext.java:414) [spring-context-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at org.springframework.context.support.ApplicationListenerDetector.postProcessBeforeDestruction(ApplicationListenerDetector.java:97) ~[spring-context-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at org.springframework.beans.factory.support.DisposableBeanAdapter.destroy(DisposableBeanAdapter.java:253) ~[spring-beans-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroyBean(DefaultSingletonBeanRegistry.java:578) [spring-beans-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingleton(DefaultSingletonBeanRegistry.java:554) [spring-beans-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingleton(DefaultListableBeanFactory.java:961) [spring-beans-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingletons(DefaultSingletonBeanRegistry.java:523) [spring-beans-4.3.12.RELEASE.jar:4.3.12.RELEASE] …
Run Code Online (Sandbox Code Playgroud)

java spring tomcat maven spring-boot

1
推荐指数
1
解决办法
3365
查看次数

Google Dataflow:用于BigQuery插入的PCollection <String>到PCollection <TableRow>

我是Google Cloud Platform的新手,我第一次尝试使用Google Dataflow来完成我的研究生课程项目.我想要做的是编写一个自动加载作业,从我的云存储中的某个存储桶加载文件,并将其中的数据插入到BigQuery表中.

我将数据作为PCollection<String>类型获取,但是为了插入BigQuery,我显然需要将其转换为PCollection<TableRow>类型.到目前为止,我还没有找到一个可靠的答案.

这是我的代码:

public static void main(String[] args) {
    //Defining the schema of the BigQuery table
    List<TableFieldSchema> fields = new ArrayList<>();
    fields.add(new TableFieldSchema().setName("Datetime").setType("TIMESTAMP"));
    fields.add(new TableFieldSchema().setName("Consumption").setType("FLOAT"));
    fields.add(new TableFieldSchema().setName("MeterID").setType("STRING"));
    TableSchema schema = new TableSchema().setFields(fields);

    //Creating the pipeline
    PipelineOptions options = PipelineOptionsFactory.fromArgs(args).withValidation().create();
    Pipeline p = Pipeline.create(options);

    //Getting the data from cloud storage
    PCollection<String> lines = p.apply(TextIO.Read.named("ReadCSVFromCloudStorage").from("gs://mybucket/myfolder/certainCSVfile.csv"));

    //Probably need to do some transform here ...

    //Inserting data into BigQuery
    lines.apply(BigQueryIO.Write
            .named("WriteToBigQuery")
            .to("projectID:datasetID:tableID")
            .withSchema(schema)
            .withWriteDisposition(BigQueryIO.Write.WriteDisposition.WRITE_APPEND)
            .withCreateDisposition(BigQueryIO.Write.CreateDisposition.CREATE_IF_NEEDED));
}
Run Code Online (Sandbox Code Playgroud)

我可能只是忘记了一些基本的东西,所以我希望你们可以帮助我...

java google-cloud-storage google-bigquery google-cloud-dataflow

0
推荐指数
1
解决办法
1790
查看次数