Keresés

Részletes keresés

Artemis Entreri Creative Commons License 2012.02.06 0 0 5654

"rn" vagy "n". Az első Windows, a második Linux/Unix

Előzmény: Törölt nick (5653)
padisah Creative Commons License 2011.12.16 0 0 5652

valszeg triviális kérdés, előre is bocs miatta,

 

van egy jboss szerverem, amin a contextListener destroy eventje alatt szeretnék bizonyos memóriában tartott dolgokat az adatbázisba menteni, jdbc-vel

 

olyan hibát kapok, hogy a managed connection akármi amitől a connection-öket kapom már le van zárva, mire én a destroy eventből menteni szeretnék, és ehhez connection-t kérek

 

lehet az, hogy ez a koncepció elvi hibás és a destroy alatt már nincs connection pool, vagy nem biztos hogy van, vagy ezt valami teljesen más okozza (ami nem zárható ki, simán lehet, sőt majdnem biztosan van resource flow a dolog körül)

 

nem tudom úgy megfogalmazni a kérdést, hogy a google is értse és olyat dobjon ki ami releváns

bigzed Creative Commons License 2011.12.03 0 0 5651

Sajnos ugy tunik (meg azert probalkozom vele), hogy nem hibatlan a linken talalhato megoldas. Meg sem hivodik a feluldefinialt writeTo metodus a transfer soran. (egy beagyazott osztaly lehet a bunos, mas metodus dolgozik - nem a feluldefinialt writeTo- ha DataSource-szal peldanyositjak a classt.) A file persze foltoltodik ahogy kell, csak eppen nem hasznalja az emlitett eljarast.

 

Egyebkent en hasonloval probalkoztam, de a foltoltesnel, nem a letoltesnel. Ekkor annyiban tovabb bonyolodott a helyzet, hogy nem kuldhettem at a web service-on az alap DataHandler tipust, hanem a leszarmaztatott tipus kellett. (Hiszen a serveren nem tudtam volna os osztalyt castolni a gyerekre) Elegge homalyos ez a terulet nekem egyelore meg. Az sem vili, hogy megy at a DataHandler, ha az en leszarmaztatott tipusom eseten meg exception jon, hogy nincs parameter nelkuli konstruktora a tipusomnak. (Ugyanis a DatatHandler-nek sincs ilyen) Persze parameter nelkuli konstruktort is meglehetosen korulmenyes csinalni, ugynais az ososztalynak sincs ilyen. :)))))))  Ezt meg ki is kerultem valahogy egy nagyon csunya "trukkel", de persze igy sem mukodott a rendszer, mert a mime type-ok miatt jottek az exceptioniok.

Előzmény: Artemis Entreri (5647)
bigzed Creative Commons License 2011.12.03 0 0 5650

Azt gondolom, server oldalon nem nagyon kellene piszkalni semmit, mert kliens oldalon kell a progressbar. Tehat mellekes, hogy glassfish, vagy mas. 

"Akkor az a gond, hogy ennél csak magasabb szintű API-k állnak rendelkezésedre?"

Igen, valammi ilyesmirol van szo, szoval nem szeretnek http klienst irni. Letoltesnel be kell elozni a DataHandlert valahogy, peldaul a mar korabban emlitett leszarmaztatott osztallyal, foltoltesnel is valami hasonlo dolog lehet a nyero.

Előzmény: angyalhentes (5648)
bigzed Creative Commons License 2011.12.03 0 0 5649

Koszi a linket, ez nagyon hasznos lehet, mert en is pont ezen a modon szerettem volna megoldani a dolgot (felulirni a DataHandler egyik writeTo metodusat) hatha kiderul, hogy kellett volna jol csinalni.

Előzmény: Artemis Entreri (5647)
angyalhentes Creative Commons License 2011.12.02 0 0 5648

Értem, de valahogy nem látom a problémát, igaz, nem ismerem a Glassfisht, de tetszőleges HTTP kérésnél egyszerűen kiolvasom a headerből a file hosszát, aztán meg rántom be az adatokat a streamen, miközben egy másik szálon követem, hogy mennyit húztam már át.

 

