2015-12-17 3 views
3

У меня есть ColdFusion веб-сервис для загрузки файлов, здесь есть функция загрузки:Coldfusion Web Service не может загружать файлы

<cffunction access="remote" name="UploadFile" output="yes" returntype="string" verifyclient="no" securejson="false"> 
     <cfargument name="SiteName" type="string" displayname="SiteName" hint="SiteName"> 
     <cfargument name="PartFileName" type="string" displayname="PartFileName" hint="PartFileName"> 
     <cfargument name="FileBody" type="binary" displayname="PictureBody" hint="PictureBody"> 
     <cfargument name="TargetFolder" type="string" displayname="TargetFolder" hint="TargetFolder"> 

     <cfset var filePath="C:\web\#arguments.SiteName#\#arguments.TargetFolder#"> 

     <cfdirectory directory="#filePath#" action="list" name="dirList" filter="#arguments.PartFileName#"> 
     <cfloop query="#dirList#"> 
      <cffile action="delete" file="#filePath#\#arguments.PartFileName#"> 
     </cfloop> 

     <cfscript> 
      FileWrite("#filePath#\#arguments.PartFileName#", "#arguments.FileBody#"); 
     </cfscript> 

     <cfreturn PartFileName> 
    </cffunction> 

При попытке загрузить файлы больше чем ноль байт (пустой текстовый файл не удается успешно загрузить), я получаю это исключение:

coldfusion.filter.AxisFilter$WebServiceInvocationException: The web service operation caused an invocation exception. 

The web service operation caused an invocation exception. 


coldfusion.filter.AxisFilter.invoke(AxisFilter.java:95) 
coldfusion.filter.ApplicationFilter.invoke(ApplicationFilter.java:451) 
coldfusion.filter.RequestMonitorFilter.invoke(RequestMonitorFilter.java:48) 
coldfusion.filter.MonitoringFilter.invoke(MonitoringFilter.java:40) 
coldfusion.filter.PathFilter.invoke(PathFilter.java:112) 
coldfusion.filter.ExceptionFilter.invoke(ExceptionFilter.java:94) 
coldfusion.filter.ClientScopePersistenceFilter.invoke(ClientScopePersistenceFilter.java:28) 
coldfusion.filter.GlobalsFilter.invoke(GlobalsFilter.java:38) 
coldfusion.filter.DatasourceFilter.invoke(DatasourceFilter.java:22) 
coldfusion.xml.rpc.CFCServlet.invoke(CFCServlet.java:155) 
coldfusion.xml.rpc.CFCServlet.doPost(CFCServlet.java:331) 
javax.servlet.http.HttpServlet.service(HttpServlet.java:646) 
javax.servlet.http.HttpServlet.service(HttpServlet.java:727) 
coldfusion.bootstrap.BootstrapServlet.service(BootstrapServlet.java:89) 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) 
coldfusion.monitor.event.MonitoringServletFilter.doFilter(MonitoringServletFilter.java:42) 
coldfusion.bootstrap.BootstrapFilter.doFilter(BootstrapFilter.java:46) 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) 
sun.reflect.GeneratedMethodAccessor62.invoke(null:???) 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
java.lang.reflect.Method.invoke(Method.java:606) 
com.intergral.fusionreactor.j2ee.filterchain.WrappedFilterChain.doFilter(WrappedFilterChain.java:97) 
com.intergral.fusionreactor.j2ee.filter.FusionReactorRequestHandler.doNext(FusionReactorRequestHandler.java:472) 
com.intergral.fusionreactor.j2ee.filter.FusionReactorRequestHandler.doHttpServletRequest(FusionReactorRequestHandler.java:312) 
com.intergral.fusionreactor.j2ee.filter.FusionReactorRequestHandler.doFusionRequest(FusionReactorRequestHandler.java:192) 
com.intergral.fusionreactor.j2ee.filter.FusionReactorRequestHandler.handle(FusionReactorRequestHandler.java:507) 
com.intergral.fusionreactor.j2ee.filter.FusionReactorCoreFilter.doFilter(FusionReactorCoreFilter.java:36) 
sun.reflect.GeneratedMethodAccessor63.invoke(null:???) 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
java.lang.reflect.Method.invoke(Method.java:606) 
com.intergral.fusionreactor.j2ee.filterchain.WrappedFilterChain.doFilter(WrappedFilterChain.java:79) 
sun.reflect.GeneratedMethodAccessor61.invoke(null:???) 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
java.lang.reflect.Method.invoke(Method.java:606) 
com.intergral.fusionreactor.agent.filter.FusionReactorStaticFilter.doFilter(FusionReactorStaticFilter.java:53) 
com.intergral.fusionreactor.agent.pointcuts.NewFilterChainPointCut$1.invoke(NewFilterChainPointCut.java:41) 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:???) 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220) 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) 
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501) 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950) 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:422) 
org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:199) 
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607) 
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:314) 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) 
java.lang.Thread.run(Thread.java:724) 




