View Full Version : [JAVA] Problemi di timeout con i web services
albertovw
16-11-2007, 09:40
Salve a tutti, come da titolo ho un problema di timeout.
Ho creato una applet java che gira sotto tomcat e che sfrutta axis.
In particolare ho due web services che vengono utilizzati dall'applet e per fortuna fanno quello che devono fare :)
il mio problema è che dopo circa 30 minuti che il brower è aperto, le chiamate ai web services non funzionano più, mentre l'applet continua a funzionare(per le altre cose che non sfruttano i web services, come la popolazione di tabelle prese dal database).
qualche anima pia sa dirmi a cosa potrebbe essere dovuto? non ho molta esperienza di axis e non dove mettere le mani :mc: :cry: :cry:
texerasmo
16-11-2007, 11:39
Tu fai domande ad axis di tipo sincrono.?
albertovw
16-11-2007, 13:26
sinceramente non so.. io ho fatto che quando si preme un tasto si genera un evento che fa la chiamata al web service.
io ho fatto l'applet, ed infatti lei funziona. Ci sono moltissime tab selezionabili ma due di queste sfruttano delle chiamate a web service fatte da un'altra persona. devo dire che funzionano tutte bene, però dopo circa 30 minuti quelle due singole tab smettono di funzionare :-( mentre il resto funziona bene come prima
ma se riavvio l'applet tornano a posto, però io ho bisogno che l'applet stia aperta anche diverse ore senza riavviarla. nei file web.xml c'erano dei session timeout e io li ho tolti, pensavo bastasse questo ma purtroppo no. e non riesco ad uscirne.
texerasmo
16-11-2007, 14:26
puoi provare ad umentare
//dovresti trovare un cosa del genere sdove chiamail il web-services
call.setTimeout(new Integer(timeout));
puoi postare il web.xml
albertovw
16-11-2007, 17:01
puoi provare ad umentare
//dovresti trovare un cosa del genere sdove chiamail il web-services
call.setTimeout(new Integer(timeout));
puoi postare il web.xml
purtroppo non trovo questo setTimeout da nessuna parte nel mio codice scritto in java :-(
ecco il web.xml di axis.
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE web-app (View Source for full doctype...)>
- <web-app>
<display-name>Apache-Axis</display-name>
- <env-entry>
<env-entry-name>LogDirectory</env-entry-name>
<env-entry-value>/var/log/tomcat5.5</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
- <env-entry>
.
.
.
.
- <listener>
<listener-class>org.apache.axis.transport.http.AxisHTTPSessionListener</listener-class>
<listener-class>it.lifecycle.MioContextListener</listener-class>
</listener>
- <context-param>
<param-name>DEV_WAIT_TIME</param-name>
<param-value>30000</param-value>
</context-param>
- <context-param>
<param-name>TEST_WAIT_TIME</param-name>
<param-value>4000</param-value>
</context-param>
- <context-param>
<param-name>MAX_DOWNLOAD_ERRORS</param-name>
<param-value>5</param-value>
</context-param>
- <context-param>
<param-name>DM_SCHEDULE_TIME</param-name>
<param-value>10:42:00</param-value>
</context-param>
- <context-param>
<param-name>TS_STAT_SCHED_TIME</param-name>
<param-value>08:00:00</param-value>
</context-param>
- <context-param>
<param-name>PTRACK_SCHED_TIME</param-name>
<param-value>01:00:00</param-value>
</context-param>
- <context-param>
<param-name>PTRACK_PERIOD_MS</param-name>
<param-value>86400000</param-value>
</context-param>
- <servlet>
<servlet-name>AxisServlet</servlet-name>
<display-name>Apache-Axis Servlet</display-name>
<servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class>
</servlet>
- <servlet>
<servlet-name>AdminServlet</servlet-name>
<display-name>Axis Admin Servlet</display-name>
<servlet-class>org.apache.axis.transport.http.AdminServlet</servlet-class>
<load-on-startup>100</load-on-startup>
</servlet>
- <servlet>
<servlet-name>SOAPMonitorService</servlet-name>
<display-name>SOAPMonitorService</display-name>
<servlet-class>org.apache.axis.monitor.SOAPMonitorService</servlet-class>
- <init-param>
<param-name>SOAPMonitorPort</param-name>
<param-value>5001</param-value>
</init-param>
<load-on-startup>100</load-on-startup>
</servlet>
- <servlet-mapping>
<servlet-name>AxisServlet</servlet-name>
<url-pattern>/servlet/AxisServlet</url-pattern>
</servlet-mapping>
- <servlet-mapping>
<servlet-name>AxisServlet</servlet-name>
<url-pattern>*.jws</url-pattern>
</servlet-mapping>
- <servlet-mapping>
<servlet-name>AxisServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
- <servlet-mapping>
<servlet-name>SOAPMonitorService</servlet-name>
<url-pattern>/SOAPMonitor</url-pattern>
</servlet-mapping>
- <!-- uncomment this if you want the admin servlet
-->
- <servlet-mapping>
<servlet-name>AdminServlet</servlet-name>
<url-pattern>/servlet/AdminServlet</url-pattern>
</servlet-mapping>
- <session-config>
- <!-- Default to 5 minute session timeouts
-->
<session-timeout>0</session-timeout>
</session-config>
- <!-- currently the W3C havent settled on a media type for WSDL;
http://www.w3.org/TR/2003/WD-wsdl12-20030303/#ietf-draft
for now we go with the basic 'it's XML' response
-->
- <mime-mapping>
<extension>wsdl</extension>
<mime-type>text/xml</mime-type>
</mime-mapping>
- <mime-mapping>
<extension>xsd</extension>
<mime-type>text/xml</mime-type>
</mime-mapping>
- <welcome-file-list id="WelcomeFileList">
<welcome-file>index.jsp</welcome-file>
<welcome-file>index.html</welcome-file>
<welcome-file>index.jws</welcome-file>
</welcome-file-list>
- <resource-ref>
<res-ref-name>jdbc/filemgr</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
- <resource-ref>
<res-ref-name>jdbc/devmon</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
- <resource-ref>
<res-ref-name>jdbc/devmgr</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
- <resource-ref>
<res-ref-name>jdbc/sellmgr</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
- <resource-ref>
<res-ref-name>jdbc/down</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
- <resource-ref>
<res-ref-name>jdbc/repmgr</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
- <resource-ref>
<res-ref-name>jdbc/ptracker</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</web-app>
texerasmo
19-11-2007, 09:38
<session-config>
- <!-- Default to 5 minute session timeouts
-->
<session-timeout>0</session-timeout>
</session-config>
puoi provare ad aumentare questo valore.
Non sono sicuro che il pb stia da queste parti.
Tu la vedi la classe che chiama axsis?
albertovw
19-11-2007, 10:36
<session-config>
- <!-- Default to 5 minute session timeouts
-->
<session-timeout>0</session-timeout>
</session-config>
puoi provare ad aumentare questo valore.
Non sono sicuro che il pb stia da queste parti.
Tu la vedi la classe che chiama axsis?
no non la vedo la classe che chiama axis, io ho una metodo che usa il web service di una classe importata come libreria (.jar), quindi mi limito a chiamarli.:muro: :muro: :muro:
anche aumentanto non cambia. quel valore "0" non so a che significhi... o meglio... non fa quello che dovrebbe, ho provato a metterlo a 0,1,60 ma sempre dopo 30 minuti si disconnette :-(
texerasmo
19-11-2007, 11:01
allora forse sta nella chiamata nel jar oppure il pb è altrove :(
call.setTimeout(new Integer(timeout));
Non puoi fare un procedura anche con ajax che fa un refresh dell'applet?
albertovw
19-11-2007, 11:40
allora forse sta nella chiamata nel jar oppure il pb è altrove :(
call.setTimeout(new Integer(timeout));
Non puoi fare un procedura anche con ajax che fa un refresh dell'applet?
purtroppo non so come fare, sai mica dove posso trovare un miniguida su ajax o su come fare un refresh dell'appet dopo ogni tot?
intanto provo a cercare nel a vedere nei sorgenti del .jar se trovo il setTimeout
grazie davvero!!
texerasmo
19-11-2007, 11:47
io ho sempre usato prototype
http://www.prototypejs.org/
spero che ti possa essere d'aiuto
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.