Akkor az a gond, hogy ennél csak magasabb szintű API-k állnak rendelkezésedre?

Előzmény: bigzed (5646)
Artemis Entreri Creative Commons License 2011.12.02 0 0 5647
Előzmény: bigzed (5644)
bigzed Creative Commons License 2011.12.02 0 0 5646

Nezzuk e letoltest pl., serverrol kliensre:

 

Ez a kliens kod elso sora a letoltsenel:

DataHandler dh = fws.fileDownload("a.jpg");

 

Amikor a kov. sorra kerul a vezerles, a file mar teljes egeszeben letoltodott a mem-be a serverrol. Innentol fogva en mar csinalhatok amit akarok, semmit nem er az egesz.

 

 

Előzmény: angyalhentes (5645)
angyalhentes Creative Commons License 2011.12.02 0 0 5645

Most akkor az a probléma, hogy a stream nem flush()-olódik rendszeresen?

Előzmény: bigzed (5644)
bigzed Creative Commons License 2011.12.02 0 0 5644

Figy! Irtam en mar progressbaros feltoltot AS3-ban. Php volt szerveroldalon (semmi extra modul nem volt hozza, mert a M.....center webhostingjan volt). Egyszerre barmennyi file-t foltol, letolt (ha megszakad a letoltes, folytathato, ahol abbamaradt). De mindez meg semmi. Kozben kecskepornot neztem a bal szememmel. Nna?

 

Egyebkent kosz, hogy beleugatsz, mert pont ezert tettem fol a temat a forumra, hogy "beleugassanak" masok.

 

Az elozoeket osszevetve: Egy DataHandler (@XmlMimeType("application/octet-stream")-el annotalva ) tipust kuld web service-on keresztul a server. Megneztem a DataHandler forrasat, probaltam leszarmaztatni sajat class-t, es azt kuldeni a kliensnek. (DataHandlernek raadasul nincs ures konstruktora sem) elvereztem a mime tipusokon. (Nem tudom most megmutatni az exceptiont, mert nincs nalam a kod)

 

Mindezeket azert irom, mert nem az a helyzet - amit folyamatosan bizonygatni kell itt a forumon ahelyett, hogy a web service-rol lehetne beszelni - hogy arra nem veszem a faradsagot, hogy odabokjek a guglinak. Semmilyen talalat nincs web service-os file atvitelre, ahol lenne valamifele progressbar. Nekem viszont, mint nem tulzottan hozzaertonek, azok a talalatok, mint amilyet te is kuldtel nem nagyon segitenek (nem tudom hogyan kossem hozza az en DataHanler tipusomhoz). Nem akarok en itt kesz kodot latni. Valami olyan tipus kellene, amiben at tudom kuldeni a binarist MTOM-mal, es hozzaferest ad a file-atvitel soran, a tobbit mar megoldom en.

 

reszlet a datahandler egyik public void writeTo(OutputStream  os) throws IOException metodusabol:

 

while ((bytes_read = is.read(data)) > 0) {
  os.write(data, 0, bytes_read);
   }


Azt gondoltam szarmaztatok egy classt a DataHandler-bol, es ezt a metodust irom felul. Egylore ez nem jott ossze.

bigzed Creative Commons License 2011.12.02 0 0 5643

Na neeee! Ezt honnan veszed? Nem hiszem. Itt mindenki nagyon vicces kedveben van. :)

Előzmény: angyalhentes (5641)
Artemis Entreri Creative Commons License 2011.12.01 0 0 5642

Tényleg nem akarnék beleugatni, de a google nem csak a kecskepornó megtalálására jó.

 

http://stackoverflow.com/questions/254719/file-upload-with-java-with-progress-bar

 

És számtalan egyéb találat is van.....

angyalhentes Creative Commons License 2011.12.01 0 0 5641

Én nem értek php-hoz, de ha jól tudom, van egy külön modul, amivel ezt meg lehet csinálni.

bigzed Creative Commons License 2011.12.01 0 0 5640

"Oke. alapbol tenyleg igy van, de van php alatt megoldas, last amit irtam..."