Caused By: 

ClientAbortException: java.net.SocketException: Connection reset by peer: socket write error 


org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:417) 
org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:480) 
org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:363) 
org.apache.catalina.connector.OutputBuffer.flush(OutputBuffer.java:337) 
org.apache.catalina.connector.CoyoteOutputStream.flush(CoyoteOutputStream.java:101) 
com.intergral.fusionreactor.j2ee.filter.surrogate.FusionReactorServletResponseInterposer$1.flush(FusionReactorServletResponseInterposer.java:85) 
com.intergral.fusionreactor.j2ee.trackedstream.TrackedStream2.flush(TrackedStream2.java:61) 
com.intergral.fusionreactor.j2ee.filter.softkill.SoftKillResponseStream.flush(SoftKillResponseStream.java:158) 
com.intergral.fusionreactor.j2ee.filter.softkill.SoftKillResponseWrapper.flushBuffer(SoftKillResponseWrapper.java:65) 
javax.servlet.ServletResponseWrapper.flushBuffer(ServletResponseWrapper.java:160) 
com.intergral.fusionreactor.j2ee.filter.FusionReactorResponseWrapper.flushBuffer(FusionReactorResponseWrapper.java:293) 
org.apache.axis.transport.http.AxisServlet.sendResponse(AxisServlet.java:909) 
org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:777) 
coldfusion.xml.rpc.CFCServlet.doAxisPost(CFCServlet.java:295) 
coldfusion.filter.AxisFilter.invoke(AxisFilter.java:75) 
coldfusion.filter.ApplicationFilter.invoke(ApplicationFilter.java:451) 
coldfusion.filter.RequestMonitorFilter.invoke(RequestMonitorFilter.java:48) 
coldfusion.filter.MonitoringFilter.invoke(MonitoringFilter.java:40) 
coldfusion.filter.PathFilter.invoke(PathFilter.java:112) 
coldfusion.filter.ExceptionFilter.invoke(ExceptionFilter.java:94) 
coldfusion.filter.ClientScopePersistenceFilter.invoke(ClientScopePersistenceFilter.java:28) 
coldfusion.filter.GlobalsFilter.invoke(GlobalsFilter.java:38) 
coldfusion.filter.DatasourceFilter.invoke(DatasourceFilter.java:22) 
coldfusion.xml.rpc.CFCServlet.invoke(CFCServlet.java:155) 
coldfusion.xml.rpc.CFCServlet.doPost(CFCServlet.java:331) 
javax.servlet.http.HttpServlet.service(HttpServlet.java:646) 
javax.servlet.http.HttpServlet.service(HttpServlet.java:727) 
coldfusion.bootstrap.BootstrapServlet.service(BootstrapServlet.java:89) 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) 
coldfusion.monitor.event.MonitoringServletFilter.doFilter(MonitoringServletFilter.java:42) 
coldfusion.bootstrap.BootstrapFilter.doFilter(BootstrapFilter.java:46) 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) 
sun.reflect.GeneratedMethodAccessor62.invoke(null:???) 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
java.lang.reflect.Method.invoke(Method.java:606) 
com.intergral.fusionreactor.j2ee.filterchain.WrappedFilterChain.doFilter(WrappedFilterChain.java:97) 
com.intergral.fusionreactor.j2ee.filter.FusionReactorRequestHandler.doNext(FusionReactorRequestHandler.java:472) 
com.intergral.fusionreactor.j2ee.filter.FusionReactorRequestHandler.doHttpServletRequest(FusionReactorRequestHandler.java:312) 
com.intergral.fusionreactor.j2ee.filter.FusionReactorRequestHandler.doFusionRequest(FusionReactorRequestHandler.java:192) 
com.intergral.fusionreactor.j2ee.filter.FusionReactorRequestHandler.handle(FusionReactorRequestHandler.java:507) 
com.intergral.fusionreactor.j2ee.filter.FusionReactorCoreFilter.doFilter(FusionReactorCoreFilter.java:36) 
sun.reflect.GeneratedMethodAccessor63.invoke(null:???) 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
java.lang.reflect.Method.invoke(Method.java:606) 
com.intergral.fusionreactor.j2ee.filterchain.WrappedFilterChain.doFilter(WrappedFilterChain.java:79) 
sun.reflect.GeneratedMethodAccessor61.invoke(null:???) 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
java.lang.reflect.Method.invoke(Method.java:606) 
com.intergral.fusionreactor.agent.filter.FusionReactorStaticFilter.doFilter(FusionReactorStaticFilter.java:53) 
com.intergral.fusionreactor.agent.pointcuts.NewFilterChainPointCut$1.invoke(NewFilterChainPointCut.java:41) 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:???) 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220) 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) 
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501) 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950) 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:422) 
org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:199) 
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607) 
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:314) 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) 
java.lang.Thread.run(Thread.java:724) 





