2017-09-07 15 views
1

Tomcat 7.0.57でGrails 3.3.0でresponse.outputStreamを使用しようとしています。しかし、ストリームに何バイトか書き込まれると、次のエラーが発生します。Grails 3.3.0 on Tomcat 7.0.57

org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.NoClassDefFoundError: javax/servlet/WriteListener 

これは3.1サーブレット仕様から来ているようです。しかし、Tomcat 7は3.1、3.0のみをサポートしていません。しかし、我々は依存関係でこれを行うことによって、我々が展開しているTomcatのバージョンへのGrailsアプリケーションを対象としました:

provided "org.springframework.boot:spring-boot-starter-tomcat" 

をそしてこの、後のbuild.gradleファイル内:他

war { 
    ext['tomcat.version'] = '7.0.57' 
} 

何か試してみる?このような方法で応答OutputStreamを使用する方法(複数可)に@GrailsCompileStatic追加

public void setWriteListener(WriteListener writeListener) { 
     this.delegate.setWriteListener(writeListener); 
    } 

答えて

1

は問題がこれを持っているクラスOnCommittedResponseWrapperを、ロード時にグルービーイントロスペクションによって引き起こされた判明します。

response.outputStream << someBytes 

それは7

Tomcat上で動作しますイントロスペクションを回避します
関連する問題