Hogy kulon modullal meg lehet oldani, mar huszonotszor megirtuk mindketten, te is en is. Te leirod huszonhatodszor is. Nna most, en vettem a faradsagot, es megneztem a korabbi hozzaszolasaiadat, es nem ugy tunik, mintha nem tudnal haromig szamolni. Ergo itt valami ugratasrol van szo. En voltam lassu, mostmar vettem a lapot. :))))))))))))

 

 

Előzmény: crockl (5639)
crockl Creative Commons License 2011.12.01 0 0 5639

php-nal: ha legalabb elolvastad volna amit irtam, nem irnal ilyen butasagokat. Oke. alapbol tenyleg igy van, de van php alatt megoldas, last amit irtam...

Előzmény: bigzed (5638)
bigzed Creative Commons License 2011.12.01 0 0 5638

php-nel mi volt a problema? Az, hogy mikor hozzanyulhatnal a file-hoz a a serveren a kododdal, mar regen font van a teljes allomany a serveren. Progressbar kilove.

mi a problemam kliens oldalon (letoltesnel)? Hogy a web service hivasat megvalosito utasitast kovetoen, mar cs.szhetem az egeszet, mert lent van a memoriaban az egesz file.

DataHandler dh = fws.fileDownload("a.jpg");

(olyan butasagok jutottak az eszembe, hogy szalak, meghogy ha file-ba menne a dolog, akkor lehetne azzal jatszani) De gyanitom, hogy van ennel joval egyszerubb megoldas is.

Előzmény: crockl (5636)
bigzed Creative Commons License 2011.12.01 0 0 5637

magamat idezem: "(vannak ezt kikerulni kepes modulok "vagymik" php-hez, de errol szerintem egy webhostingos szolgaltatonal ne is almodjunk)"

 

teged: "Egyrészt, ha legalább egy micronnyi időt rászántál volna, és legalább rákeresnél, hogy ne érezd teljesen tudatlanul, akkor kapásból látod, hogy van megoldás php alatt is."

 

Ezt a kettot hogy hozod ossze?

 

Egyebkent ez az egyszeru megoldas szerinted, hogy kikunyizom a szolgaltatonal, hogy telepitse mar fol azt a modult? Most is mondom: alapbol nem tudsz progressbaros php-js kodot irni. Persze kulon modul telepitesevel igen. De ezt irtam mar korabban is. Ezert a fenti megjegyzesed azt mutatja nem olvastad el, amit irtam. Na ez kilove.

 

Igy nez ki a letoltos szerveroldali kod: ( a class annotalva @MTOM annotacioval)

@Override
    public @XmlMimeType("application/octet-stream") DataHandler fileDownload(String name) {
            File file = new File("/home/xxxxx/" + name);
            FileDataSource fd = new FileDataSource(file);
            DataHandler dh = new DataHandler(fd);
            return dh;
    }

 

Odaig jutottam hogy ehhez nem erdemes hozzanyulni. Visziont kliens oldalon van egy StreamingDataHandler-es lehetoseg.

Nem talaltam sehol a neten olyan cuccot ezen kivul, amibol kiindulhatnek. Egyaltalan nem tunik trivialisnak a dolog, fokeppen, hogy nem profi java-s vagyok.

 

kliens oldal:

public class WSConnectionFileTransfer {

    static {
        javax.net.ssl.HttpsURLConnection.setDefaultHostnameVerifier(
         ssl-es okossagok.....
            }
        });
        
        
        System.setProperty("javax.net.ssl.trustStore", "keystore.jks");
        System.setProperty("javax.net.ssl.trustStorePassword", "xxxxxxxx");
    }

    private final static String URL_PART = "http://1111.111.111.111:8080/";
   
    public final static String WS_NAMESPACE = "http://xxxx.hu/";
    private String felh;
    private String jelszo;
    private String namespace;

    public WSConnectionFileTransfer(String felh, String jelszo, String namespace) {
        this.felh = felh;
        this.jelszo = jelszo;
        this.namespace = namespace;
    }

        public <T> T getPort(Class<T> t, String wsdlLocation, String serviceName) throws Exception{
               URL url = new URL(URL_PART+wsdlLocation);
        

        QName qname = new QName(namespace, serviceName);

        Service service = Service.create(url, qname);
        T port = service.getPort(t);
        
        BindingProvider bp = (BindingProvider) port;
        bp.getRequestContext().put(BindingProvider.USERNAME_PROPERTY, felh);
        bp.getRequestContext().put(BindingProvider.PASSWORD_PROPERTY, jelszo);
        
        SOAPBinding binding = (SOAPBinding) bp.getBinding();
        binding.setMTOMEnabled(true);
        
        return port;
    }
}

 