Caused By: 

java.net.SocketException: Connection reset by peer: socket write error 

Connection reset by peer: socket write error 



java.net.SocketOutputStream.socketWrite0(SocketOutputStream.java:???)[Native Method] 
java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:109) 
java.net.SocketOutputStream.write(SocketOutputStream.java:153) 
org.apache.coyote.ajp.AjpProcessor.output(AjpProcessor.java:307) 
org.apache.coyote.ajp.AbstractAjpProcessor$SocketOutputBuffer.doWrite(AbstractAjpProcessor.java:1258) 
org.apache.coyote.Response.doWrite(Response.java:520) 
org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:412) 
org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:480) 
org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:363) 
org.apache.catalina.connector.OutputBuffer.flush(OutputBuffer.java:337) 
org.apache.catalina.connector.CoyoteOutputStream.flush(CoyoteOutputStream.java:101) 
com.intergral.fusionreactor.j2ee.filter.surrogate.FusionReactorServletResponseInterposer$1.flush(FusionReactorServletResponseInterposer.java:85) 
com.intergral.fusionreactor.j2ee.trackedstream.TrackedStream2.flush(TrackedStream2.java:61) 
com.intergral.fusionreactor.j2ee.filter.softkill.SoftKillResponseStream.flush(SoftKillResponseStream.java:158) 
com.intergral.fusionreactor.j2ee.filter.softkill.SoftKillResponseWrapper.flushBuffer(SoftKillResponseWrapper.java:65) 
javax.servlet.ServletResponseWrapper.flushBuffer(ServletResponseWrapper.java:160) 
com.intergral.fusionreactor.j2ee.filter.FusionReactorResponseWrapper.flushBuffer(FusionReactorResponseWrapper.java:293) 
org.apache.axis.transport.http.AxisServlet.sendResponse(AxisServlet.java:909) 
org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:777) 
coldfusion.xml.rpc.CFCServlet.doAxisPost(CFCServlet.java:295) 
coldfusion.filter.AxisFilter.invoke(AxisFilter.java:75) 
coldfusion.filter.ApplicationFilter.invoke(ApplicationFilter.java:451) 
coldfusion.filter.RequestMonitorFilter.invoke(RequestMonitorFilter.java:48) 
coldfusion.filter.MonitoringFilter.invoke(MonitoringFilter.java:40) 
coldfusion.filter.PathFilter.invoke(PathFilter.java:112) 
coldfusion.filter.ExceptionFilter.invoke(ExceptionFilter.java:94) 
coldfusion.filter.ClientScopePersistenceFilter.invoke(ClientScopePersistenceFilter.java:28) 
coldfusion.filter.GlobalsFilter.invoke(GlobalsFilter.java:38) 
coldfusion.filter.DatasourceFilter.invoke(DatasourceFilter.java:22) 
coldfusion.xml.rpc.CFCServlet.invoke(CFCServlet.java:155) 
coldfusion.xml.rpc.CFCServlet.doPost(CFCServlet.java:331) 
javax.servlet.http.HttpServlet.service(HttpServlet.java:646) 
javax.servlet.http.HttpServlet.service(HttpServlet.java:727) 
coldfusion.bootstrap.BootstrapServlet.service(BootstrapServlet.java:89) 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) 
coldfusion.monitor.event.MonitoringServletFilter.doFilter(MonitoringServletFilter.java:42) 
coldfusion.bootstrap.BootstrapFilter.doFilter(BootstrapFilter.java:46) 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) 
sun.reflect.GeneratedMethodAccessor62.invoke(null:???) 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
java.lang.reflect.Method.invoke(Method.java:606) 
com.intergral.fusionreactor.j2ee.filterchain.WrappedFilterChain.doFilter(WrappedFilterChain.java:97) 
com.intergral.fusionreactor.j2ee.filter.FusionReactorRequestHandler.doNext(FusionReactorRequestHandler.java:472) 
com.intergral.fusionreactor.j2ee.filter.FusionReactorRequestHandler.doHttpServletRequest(FusionReactorRequestHandler.java:312) 
com.intergral.fusionreactor.j2ee.filter.FusionReactorRequestHandler.doFusionRequest(FusionReactorRequestHandler.java:192) 
com.intergral.fusionreactor.j2ee.filter.FusionReactorRequestHandler.handle(FusionReactorRequestHandler.java:507) 
com.intergral.fusionreactor.j2ee.filter.FusionReactorCoreFilter.doFilter(FusionReactorCoreFilter.java:36) 
sun.reflect.GeneratedMethodAccessor63.invoke(null:???) 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
java.lang.reflect.Method.invoke(Method.java:606) 
com.intergral.fusionreactor.j2ee.filterchain.WrappedFilterChain.doFilter(WrappedFilterChain.java:79) 
sun.reflect.GeneratedMethodAccessor61.invoke(null:???) 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
java.lang.reflect.Method.invoke(Method.java:606) 
com.intergral.fusionreactor.agent.filter.FusionReactorStaticFilter.doFilter(FusionReactorStaticFilter.java:53) 
com.intergral.fusionreactor.agent.pointcuts.NewFilterChainPointCut$1.invoke(NewFilterChainPointCut.java:41) 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:???) 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220) 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) 
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501) 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950) 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:422) 
org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:199) 
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607) 
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:314) 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) 
java.lang.Thread.run(Thread.java:724) 

Я подозреваю, что это что-то делать с FusionReactor, но я просмотрел все настройки реакторов, и я не вижу каких-либо отказов FusionReactor в журналах.

Примечание: загрузки выполняются на моем сервере разработки, который NOT имеет установленный FusionReactor.

Примечание. Этот экземпляр Coldfusion был обновлен до уровня 17-го уровня, а разъем IIS был обновлен до нужной версии.

+0

Пробовал ли вы простую загрузку файла на странице .cfm без использования удаленной функции? –

+0

Да, регулярные загрузки файлов на основе FORM работают корректно, у нас есть ограничение на 20 мегабайт на эти заказы. – DragonZero

ответ

1

Это оказалось проблемой с коннектором IIS, было 2 папки ws_config, а первым экземпляром был старый соединитель, а второй экземпляр имел надлежащий обновленный коннектор IIS. Я предположил, что мы использовали более новую версию 2, но оказалось, что, обновив соединитель первого экземпляра, эти загрузки начали работать. Спасибо всем, кто посмотрел на этот вопрос.

Смежные вопросы