いやApache SparkではなくてSparkFrameworkの方。
単にPOST時にテキストで"test"を返すメソッドを別クラスで定義して動かしただけなんだが…。そのメソッドは確かにPOST時に実行され正常に終わったというか削りまくってreturn "test";しかないにも関わらず500が返る。
まったく「SparkFramework使った事あるのでこっちは容易い(キリッ)」と言っておいてこのザマである。これだから工数はとりあえず見積もりの1.5倍するのが常道。
いつものnekora2199がTweetするときに利用するメソッドは正しく動いているので、多分しょうもないミスなんだと思う。
いや、何か変だ。もはやバグの入り込む余地のなさげなdoGetの

get("/hello", (req, res) -> "test2"); 

ですら同じ事象が起こる。

[qtp286607892-25] WARN org.eclipse.jetty.server.HttpChannel - /sommelier
java.lang.NoSuchMethodError: javax.servlet.http.HttpServletResponse.getHeaders(Ljava/lang/String;)Ljava/util/Collection;
at spark.utils.GzipUtils.checkAndWrap(GzipUtils.java:67)
at spark.http.matching.Body.serializeTo(Body.java:69)
at spark.http.matching.MatcherFilter.doFilter(MatcherFilter.java:189)
at spark.embeddedserver.jetty.JettyHandler.doHandle(JettyHandler.java:50)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1568)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
at org.eclipse.jetty.server.Server.handle(Server.java:530)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:347)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:256)
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:279)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:102)
at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:124)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:247)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.produce(EatWhatYouKill.java:140)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:708)
at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:626)
at java.lang.Thread.run(Thread.java:748)

fits.hatenablog.com
の記事と同じ事象だ。ただし私のほうはjavax.servlet-api-3.1.0.jarしかクラスパスのディレクトリに入れていない。
antとIvy任せにしてあるんだが多分他PJの使うライブラリとのjarの衝突だろう…。
にもかかわらず、nekora2199のTweetが成功しているのは、エラーが出るのはレスポンスを作成する時で、その時既にTweet処理は呼び出され実行されているからか。
→手元のEclipseから起動したら全く目論み通りに動いた。本番環境に余計なjarがある。つまりbuild.xmlが怪しい。ここまでわかればもう解決したようなものだな。
ズバット解決。何故か関連PJの依存ライブラリ一式までivy:resolve してしまっていた。ボケていたようだ。

後日、また別途ビルドしたら、また別のが発生

$ d2018-09-24 08:25:58.852:INFO::Thread-1: Logging initialized @768ms to org.eclipse.jetty.util.log.StdErrLog
Exception in thread "Thread-1" java.lang.NoClassDefFoundError: org/eclipse/jetty/http/HttpField
at spark.embeddedserver.jetty.JettyServer.create(JettyServer.java:46)
at spark.embeddedserver.jetty.EmbeddedJettyServer.ignite(EmbeddedJettyServer.java:100)
at spark.Service.lambda$init$2(Service.java:574)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.ClassNotFoundException: org.eclipse.jetty.http.HttpField
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 4 more
ate

これは、Ivy.xmlにlatest.integrtionを指定していたからsparkのバージョンが2.8.0になった事で発生したようだ。まだ公式には2.7.2が最新なので2.7.2に固定したら解決

快傑ズバット VOL.1 [DVD]
東映ビデオ (2008-01-21)
売り上げランキング: 78,267