Dian

That fixed the problem thanks you. It would appear that someone has taken it 
upon themselves to redefine part of the Java standard library in 
org.apache.flink.table.api._

NIck

> On 26 Sep 2019, at 15:16, Dian Fu <dian0511...@gmail.com> wrote:
> 
> Hi Nick,
> 
>>> [error] ………………/src/main/scala/org/example/Job.scala:30:13: object util is 
>>> not a member of package org.apache.flink.table.api.java
>>> [error] import java.util.ArrayList
> 
> 
> The error message shows that it tries to find "util.ArrayList" under package 
> "org.apache.flink.table.api.java". So you can try one of the following two 
> solutions:
> 1) Don't import "org.apache.flink.table.api._"
> 2) Use absolute import: "import _root_.java.util.ArrayList"
> 
> Regards,
> Dian
> 
>> 在 2019年9月26日,下午10:04,Nicholas Walton <nwal...@me.com 
>> <mailto:nwal...@me.com>> 写道:
>> 
>> I’ve shrunk the problem down to a minimal size. The code 
>> 
>> package org.example
>> 
>> import org.apache.flink.table.api._
>> import org.apache.http.HttpHost
>> 
>> import java.util.ArrayList
>> 
>> object foo {
>> 
>>   val httpHosts = new ArrayList[HttpHost]
>>   httpHosts.add(new HttpHost("samwise.local", 9200, "http"))
>> 
>> }
>> will not compile, but remove the import org.apache.flink.table.api._ and all 
>> is well
>> 
>> Nick
>> 
>> 
>>> On 26 Sep 2019, at 12:53, Nicholas Walton <nwal...@me.com 
>>> <mailto:nwal...@me.com>> wrote:
>>> 
>>> I’m having a problem using ArrayList in Scala . The code is below
>>> 
>>> import org.apache.flink.core.fs._
>>> import org.apache.flink.streaming.api._
>>> import org.apache.flink.streaming.api.scala._
>>> import org.apache.flink.table.api._
>>> import org.apache.flink.table.api.scala._
>>> import org.apache.flink.table.sinks._
>>> import org.apache.http.HttpHost
>>> import org.slf4j.LoggerFactory
>>> 
>>> import java.util.ArrayList
>>> 
>>> object Job {
>>> 
>>>   val httpHosts = new ArrayList[HttpHost]
>>>   httpHosts.add(new HttpHost("samwise.local", 9200, "http"))
>>>     …..
>>> 
>>> }
>>> 
>>> Scala refuses to recognise ArrayList. The IDE InteliJ likewise flags 
>>> java.util as not existing, even though it recognises ArrayList and suggest 
>>> auto-insertion of the import java.utils.ArrayList statement. The 
>>> compilation errors are
>>> 
>>> [error] ………………/src/main/scala/org/example/Job.scala:30:13: object util is 
>>> not a member of package org.apache.flink.table.api.java
>>> [error] import java.util.ArrayList
>>> [error]             ^
>>> [error] ………………/src/main/scala/org/example/Job.scala:34:23: not found: type 
>>> ArrayList
>>> [error]   val httpHosts = new ArrayList[HttpHost]
>>> [error]                       ^
>>> [error] two errors found
>>> [error] (Compile / compileIncremental) Compilation failed
>>> 
>>> Without the ArrayList reference the code compiles with no errors.
>>> 
>>> The sbt build file, if it helps is,
>>> 
>>> resolvers in ThisBuild ++= Seq("Apache Development Snapshot Repository" at 
>>> "https://repository.apache.org/content/repositories/snapshots/ 
>>> <https://repository.apache.org/content/repositories/snapshots/>", 
>>> Resolver.mavenLocal)
>>> 
>>> name := "Flink MultiChannel Project"
>>> 
>>> version := "0.1-SNAPSHOT"
>>> 
>>> organization := "org.example"
>>> 
>>> scalaVersion in ThisBuild := "2.11.0"
>>> 
>>> val flinkVersion = "1.8.1"
>>> 
>>> val flinkDependencies = Seq(
>>>   "org.apache.flink" %% "flink-scala" % flinkVersion ,
>>>   "org.apache.flink" %% "flink-table" % "1.7.2" ,
>>>   "org.apache.flink" %% "flink-connector-elasticsearch" % flinkVersion,
>>>   "org.apache.flink" %% "flink-streaming-scala" % flinkVersion,
>>>   "org.apache.httpcomponents" % "httpclient" % "4.5.10",
>>>   "org.apache.httpcomponents" % "httpcore" % "4.4.11")
>>> // https://mvnrepository.com/artifact/org.apache.httpcomponents/httpcore 
>>> <https://mvnrepository.com/artifact/org.apache.httpcomponents/httpcore>
>>> 
>>> lazy val root = (project in file(".")).
>>>   settings(
>>>     libraryDependencies ++= flinkDependencies)
>>> 
>>> mainClass in assembly := Some("org.example.Job")
>>> 
>>> // make run command include the provided dependencies
>>> run in Compile := Defaults.runTask(fullClasspath in Compile, mainClass in 
>>> (Compile, run), runner in (Compile, run))
>>> 
>>> // exclude Scala library from assembly
>>> assemblyOption in assembly := (assemblyOption in 
>>> assembly).value.copy(includeScala = false)
>>> 
>>> 
>>> TIA
>>> 
>>> Nick
>> 
> 

Reply via email to