java - Scala-PlayFw-ApacheCxf / 线程“default-workqueue-1”中的异常 java.lang.NullPointerException
问题描述
当使用带有 Scala/PlayFw 和 sbt-play-soap(plugin) 的 Web 服务 (SOAP)
插件.sbt
resolvers += Resolver.url("play-sbt-plugins", url("https://dl.bintray.com/playframework/sbt-plugin-releases/"))(Resolver.ivyStylePatterns)
addSbtPlugin("com.typesafe.sbt" % "sbt-play-soap" % "1.2.0")
构建.sbt
WsdlKeys.wsdlTasks in Compile := Seq(
WsdlKeys.WsdlTask(url("https://example.com/Service?wsdl"), packageName = Some("com.example.service"))
)
WsdlKeys.futureApi := WsdlKeys.ScalaFutureApi
在任务中(Scala)
class ExampleTask @Inject()(implicit ec: ExecutionContext, actorSystem: ActorSystem, cxf: ApacheCxfBus, conf: Configuration) {
actorSystem.scheduler.scheduleAtFixedRate(initialDelay = 5.seconds, interval = 10.minutes) { () =>
val service = new com.example.service.Service(cxf, conf).getData // <- Error Line
service.map(response => {
// db operations
})
}
}
- 在向 SOAP 发出请求期间,无任何原因或顺序发生以下错误。
- 错误不在特定的顺序和条件下。它可以随时发生。
- 在重复请求期间,错误发生的频率会增加。
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream$1 的 org.apache.cxf.endpoint.ClientImpl$2.onMessage(ClientImpl.java:521) 的线程“default-workqueue-1”java.lang.NullPointerException 中的异常.run(HTTPConduit.java:1201) at org.apache.cxf.workqueue.AutomaticWorkQueueImpl$3.run(AutomaticWorkQueueImpl.java:412) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util .concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at org.apache.cxf.workqueue.AutomaticWorkQueueImpl$AWQThreadFactory$1.run(AutomaticWorkQueueImpl.java:345) at java.lang.Thread.run(Thread.java: 748)
- CXF 版本(已测试):3.1.5 - 3.4.0 - 3.4.3
- JDK 版本(已测试):8、11
- 版本差异并没有解决问题。
我没有从我对这个常见问题的广泛研究中得到一个健康的结论。
我想征求那些对此感兴趣并对此有意见的人的意见。谢谢。
解决方案
推荐阅读
- c# - Unity3D:(Python.net)PythonException:ModuleNotFoundError
- single-sign-on - 可以使用 Okta 进行 SSO / SAML DocuSign 电子签名吗?
- c - 如何从函数中的矩阵指针属性值
- css - 将文本旋转 90°,生成的 div 在父级中具有位置
- android - 如何将来自firebase的数据存储到kotlin中的arraylist中?
- python - 如何连接到要求我使用证书登录的 Intranet 网页?
- java - 为什么延迟加载在 @Component 上没有 @Lazy 的情况下有效
- swift - 如何在 Alamofire Swift 中调用具有 get api 等参数的 post API?
- machine-learning - 在卷积神经网络中设置学习率
- amazon-web-services - 需要什么 IAM 操作才能使用 ACL 上传到另一个账户的 S3 存储桶?