Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将Scala XML与Apache Flink结合使用?_Scala_Maven_Apache Flink_Maven Shade Plugin_Scala Xml - Fatal编程技术网

如何将Scala XML与Apache Flink结合使用?

如何将Scala XML与Apache Flink结合使用?,scala,maven,apache-flink,maven-shade-plugin,scala-xml,Scala,Maven,Apache Flink,Maven Shade Plugin,Scala Xml,我试图在Flink中使用Scala XML库来解析XML,但我无法使它正常工作。请注意,我需要在同一个处理函数中对代码使用序列化和非序列化(字符串)版本 我已经尝试过不同的解决方案,它们总是在IntelliJ中工作,但在Flink集群上运行它们时就不行了。它们总是返回不同的java.lang.LinkageError:com/sun/org/apache/xerces/internal/jaxp/saxpasserimpl$JAXPSAXParser;我尝试了多种方法,但仍然得到与此类似的错误

我试图在Flink中使用Scala XML库来解析XML,但我无法使它正常工作。请注意,我需要在同一个处理函数中对代码使用序列化和非序列化(字符串)版本

我已经尝试过不同的解决方案,它们总是在IntelliJ中工作,但在Flink集群上运行它们时就不行了。它们总是返回不同的
java.lang.LinkageError:com/sun/org/apache/xerces/internal/jaxp/saxpasserimpl$JAXPSAXParser
;我尝试了多种方法,但仍然得到与此类似的错误

这是我的Flink工作的一个例子:

对象流化作业{
导入org.apache.flink.streaming.api.scala_
val=列表(
“再见”,
)
def main(参数:数组[字符串]):单位={
val env=StreamExecutionEnvironment.getExecutionEnvironment
//设置卡夫卡部分
环境设置(10)
val stream=env.fromCollection(l)
流动
.uid(“过程”)
.map(新处理器)
.打印
环境执行(“Flink测试”)
}
}
这是我的处理函数的一个示例:

import javax.xml.parsers.{SAXParser,SAXParserFactory}
导入org.apache.flink.api.common.functions.MapFunction
导入scala.xml。{Elem,xml}
导入scala.xml.factory.xmloader
类处理器扩展映射函数[字符串,字符串]{
覆盖def映射(translatedMessage:String):String={
val xml=Processor.xmlLoader.loadString(translatedMessage)
xml.toString
}
}
对象处理器{
val工厂:SAXParserFactory=SAXParserFactory.newInstance
val SAXParser:SAXParser=factory.newSAXParser
val xmlLoader:xmlLoader[Elem]=XML.withSAXParser(SAXParser)
}
最后这是我的pom.xml,使用maven shade插件制作我传递给flink的jar:


1.7.0
2.12
2.12.8
org.apache.flink
flink-scala_${scala.binary.version}
${flink.version}
假如
org.apache.flink
flink-streaming-scala_${scala.binary.version}
${flink.version}
假如
org.scala-lang
scala图书馆
${scala.version}
假如
com.fasterxml.jackson.dataformat
jackson数据格式xml
2.9.4
org.apache.flink
flink-connector-kafka_2.12
1.7.0
org.apache.logging.log4j
log4j型芯
2.11.1
org.apache.logging.log4j
log4j-slf4j-impl
2.11.1
com.fasterxml.jackson.core
杰克逊数据绑定
2.4.0
com.fasterxml.jackson.dataformat
jackson数据格式yaml
2.4.0
org.apache.logging.log4j
log4j-api-scala_2.12
11
log4j
log4j
1.2.17
org.scala-lang.modules
scala-xml_2.12
1.1.1
org.apache.maven.plugins
maven阴影插件
3.0.0
包裹
阴凉处
flink:force shading
com.google.code.findbugs:jsr305
org.slf4j:*
log4j:*
*:*
META-INF/*.SF
META-INF/*.DSA
META-INF/*.RSA
com.mycompany.myproj.artifactId.default.StreamingJob
reference.conf
org.apache.maven.plugins
maven编译器插件
3.1
1.8
1.8
net.alchim31.maven
scala maven插件
3.2.2
编译
测试编译
org.codehaus.mojo
构建助手maven插件
1.7
添加源
生成源
添加源
src/main/scala
添加测试源
"org.scala-lang.modules" %% "scala-xml" % "1.1.1"