2011-01-07 35 views
1

WAS 7.0.0.13アップデート1サーバーで例外が発生します。私はSpring 3フレームワークを使ってREST Webサービスの開発に取り組んでいます。 Springフレームワークは、HTTPレスポンスボディを書き込むための出力ストリームを取得しようとしている場合は、例外にすでにcom.ibm.ws.webcontainer.srt.SRTServletResponse.getOutputStream(SRTServletResponseで(得WAS 7:Writerは既に例外を取得しています

ライターを投げていました。 java:699))

ここにコールスタックがあります。お知らせ下さい。

[1/7/11 13:25:02:600 CST] 0000001a webapp  E com.ibm.ws.webcontainer.webapp.WebApp logServletError SRVE0293E: [Servlet Error]-[terms]: java.lang.IllegalStateException: SRVE0209E: Writer already obtained 
at com.ibm.ws.webcontainer.srt.SRTServletResponse.getOutputStream(SRTServletResponse.java:699) 
at com.ibm.ws.cache.servlet.FragmentComposer.obtainOutputStream(FragmentComposer.java:689) 
at com.ibm.ws.cache.servlet.FragmentComposer.getOutputStream(FragmentComposer.java:753) 
at com.ibm.ws.cache.servlet.CacheProxyResponse.getOutputStream(CacheProxyResponse.java:215) 
at org.springframework.http.server.ServletServerHttpResponse.getBody(ServletServerHttpResponse.java:64) 
at org.springframework.http.converter.xml.AbstractXmlHttpMessageConverter.writeInternal(AbstractXmlHttpMessageConverter.java:66) 
at org.springframework.http.converter.AbstractHttpMessageConverter.write(AbstractHttpMessageConverter.java:181) 
at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter$ServletHandlerMethodInvoker.writeWithMessageConverters(AnnotationMethodHandlerAdapter.java:975) 
at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter$ServletHandlerMethodInvoker.handleResponseBody(AnnotationMethodHandlerAdapter.java:933) 
at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter$ServletHandlerMethodInvoker.getModelAndView(AnnotationMethodHandlerAdapter.java:882) 
at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:428) 
at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:414) 
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:790) 
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719) 
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644) 
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:549) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:718) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:831) 
at com.ibm.ws.cache.servlet.ServletWrapper.serviceProxied(ServletWrapper.java:307) 
at com.ibm.ws.cache.servlet.CacheHook.handleFragment(CacheHook.java:574) 
at com.ibm.ws.cache.servlet.CacheHook.handleServlet(CacheHook.java:250) 
at com.ibm.ws.cache.servlet.ServletWrapper.service(ServletWrapper.java:259) 
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1663) 
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:939) 
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:502) 
at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:179) 
at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3826) 
at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:276) 
at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:931) 
at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1583) 
at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:186) 
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:445) 
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:504) 
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:301) 
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:275) 
at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminators(NewConnectionInitialReadCallback.java:214) 
at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:113) 
at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165) 
at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217) 
at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161) 
at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138) 
at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:204) 
at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:775) 
at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:905) 
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1563) 

ありがとう、 Satya。あなたが上に行くためにいくつかのことが見つかり

答えて

2

Hereは、WebSphere上のサーブレットに作家および出力ストリームでの作業と同様のエラーです。やや違います。しかし、それはあなたに何かを与えるかもしれません。どちらの答えもよかった。

また、IBMの修正サイトでthisが見つかりました。これはWASの古いバージョン用ですが、時には問題が壊れたり、問題を解決しても問題解決に役立ちます。

最後に、有用な場合は、エラー名here のGoogle検索があります。

しかし、私は最初にフローからスタックから最初のリンクを試してみると思います。それは最も有望だった。

+0

お返事ありがとうございました。書き込み応答のすべての作業は春のフレームワークによって行われているので、コードをtweekで手に入れることはほとんどありません。また、私はそれを更新したいと思います、私はTomcatサーバーで同じコードを試して、それは正常に動作します。だから、2番目の提案は最も可能性の高い理由と思われます。 – user567426

+0

IBMとPMRをオープンしましたか? WAS 7用の同様のAPARが見つかりましたか?ちょっと興味があるんだけど。 –

2

IBMのdeveloperWorksで同様のスレッドを開きましたが、何の反応もありませんでした。

しかし、私はこの問題の答えを見つけたと思います。私は例外の発生の正確な理由を知らないが、私は今のところ回避策を見つけた。私は、応答オブジェクトのバッファをリセットすることによって例外を回避することができました。私のコントローラのサンプルコードは次のとおりです(spring 3)。

@RequestMapping(value = "/codesystems", method = RequestMethod.GET) 

public @ResponseBody 
CodeSystemVersionDirectory getAllAvailableCodeSystems(HttpServletResponse response) throws Exception { 

    response.resetBuffer(); 

    response.setHeader("Location", "/codeSystems"); 
    response.setContentType("application/xml"); 

    return codeSystemService_.getCodesystemVersionDirectory(); 
} 
関連する問題