itt a kliens oldali kod, az fws definicioja:

WSConnectionFileTransfer myFWSConnection = new WSConnectionFileTransfer(felh, jelszo, WSConnectionFileTransfer.WS_NAMESPACE);
FileTransferWSIF fws = myWSConnection.getPort(FileTransferWSIF.class, FileTransferWSIF.WSDL_FILE_NAME,  FileTransferWSIF.SERVICE_NAME);

 

chunk-os dolog erdekes lehet meg talan.

 

 

 

 

 

Előzmény: crockl (5636)
crockl Creative Commons License 2011.11.30 0 0 5636

Elhiszem hogy en vagyok a setét, ezzel gond nincs. De.

Egyrészt, ha legalább egy micronnyi időt rászántál volna, és legalább rákeresnél, hogy ne érezd teljesen tudatlanul, akkor kapásból látod, hogy van megoldás php alatt is. Ajánlom a google: php file upload with progressbar. Rohadt bonyolult keresési szöveg elismerem. Szóval apc támogatással van. Ergó ez kilőve.

 

A másik, leírtad a java kódot, amibe tulajdonképpen a megoldás is benne van, csak vélhetően úgy keresed a megoldást itt is mint a fenti esetben.

Igen, lehetséges mindkét általad leírt esetekben. A java-java példához, hogy javaslatott lehessen tenni, tudni kellene mi is van abban a fws.fileUpload hivásban. Esetleg ha belenéznél Te is biztos meglátnád, hol lehet megfogni, azt amikor az adatokat kiírja. Vagy ha pontosabb infó kell, akkor a webservice-be is kell egy hívást tenni, amivel le lehet kérdezni, mennyi ment át. Ez utóbbi megoldás hajaz a fenti php(perl,ruby,lofasz,....) - ajax-os megoldásra is.

De persze nem fontos megoldásban gondolkoznod, nyugodtan fikázz mindenki mást, az egyrészt tuti megoldás, másrészt jobban alszol tőle, még ha nem is jutsz előbbre.

Előzmény: bigzed (5635)
bigzed Creative Commons License 2011.11.30 0 0 5635

:))) azert ha nem itt a java forum lennenk, megkernelek mutasd mar meg azt az egyszeru php-javascriptes megoldast.

Előzmény: crockl (5633)
bigzed Creative Commons License 2011.11.30 0 0 5634

Crockl! Te most ugratsz?

 

"Van annak elvi akadalya (mint pl php-javascript parosnal) hogy egy web services-os file atvitelnel progressbarral megjelenitsem az atvitel allasat?"

Talan lehettem volna egyertelmubb igy:

"Van annak elvi akadalya, hogy egy web services-os file atvitelnel, AHOL A SERVER ES A KLIENS IS JAVA-s, progressbarral megjelenitsem az atvitel allasat?"

Mentsegemre: ezt itt egy java forum. (de mint mar mondtam, valoban lehettem volna egyertelmubb)

 

"speciel php-js -nel sincs akadalya :)"

Lehetett volna egyertelmubb a peldam is. Nem az volt a pelda peldaerteke, hogy vekonykliensrol van szo, hanem hogy annak ellenere, hogy te mast mondasz, igen is van akadalya egy php-ajax parosnal a progressbarnak. (Azt gondoltam, hogy ennek az oka "koztudott", ezert ertheto lesz, miert hozom ezt peldanak. Megint nem voltam eleg egyertelmu.)

 

