Cau,
nezapominate na klientovi volat na te HttpUrlConnection
connect() resp. disconnect()?
Mej se,
fil
From:
[EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of [EMAIL PROTECTED]
Sent: Tuesday, October 17, 2006
1:48 PM
To: Java
Subject: Re: pomíchaná vlákna
Ahoj, je to takto:
Kde
to máme pomíchané, to nevíme. Víme toto:
ODESÍLATEL:
public static HttpURLConnection post (
URL fo_url,
Document fo_xml
)
{
HttpURLConnection lo_connection; // konexe na server
try // pripoj se na server
{
// otevri konexi na server
lo_connection = (HttpURLConnection) fo_url.openConnection ();
lo_connection.setDoInput (true); // povol cteni
lo_connection.setDoOutput (true); // povol zapis
lo_connection.setUseCaches (false); // zakaz cache
lo_connection.setRequestMethod ("POST"); // budem
POSTovat
lo_connection.setRequestProperty ("Content-Type",
"text/xml; charset=UTF-8");
ByteArrayOutputStream lo_buf = new ByteArrayOutputStream ();
getXmlTransformer ().transform (new DOMSource (fo_xml),
new StreamResult (lo_buf));
bigLog.info ("Posilam stream: [\n" +
lo_buf.toString () + "\n]");
// tady je to ještě OK
OutputStream lo_out =
lo_connection.getOutputStream ();
lo_out.write (lo_buf.toByteArray ());
lo_out.close ();
}
SERVLET:
public void doPost (
HttpServletRequest fo_req, // I: HTTP request
HttpServletResponse fo_res // O: HTTP response
)
{
InputStream lo_in = fo_req.getInputStream (); // ziskej vstupni
stream
ByteArrayOutputStream lo_input = new
ByteArrayOutputStream ();
for (;;)
{
byte [] lan_buffer = new byte [2048];
int ln_bytesRead = lo_in.read (lan_buffer);
if (-1 == ln_bytesRead) break;
lo_input.write (lan_buffer, 0,
ln_bytesRead); // tady už to je
pomíchané
}
Dík
Katka
|
Martin Kuba
<[EMAIL PROTECTED]>
Sent
by: [EMAIL PROTECTED]
16.10.2006 16:57
|
|
Kdyz
mate vsechno v poradku, tak k problemum nemuze dochazet ;-)
Zkuste
pouzit TCPMon, viz
http://ws.apache.org/commons/tcpmon/tcpmontutorial.html
aspon poznate, jestli je chyba na klientovi nebo
na serveru.
Makub
[EMAIL PROTECTED]
wrote:
>
> ano, mame reentrantni metody,
kontrovali jsme to ;-(
>
> *On Mon, 16 Oct 2006 16:12:36 +0200,
Katerina.Molnarova wrote*
> > zdravím,
> > používáme toto nastavení:
> >
> > <Connector
port="8084" maxHttpHeaderSize="8192"
> >
* maxThreads="150" minSpareThreads="25"
> maxSpareThreads="75"*
> >
enableLookups="false" redirectPort="8443"
acceptCount="100"
> >
connectionTimeout="20000"
disableUploadTimeout="true" />
> >
> > Při zpracování se spouští až
300 vláken, ale kluci se tváří, že je
> to v pohodě.
> >
> >
>
> Mate urcite vsechny metody servletu
reentrantni?
> Pokud si dobre pamatuji, tak ve specifikaci
servlet API je, server
> vytvori singleton instanci tridy
servletu a potom ji pouziva z vice
> vlanek najednou.
> Takze pokud neni kod reentrantni mouhou se
dit zajimave veci.
>
> A jak poznate, ze je kod reentrantni:
> zejmena nepouzivate v metodach jine,
nez lokalni promene - "alokovane
> na zasobnik" (tj. nikoliv atributy
objektu)
>
>
> Lukas
>
--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Supercomputing Center Brno
Martin Kuba
Institute of Computer Science email: [EMAIL PROTECTED]
Masaryk University
http://www.ics.muni.cz/~makub/
Botanicka 68a, 60200 Brno, CZ mobil: +420-603-533775
--------------------------------------------------------------