Ich habe eine Website in Genexus mit einer Transaktion, die ein Uploadify-Steuerelement enthält, auf einem lokalen Tomcat-Server läuft, und es funktioniert gut mit kleinen Dateien, aber wenn ich versuche, ein größeres hochladen Eins (> 50 MB) scheint die Datei hochzuladen, kehrt dann aber zum Transaktionsbildschirm zurück.Genexus Uploadify arbeitet nicht mit großen Dateien
Ich habe einen Test mit den in Google Chrome enthaltenen Entwicklertools durchgeführt und festgestellt, dass beim Versuch, große Dateien hochzuladen, ein "500 - Interner Serverfehler" auftritt. Ein Klick auf die entsprechende Zeile in der Registerkarte „Netzwerk“ gibt dies:
HTTP Status 500 -
type Exception report
message
description The server encountered an internal error() that prevented it from fulfilling this request.
exception
javax.servlet.ServletException: java.lang.NoSuchMethodError: org.apache.commons.fileupload.DefaultFileItem.cleanup()V
at com.genexus.webpanels.HttpContextWeb.cleanup(Unknown Source)
at com.genexus.webpanels.GXWebObjectBase.doExecute(Unknown Source)
at br.com.procempa.spm.cauge.texpedientessoliceventosalter.doExecute(texpedientessoliceventosalter.java:21)
at com.genexus.webpanels.GXWebObjectStub.callExecute(Unknown Source)
at com.genexus.webpanels.GXWebObjectStub.doPost(Unknown Source)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.catalina.servlets.InvokerServlet.serveRequest(InvokerServlet.java:420)
at org.apache.catalina.servlets.InvokerServlet.doPost(InvokerServlet.java:170)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:873)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
at java.lang.Thread.run(Unknown Source)
com.genexus.webpanels.GXWebObjectStub.callExecute(Unknown Source)
com.genexus.webpanels.GXWebObjectStub.doPost(Unknown Source)
javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
org.apache.catalina.servlets.InvokerServlet.serveRequest(InvokerServlet.java:420)
org.apache.catalina.servlets.InvokerServlet.doPost(InvokerServlet.java:170)
javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
note The full stack trace of the root cause is available in the Apache Tomcat/5.5.28 logs.
Apache Tomcat/5.5.28
Suche auf einigen Websites, ich Vorschläge fanden die Anwendung des web.xml Hinzufügen des folgenden Tag in der <Servlet> Tag in tomcat-Verzeichnis bearbeiten /application-directory/WEB-INF/web.xml:
<multipart-config>
<max-file-size>1073741824</max-file-size>
<max-request-size>1073741824</max-request-size>
<file-size-threshold>0</file-size-threshold>
</multipart-config>
Und dann bearbeitet tomcat-Verzeichnis/conf/server.xml den Connector-Tag für Port 8080 wie folgt aussehen zu machen:
<Connector port="8080" maxHttpHeaderSize="4096" maxPostSize="1073741824"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="600000" disableUploadTimeout="true" />
Und dann Tomcat neu gestartet, aber es gibt mir den gleichen Fehler. Fehle ich noch etwas?
Vielen Dank im Voraus!
BEARBEITEN: Eigentlich ist meine Anwendung eine Java-Version, und das verwendete Steuerelement ist kein echtes "Uploadify", es hat die Klasse "Image" und ist mit einem BLOB-Feld in der Datenbank verknüpft. Ist es nicht der Fall, den Feldtyp im Transaktionsformular zu ändern?