"http://www.theserverside.com/news/1365153/HttpClient-and-FileUpload" ennek szerintem semmi koze az en kerdesemhez, de ez az en nemEgyertelmusegemnek a kovetkezmenye nyilvanvaloan.

 

"nezd meg a web service foltolto metodusa-t, hogyan lehet vele megoldani" Jo, megnezem, hogy hogy lehet vele megoldani. :)))))

"egeszitsd ki/ird at a web service foltolto metodusa-t, hogy tudja ezt." Jo, atirom, hogy tudja ezt. :))))

 

Azt gondolom, neked fogalmad sincs a dologrol, azert adsz ilyen hasznos tanacsot. Ez egyebken rendben is van, mert peldaul nekem sincs rola fogalmam, hogy lehet megoldani.

 

En ezert kerdeztem meg itt, a forumom, es te?

Ha megoldom (mert megoldom valahogy) folteszem ide, masok okulasara is.

Azert, koszi.

Előzmény: crockl (5633)
crockl Creative Commons License 2011.11.30 0 0 5633

kis kavar van nalad kliens-kliens temakorben talan. Eloszor php-ajax-ot emlegetsz peldanak, tehat szerver es webes bongeszo kommunikacioja, majd irsz egy peldat egy java progira mint vastag kliens. Talald ki mit akarsz eloszor is.

Ha ez utobbi vastag klienses, akkor nezd meg a web service foltolto metodusa-t, hogyan lehet vele megoldani a kijelzest feltoltes allapotarol, vagy egeszitsd ki/ird at a web service foltolto metodusa-t, hogy tudja ezt.

Előzmény: bigzed (5632)
bigzed Creative Commons License 2011.11.29 0 0 5632

igy nez ki a kliensoldali, foltolto kod:

File file = new File("c:\jasperReports.pdf");
FileDataSource fd = new FileDataSource(file);
DataHandler dh = new DataHandler(fd);
fws.fileUpload("jasperReports.pdf", dh); //itt fsw.fileUpload a web service foltolto metodusa

 

ez pedig a letoltes:

 

DataHandler dh = fws.fileDownload("a.jpg"); // elkerem a web service-tol a file-t
File file = new File("e:\xxxx\" + "a.jpg");
OutputStream fos = new FileOutputStream(file);
dh.writeTo(fos);
fos.close();

Előzmény: bigzed (5631)
bigzed Creative Commons License 2011.11.29 0 0 5631

Szamomra az a kerdes, mert azt nem tudom, hogy megoldhato-e. Azert kerdeztem ezt, mert evvel kapcsolatban vannak ketelyein. Az vilagos, hogy ha kliensoldalon folszeletelem a filet, akkor tudok egyfajta progressbart varazsolni a proceduraba, bele is kezdenek ebbe a kisse korulmenyes valtozat lekodolasaba, ha "bebizonyosodna" hogy egyszerubben nem oldhato meg.

 

En ott akadtam el, hogy csinaltoam egy MTOM-os web service-t, amivel kivaloan lehet file-okat foltolteni, letolteni. (egyebkent vastagkliensrol van szo, es ssl-es basic autentikacios mizeria van benne, de ez talan mellekes is) Itt jott a kepbe, hogy kellene progressbar.

 

Megnezem a linket, amit kuldtel, koszi.

Előzmény: crockl (5630)
crockl Creative Commons License 2011.11.29 0 0 5630

Nem az a kerdes, hogy megoldhato-e, mert viszonylag egyszeru. A kerdes az, Te hol akadtal el vele? Az nem derul ki, folyton csak azt kerdezed ilyet csinalt-e mar valaki :) Az a kerdes, hogy Te elkezdted, hol akadtal el?

Ha meg el sem kezdted, akkor mond azt. Itt van egy tema kezdo: http://www.theserverside.com/news/1365153/HttpClient-and-FileUpload

Előzmény: bigzed (5629)
bigzed Creative Commons License 2011.11.29 0 0 5629

