Sparkで謎エラー→ズバッと解決

いや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 してしまっていた。ボケていたようだ。

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