ez eleg off, de szerintem php-ajax-nal azert van nemi akadaly. Eloszor is, hogy amig a superglobalisok nincsenek meg , addig nem fersz hozza semmihez a serveren, $files[] (vagy mi a turo volt a phpnel ez) pedig superglobalis. Innentol bukik az egesz, mert mire megmukkanna a php-s kodod, mar regen font van a file. Kliens oldalon a javascripttel meg nem lehet szeletekben folkukdeni a file-t. (vannak ezt kikerulni kepes modulok "vagymik" php-hez, de errol szerintem egy webhostingos szolgaltatonal ne is almodjunk). Flash-php az mar mas, olyat csinaltam mar. Szimultan tetszoleges mennyisegu filet fol lehet nyomni. (progressbarral, savszelesseg kijelzessel, stb) (bar szerveroldalon ott is eleg sok buktato van.)

 

Tehat anelkul, hogy folszeletelnem a filet, megoldhato-e javaban a progressbaros web service-s fol/le toltes? Csinalt valaki ilyet mar? (gugliban nem talaltam csak .NET-es cuccot)

 

 

Előzmény: crockl (5628)
crockl Creative Commons License 2011.11.28 0 0 5628

speciel php-js -nel sincs akadalya :) Es termeszetesen java-cliens-nel sincs, sot, picit egyszerubb is.

 

Előzmény: bigzed (5627)
bigzed Creative Commons License 2011.11.28 0 0 5627

Van annak elvi akadalya (mint pl php-javascript parosnal) hogy egy web services-os file atvitelnel progressbarral megjelenitsem az atvitel allasat?

(anelkul pl. hogy kisebb darabora vagnam a file-t es igy kuldenem at az eteren, es a darabok szamabol es mertebol kalkulalnam a progressabrhoz szukseges ertekeket)

Előzmény: bigzed (5626)
bigzed Creative Commons License 2011.11.28 0 0 5626

meg nem felejtettem el a glassfisht :)

5 masodpercenkent pollozza a mysql servert. Mi lehet ez? Lattatok mar ilyet? Eleg idegesito, mert a mysql server logjat is teleszorja. Mire kellhet ez a glassfishnek?

 

111128 11:57:35     3038 Connect    egyUser@192.168.10.201 on egyTabla
         3038 Query    /* mysql-connector-java-5.1.13 ( Revision: ${bzr.revision-id} ) */SHOW VARIABLES WHERE Variable_name ='language' OR Variable_name = 'net_write_timeout' OR Variable_name = 'interactive_timeout' OR Variable_name = 'wait_timeout' OR Variable_name = 'character_set_client' OR Variable_name = 'character_set_connection' OR Variable_name = 'character_set' OR Variable_name = 'character_set_server' OR Variable_name = 'tx_isolation' OR Variable_name = 'transaction_isolation' OR Variable_name = 'character_set_results' OR Variable_name = 'timezone' OR Variable_name = 'time_zone' OR Variable_name = 'system_time_zone' OR Variable_name = 'lower_case_table_names' OR Variable_name = 'max_allowed_packet' OR Variable_name = 'net_buffer_length' OR Variable_name = 'sql_mode' OR Variable_name = 'query_cache_type' OR Variable_name = 'query_cache_size' OR Variable_name = 'init_connect'
         3038 Query    /* mysql-connector-java-5.1.13 ( Revision: ${bzr.revision-id} ) */SELECT @@session.auto_increment_increment
         3038 Query    SHOW COLLATION
         3038 Query    SET NAMES latin1
         3038 Query    SET character_set_results = NULL
         3038 Query    SET autocommit=1
         3038 Query    SET sql_mode='STRICT_TRANS_TABLES'

Előzmény: Artemis Entreri (5625)
Artemis Entreri Creative Commons License 2011.11.18 0 0 5625

Akkor glassfish felejtős :) Annyi minden más van még :)

Előzmény: bigzed (5623)
Hírleső Creative Commons License 2011.11.14 0 0 5624

Sziasztok!

 

egy könnyű munkalehetőség: http://www.easyjob.hu/munka/3226/Program%20k%C3%A9sz%C3%ADt%C3%A9s

 

csapjatok le rá ;)

Ha kedveled azért, ha nem azért nyomj egy lájkot a Fórumért!