- Fórumok
- Szoftverfejlesztés
- Java programozás
- (kiemelt téma)
- One mobilszolgáltatások
- Fotók, videók mobillal
- Samsung Galaxy S25 - végre van kicsi!
- Honor Magic7 Pro - kifinomult, költséges képalkotás
- Android alkalmazások - szoftver kibeszélő topik
- Xiaomi 17 - még mindig tart
- Google Pixel topik
- Huawei Watch Fit 5 Pro - jó forma
- A Sony bemutatta eddigi legjobb és legdrágább zajszűrős fejhallgatóját
- Szívós, szép és kitartó az új OnePlus óra
-
Fórumok
Mobilarena - mobil fórumok
Okostelefonok Mobiltelefonok Okosórák Autó+mobil Üzlet és Szolgáltatások Mobilalkalmazások Tartozékok, egyebek Mobilarena blogokPROHARDVER! - hardver fórumok
Notebookok TV & Audió Digitális fényképezés Alaplapok, chipsetek, memóriák Processzorok, tuning Hűtés, házak, tápok, modding Videokártyák Monitorok Adattárolás Multimédia, életmód, 3D nyomtatás Tabletek, E-bookok Nyomtatók, szkennerek PC, mini PC, barebone, szerver Beviteli eszközök Egyéb hardverek PROHARDVER! BlogokIT café - infotech fórumok
Infotech Hálózat, szolgáltatók OS, alkalmazások SzoftverfejlesztésGAMEPOD - játék fórumok
PC játékok Konzol játékok MobiljátékokLOGOUT - lépj ki, lépj be!
LOGOUT reakciók Monologoszféra FototrendFÁRADT GŐZ - közösségi tér szinte bármiről
Tudomány, oktatás Sport, életmód, utazás, egészség Kultúra, művészet, média Gazdaság, jog Technika, hobbi, otthon Társadalom, közélet Egyéb Lokál PROHARDVER! interaktív
Új hozzászólás Aktív témák
-
Soak
veterán
Azt vagod, hogy itt meg mindig csak a szerver oldali kod megy tomcaten, ugye?
Gwtprojectes link :
This means that you can continue to debug your client-side code in Java as usual, but all server-side requests will be served by your web or application server of choice.
-
TBG
senior tag
-
Ragnar95
félisten
-
Ragnar95
félisten
-
TBG
senior tag
Ah, annyira rühellem, hogy harapófogóval kell kihúzni belőled mindent.
Tisztázzuk, olyan Java kód nincs, ami a megakadályozza, hogy kihúzzák a pendrive-ot. Azt tudod csinálni, ahogy korábban is mondtam, hogy az /mnt/pendrive könyvtárat csekkolod...ha már nem létezik, akkor le van választva....És ha a mentési processz még nem futott le, de a meghajtó le van választva ( nincs meg a könyvtár, nem tudsz rá írni, stb) akkor egy hibát dobsz. Ennyi.
-
n00n
őstag
De ez egy folyamatosan futó szerver. Amihez odasétálnak rádugnak egy pendrive-ot, majd utána lehúzzák. Ezért kellene a programból megoldani a mountot és az umountot.
SZERK: Nem rendesen csatolja le néha, és olyankor lehúzza az éppen mentő kolléga és az eléggé nem tesz neki jót.
A következő kód lehet, hogy rossz:
java.lang.Runtime runtime = java.lang.Runtime.getRuntime();
java.lang.Process process= runtime.exec("sudo umount /mnt/pendrive");
process.waitFor(); -
TBG
senior tag
-
Karma
félisten
Amellett hogy se a GC-re, se a teljesítményre nincs hatással, még csak nem is best practice.
Legalábbis vannak ellentétes nézetek, amik szintén best practice-nek gondolják hogy a változódeklaráció a lehető legközelebbi scope-ban legyen a felhasználáshoz. Én mondjuk pont az utóbbit vallom.
Hatása elméletben sincs, mert a stream objektum ugyanakkor veszíti el a hard referenciáját mindkét esetben, ergo a GC semmi különbséget nem lát. De a gyakorlatban se, mert a JVM a metódusba belépéskor foglal le minden stack változót a scope-tól függetlenül, azaz a bytecode ugyanaz lesz.
Épp csak fordításidőben szennyezettebb a lokális névtér.
-
WonderCSabo
félisten
Nem az objektumok számáról van szó, hanem arról, hogy ezek mikor, milyen intenzitással gc-ződnek. Ezért is vetettem fel, hogy mekkora is az a heap méret. Te csak egyetlen felvetésembe kötöttél bele, ami jogos is lehet, de mi van a többivel? Vagy említhetném az esetleges os szintű problémákat is. Nem egymással van vitánk, a problémát próbáljuk megoldani, nem?
Semmi vitám nincs veled, csak csodálkoztam, hogy mire gondolsz, és azért kötöttem bele mert érdekel ez az "altéma".

A bytebuffer tömböt tényleg ki lehetne szedni, az úgyis mindig felülíródik, felesleges mindig létrehozni.
A finally is teljesen jogos, de itt valszeg nem ez lesz a probléma, mindenesetre érdemes ezt a konvenciót követni. Vagy ha van Java 7-re lehetőség, akkor még jobb a try-with-resources blokk.Nem tudom mennyi fájlról van szó és mekkora méretről, érdemes kipróbálni másik OS-n is, egyébként érdekes a probléma, mert kvázi triviális dologról van szó, ami ráadásul rohadtul gyakori művelet is.
Ami még most eszembe jutott, hogy meg kéne próbálni NIO2 fájlmásolással, lehet, hogy segít rajta, és a kód is rohadtul leegyszerűsödik. Persze ez is csak Java 7-el.
-
modder
aktív tag
az csak egy referencia, semmit nem számít, hol deklarálod. Akkor lenne értelme, ha az egész streamet újra fel lehetne használni.
n00n:
meg kellene nézni, rendesen bezáródnak-e a filehandlerek.
a close()-okat pedig mindig finally blokkba.pl a bytebuffer tömböd tényleg ki lehetne szedni a cikluson kívülre, az lehet, sokat segítene.
-
WonderCSabo
félisten
Mégis hogyan számíthat? Nagyon érdekelne, amikor pont ugyanannyi objektum jön ugyanott létre.
-
WonderCSabo
félisten
Ez semmiben sem segíti jobban a GC-t, mintha a cikluson belül deklarálnád a változót. Így is, úgy is ugyanannyi új objektum születik, az, hogy létre kell hozni egy új pointert vagy sem miden iteráció alatt, nem sokat vesz a latba.
-
WonderCSabo
félisten
Mármint így?:
Stream s = null;
for(...) {
s = new ...
...
} -
WonderCSabo
félisten
Próbáld meg a cikluson kívül deklarálni a stream-eket..tipp...
Annak nem lenne sok értelme, hiszen a ciklusban pont hogy különböző fájlokat másol különböző desztinációkra, nem mindig ugyanazt, gondolom.
-
n00n
őstag
-
pakriksz
őstag
de nem tudtam, arra a keresőkifejezésre amire rákerestem csak a szemetet okádta a google (egyre több az ilyen, ha valamiben benne van egy népszerű szó, akkor nem érdekli a többi, a legnépszerűbb keresés eredményét fogja az arcomba tolni), pl az hogy hogyan lehet(ne) beállítani a küldésküszöböt, már ha úgy működne ahogy kéne. De azt már tudtam, azt nem tudtam miért nem működik úgy ahogy kéne...
-
xTc
aktív tag
Maximálisan egyetértek veled, de néha a triviális felett is elsiklik az ember. Saját magamból indulok ki.
-
Superhun
addikt
-
pakriksz
őstag
ezen már rég túlvagyunk, és nincs is szükség az ott írtakra...
most ott tartunk hogy fatal-on és error-on kívül miért nem hajlandó mást is küldeni, ha egyszer a threshold info-n van. -
pakriksz
őstag
igen
log4j.rootLogger=DEBUG, stdout, file, mail
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{HH:mm:ss} %-5p [%t]: %m%n
log4j.appender.stdout.Threshold=TRACE
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=F:\\logging.log
log4j.appender.file.MaxFileSize=1MB
log4j.appender.file.MaxBackupIndex=1
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
log4j.appender.file.Threshold=INFO
log4j.appender.mail=org.apache.log4j.net.SMTPAppender
log4j.appender.mail.BufferSize=1
log4j.appender.mail.SMTPHost=smtp.gmail.com
log4j.appender.mail.SMTPUsername=#####################
log4j.appender.mail.SMTPPassword=XXXXXXXXXXXXXXXXXXXXXX
log4j.appender.mail.SMTPPort=465
log4j.appender.mail.SMTPProtocol=smtps
log4j.appender.mail.From=##########################
log4j.appender.mail.To=##########################
log4j.appender.mail.Subject=Hiba
log4j.appender.mail.layout=org.apache.log4j.PatternLayout
log4j.appender.mail.layout.ConversionPattern=%d{HH:mm:ss} %-5p [%t]: %m%n
log4j.appender.mail.Threshold=INFO -
kemkriszt98
tag
-
kemkriszt98
tag
-
Superhun
addikt
Feleslegesen bonyolítaná túl ezzel az implementációt. A referencia szerinti összehasonlítás nagyjából az ID alapú összehasonlításhoz hasonlítható, ráadásul ezzel nem is lehet mellényúlni (ha netán véletlen két ugyan olyan id-jű textfield lenne a tömbben).
-
n0rbert0
senior tag
-
modder
aktív tag
Idézek a saját hozzászólásomból:
Nyilvánvalóan nem hiba az ArrayList<?> deklaráció, de a statikus típus interfészként deklarálása good practice. Az implementáció egyszerű változtathatósága miatt. Nem is az osztályváltozókban van komolyabb jelentősége, hanem a getter/setter metódusoknál.
És még valami. Amíg magadnak vagy egy kvázi zárt csapatban dolgozol, addig nincs ezzel gond. Amint pl. API-t kezdesz írni, akkor csak interface. És a doksiban kell leírni a runtime típust.
Oké, de a vitatott kódban az ArrayList pont csak az objektum belső használatára van.
-
modder
aktív tag
Ezt a témát pár száz hsz-sal korábban már végigjártuk, és én még mindig tartom magam ahhoz, hogy osztályon belül nyugodtan lehet konkrét implementációt deklarálni pl.: ArrayList<T>. Azért van ennyiféle implementáció, mert mindegyik másra jó. Semmi haszna nem lenne, ha az ember nem tudná kihasználni a lehetőségeit.
Ugyanakkor a burkoló osztálynak nem szabad visszaadnia konkrét List<T> implementációt. ahhoz nagyon jó ok kell.
-
WonderCSabo
félisten
Igen, valóban good practice, és általában én is így használom, de semmiképpen nem rossz az ellentettje sem. Pl, ha sima List-et használsz, és nem tudod a statikus típust, akkor olyan dolgokba futhatsz bele, mint pl. get(index) hívás, ami ArrayList-en konstans idejű, de LinkedList-en lineáris stb.
-
fatal`
titán
-
fatal`
titán
De van neki néhány, bár ezeket ritkán használjuk (pl. trimToSize, ensureCapacity és még ezenkívül is van, amit most hírtelen nem találok). Plusz, ha jól tudom nem mindegyik lista szeralizálható.
-
fatal`
titán
-
Superhun
addikt
-
WonderCSabo
félisten
Sztem ez egyáltalán nem hiba, ha ArrayList-et használ statikus típusként. Miért is lenne az? Az viszont sokkal nagyobb probléma, hogy nem használ generikus paramétereket.
-
artiny
őstag
Tehát. Itt ez a remek kód.
try {
rs.moveToInsertRow();
rs.updateInt("ID", newID);
rs.updateString("First_Name", first);
rs.updateString("Last_Name", last);
rs.updateString("Job_Title", job);
rs.insertRow();
stmt.close();
rs.close();
stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_UPDATABLE);
String sql = "SELECT * FROM Workers";
rs = stmt.executeQuery(sql);Ehelyett inkább: (nem teljes és nem is ismerem a táblastruktúrát)
String insertSql = "INSERT INTO Workers(id,firstname) VALUES("+newID+","'"+firs+"'");
stmt.executeUpdate(insertSql);helo.
ilyen hibat ir ki, az adatbazis szerkezete lathato a kepen es a hiba is amit kiir a netbeans,pirossal jelez a kodreszre....
http://i.imgur.com/XfOyBv2.png
megj.: az adatbazist ez alapjan lett: http://www.homeandlearn.co.uk/java/java_and_databases.html
-
fatal`
titán
-
MrSealRD
veterán
-
modder
aktív tag
Amúgy bennem felmerült a kérdés, hogy az URL-nek a domain után következő elérési út szegmenseinek
/ize/bigyo/mappa/kiskutya.html
tehát az ize, bigyo, mappa, kiskutya.html-nek is url encode-oltnak kell-e vajon lennie külön-külön? -
pakriksz
őstag
Igen, éppen ezért akartam formázni. Nem véletlen hogy stringben volt

De erre láthatóan nincs automata megoldás, csak a replace. replace(" ", "%20"); -
Karma
félisten
-
pakriksz
őstag
-
pakriksz
őstag
Ez viszont vicces: az URL osztály nem kódolja rendesen URL-é a beadott a stringet. Openstreamnél simán elküldi a spacet pedig valami %20-al kéne helyettesítenie, aztán a szerver dobja is 400-as hibát rá.... Nagyon jó, még egy replace(" ","%20") gányolás....
http://docs.oracle.com/javase/1.5.0/docs/api/java/net/URLEncoder.html
Ismerem, ez mégtöbb hibát rak az url-be, azt is elrontja a mi jó volt, nem jó semmire.
-
artiny
őstag
A metódus elé tegyél egy annotációt:
@SuppressWarnings("unchecked")
public String toXml() {
StringBuilder xml = new StringBuilder();
if ( this.emp!=null && !this.emp.isEmpty() ) {
for (Employee employee: this.emp) {
// employee to xml, ahogy tetszik.
// TransformerFactory tf = TransformerFactory.newInstance();
// Transformer t = tf.newTransformer();
// DOMSource source = new DOMSource(doc);
// StreamResult result = new StreamResult(new File("xmldoc.xml"));
// t.transform(source, result);
// return result.toString();
xml.append(employee.toXml());
}
}
return xml.toString();
}orej.class ben a toXml metodus igy nez ki:
@SuppressWarnings("unchecked")
public String toXml() {
StringBuilder xml = new StringBuilder();
if ( this.emp!=null && !this.emp.isEmpty() ) {
for (Employee employee: this.emp) {
xml.append(employee.toXml());
}
}
return xml.toString();
}meg igy is jelzett a Employee.class ben a toXml nel a getBuffernál ,hogy:
StringBuffer sb = outWriter .getBuffer();
symbol: method getBuffer()
location: variable outWriter of type WriterTransformerFactory tf = TransformerFactory.newInstance();
Transformer t = tf.newTransformer();
DOMSource source = new DOMSource(doc);
StringWriter outWriter = new StringWriter();
//Writer outWriter = new StringWriter(); ha ezt a sort lecserltem ami most folotte van sor akkkor eltunt a hiba a getBuffer nál,de mikor lefutattom a programot nem hoz letre semmit..
a (new File("xmldoc.xml")) - valami hasonlo kene neki,hogy megadni hova mit mentsen .....
StreamResult result = new StreamResult( outWriter );
t.transform(source, result);
StringBuffer sb = outWriter .getBuffer();
return sb.toString();
} catch (Exception e) {
System.out.println(e.getMessage());
}
return null;
} -
modder
aktív tag
Nekem is tetszik, bár nem kedvelem az ötletet, hogy a GUI-t programkódban állítsuk elő, a deklaratív, JSF-es megoldás nekem jobban tetszik ebből a szempontból.
Van deklaratív lehetőség is a GWT-ben
UIBinder.Egyeébként ha GWT, akkor csak a sztenderd GWT...minden keretrendszer drámaian rontja a teljesítményt, ráadásul mindegyik bevezeti a saját kis megoldásait, amitől már teljes az inkompatibilitás.
Jól hangzik. Mekkora kereslet van GWT programozókra?
-
modder
aktív tag
Egyetértek.
Ezért hanyagolom én speciel a JSF-et többek között. DOM fa nagyság és third party library-k

Richfacessel voltak nagyon rossz tapasztalatok...aztán lett GWT és JSP..ahogy éppen az adott feladat megkívánja.Persze, a GWT-ről lehetne komoly vitát nyitni, de okosan kell használni és akkor nincs gond

GWT-ről azt hallottam, hogy nem annyira intuitív a használata, amin a Vaadin sokat segít. Nekem is tetszik, bár nem kedvelem az ötletet, hogy a GUI-t programkódban állítsuk elő, a deklaratív, JSF-es megoldás nekem jobban tetszik ebből a szempontból. Viszont Vaadinban nekem is tetszik, hogy már-már desktop szerű guit lehet létrehozni.
-
modder
aktív tag
A nagy DOM sajnos a kódgenerálás hátulütője, de szerintem nem akkora probléma. Egy üzleti alkalmazásnál sokkal fontosabb a funkcionalitás és a konzisztens "look-and-feel". Pixeltologatás kevésbé. Mennyit lehetne nyerni vele, ha kézzel állítaná össze valaki a html kódot, az eredeti DOM 30%-a lenne elhagyható? A böngészők gyorsak, a szerverek gyorsak, a hálózati forgalom GZip tömörítéssel megy, a renderelésben pár ms-et nyer vele az ember.
A probéma akkor van, amikor generált layoutba bele kell nyúlni saját CSS-sel, ahogy mondtad. Pl. icefaces minden köré <span> taget generál, így sokszor az xhtml-be tett style vagy styleClass elem nem azt a DOM elemet fogja változtatni, amire számítok, szóval ja, ebben igazat adok. Csak azt mondom, hogy ez nem a legfőbb probléma. -- bár annak, aki csak ezt csinálja lehet, hogy az

Egyébként pedig szerintem, ha egy egyedi megjelenésű oldalt kell készíteni, akkor csak az alap <h:> tagek és sima xhtml kód jöhet szóba a faceletben. Ennek egyébként megvan az az előnye is, hogy nem kell fogni a fejünket, amikor fejlesztés közepén derül ki, hogy bugos egy 3rd party komponens library egyik eleme

-
artiny
őstag
Ezt próbáld meg!
TransformerFactory tf = TransformerFactory.newInstance();
Transformer t = tf.newTransformer();
DOMSource source = new DOMSource(doc);
Writer outWriter = new StringWriter();
StreamResult result = new StreamResult( outWriter );
t.transform(source, result);
StringBuffer sb = outWriter .getBuffer();
return sb.toString();Most a getBuffer él hibat ir
symbol: method getBuffer()
location: variable outWriter of type Writer
Note: C:\Users\KEX\Desktop\BikeShop FINALE\src\bikeshop\orej.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
1 error
C:\Users\KEX\Desktop\BikeShop FINALE\nbproject\build-impl.xml:926: The following error occurred while executing this line:
C:\Users\KEX\Desktop\BikeShop FINALE\nbproject\build-impl.xml:268: Compile failed; see the compiler error output for details.
BUILD FAILED (total time: 0 seconds -
artiny
őstag
Hmm. Azért dob java.lang.UnsupportedOperationException: Not supported yet. hibát, mert a toXml() metódusod ezt tartalmazza:
Object toXml() {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}Tehát qrva jól működik.
DE!! Ez csak egy generált kód..neked ezt kell tartalommal feltöltened!
Valami ilyesmivel:public String toXml() {
String startElement="<element>";
String endElement="</element>";
String startNameElement = " <name>";
String endNameElement = " </name>";
return startElement+"\n"+startNameElement+this.name+endNameElement+"\n"+endElement;
}Persze, nem ilyen primitív módszerekkel, hanem pl. Sax,DOM...akármi...
Ilyen toXml metodus hianyzott az Employee osztalybol?
https://gist.github.com/anonymous/5453407
mar latom at kell meg irni.... a return statement
es a public string toXml -t
vagy marathat így ezzel a public void toXML(){ es ilyenkor nincs public statement,....
de a xml.append(employee.toXml()); meg mindig piros felkiatojel

-
artiny
őstag
orej - array akart lenni ( angolul ejtve)
http://i.imgur.com/9qXHBwL.jpg sajna nalam ez jott elo
alt+enter -el azt a tippet adta hogy keszit egy bikeshop.emloyee ben egy toXml metodust... ramentem es eltunt a hiba.
ez a metodus keszit egy xml-t... ha meghivom a mainben?
orej.toXml(); így?
-
Soak
veterán
-
artiny
őstag
Gyakorlatilag a Java fejlesztésnek az egyik alapja, hogy addig nem kell semmit megírni, amíg meg nem győződsz róla, hogy nem írta-e meg valaki más már

Szerintem olyat alapból nem lehet. Az ArrayList egy konténer, ami különféle objektumokat tárol. Az objektumokhoz lehet XML parsert/marshallert/serializert/ahogy tetszik írni, ami végigmegy az ArrayList elemein és azokat egy XML-be írja bele. Mondjuk ha az ArrayList-ben String-ek vannak:
<element>
<value>egy</value>
</element>
<element>
<value>ketto</value>
</element>
<element>
<value>harom</value>
</element>
<element>
<value>negy</value>
</element>Ahol is az <element></element> reprezentál 1 darab ArrayList elemet. Azt, hogy miként rakod XML-be, a saját XML makered szabályozza.
Melyik osztalyba kell megirni az xml makertt?
ehhez az osztalyhoz van kapcsolva az ArrayList:
https://gist.github.com/anonymous/5452699Ez pedig az arraylistes:
https://gist.github.com/anonymous/5452091
De viszont arraylisthez hogyan kell osszekapcsolni az xml maker,...meg szamotse fogadott el nekem csak szoveget.

-
artiny
őstag
ertem,koszi ...sajnos ilyet nem hiszem hogy lehetne hasznalni. bar nem mondtak hogy ilyen is letezik...
erre tudod a valaszt,hogy:
Ha ArrayList hez van rendelve az xml maker ,akkor ha tobb elemet akarok menteni, az mar kiirodna a vegso xml fajlban?
Olyat lehet egyaltalan hogy arraylisthez rendelni az xml makert?
Vagy pedig abban az osztalyban kell az xml maker megirni,amihez van fuzve a ArrayListet tartalmazo osztaly?
(hogy azutan kiirja ha tobb elemet hozok letre.... akkor az xml fajlban is megjelenik mjad) -
artiny
őstag
Ezt az Xstream -et hivjak külső libnek?
Nem tudom hogy ilyet hasznalhatunk e...
Abban az osztalyban ahol van az xml maker,hogyan lessz - hogyan kell atirni hogy az ...ArrayList -ből kapja az adatokat?
Ha ArrayList hez van rendelve az xml maker ,akkor ha tobb elemet akarok menteni, az mar kiirodna a vegso xml fajlban?
-
artiny
őstag
-
artiny
őstag
Szóval, az, hogy a Netbeans-ben hogy kell csinálni, nagyon rossz irány. Netbeans-tól függetlenül is működne kell az ilyen dolgoknak.
Ha van SQL scripted, akkor az egyik irány lehet, hogy felparseolod, mondjuk ';' delimiterrel, majd egyesével szépen lefuttatod az SQL parancsokat, amik benne vannak.
Pl:
CREATE DATABASE test;
CREATE TABLE table1(id int, name varchar(12));Ez konkrétan két utasítást fog egymás után végrehajtani. Nyilvánvalóan adatbázisszervertől függ a pontos szintaktika.
Aztán ha megvan, akkor lehet mindenféle Java-s okosságokat csinálni.
Itt van példakód is: [link]
koszi atnezem a linket.
ezt talaltam : http://www.youtube.com/watch?v=HEVP5u9MXWw
de itt nem hasznaljak a services modszert. itt meglevo adatbazist importal majd...20:00 korul viszont van egy masik modszer amit bemutat az illeto, az mar jobban hasonlit ahhoz amit csinaltunk.
-
Lacces
őstag
Oks, köszi.

Egy másik kérdés, mindenkinek:
Melyik webes frameworkot ajánlanátok kisebb weboldalak létrehozására? Eredetileg ezért választottam a Grails-t, és esetleg gyors tanulási lehetőséggel bír, vagy sokan használják
.
Spring-et ide túlnagynak érzem. (Pl.: egyszerű blog oldal) Vagy inkább sima JavaEE-t használjon az ember? -
artiny
őstag
-
pakriksz
őstag
-
modder
aktív tag
Lehet, hogy igazad van. Arra viszont jól emlékszem, hogy a Spring developerek, akikkel eddig találkoztam, mind melegek voltak. EGYTŐL-EGYIG!

-
modder
aktív tag
Struts2 vs Spring? Nem összehasonlíthatóak

Szerintem a Spring lassan platform lesz
Ez a lényeges mondat. Annyi módosítással, hogy szerintem már az!

Miért Spring? Azért, mert nem kell hozzá applikációs szerver. Egy sima Tomcat/Jetty-vel is simán elszalad, ami egy EE alkalmazásról nem mondható el. Sőt, egy jól megírt Spring alkalmazás fut servlet konténerben és applikációs szerverben is. Mindamellett ugyanazt a funkcionalitást nyújtja, mint egy EE konténer (jó, dinamikus kontext nincs, de embert nem láttam még, aki használta volna)
Nem akarok flame-t nyitni!!
Pedig kihúzod a gyufát!

Az a baj, hogy nem tudom megítélni, hogy helyes-e az alábbi diagram, ami azt mutatja, hogy a Java EE-re a kereslet nagyobb mértékben nőtt, mint Springre, vagyis fejlesztőre.
http://www.indeed.com/jobtrends?q=%22Spring+framework%22%2C+%22Java+EE%22&l=&relative=1
(De igazából nem tudom eldönteni, hogy mennyire hiteles ez a diagram)
DE. A Spring egy jó framework, máskülönben nem használnák, és szerintem innovatívabb is, mint a Java EE, gyorsabban mozog az új technológiák felé. Mindkét keretrendszert nagyon sok helyen használják. De az eredeti kérdéshez visszatérve, ha konkrétan tudja valaki, hogy Springgel kell/akar foglalkozni, akkor azt tanulja előbb, és ne a Java EE-t
-
Lacces
őstag
Az EE egyre inkább háttérbe szorul a Springgel szemben.
A Springgel érdemes kezdeni szvsz, mert aki ismeri a Springet, az nagyon könnyen tud átnyergelni EE-re, de csak EE ismerettel a Spring a vérhugyozás kategóriája.
Itt a 3-as Springről beszélek. Az előző változatok az XML tengere....bottal nem nyúlnék hozzá. Spring is támogat JSF,JSP techonlógiákat.
A Spring is egyébként egy qrva nagy framework/tool/solution halmaz.
Van Spring MVC, Sping JS, Spring Webflow, Spring Security.....sorolhatnám napestig. Ezekből a Spring Security és az MVC már de facto szabvány.
Hm, nem tudom, én már 1 éve nézegetek Java-s állásokat (szerencsére Isten nem szeret
) és ha Spring-et kértek volna akkor azt külön jelezték, vagy még a Strut2-t láttam népszerűnek.Java EE kiselőadást kellett tartanom és hát, amikor nézegettem a fórumokat elég nagy vita van ebből a Java EE vs Spring dologból, én nem is mennék bele
. De én sosem dolgoztam bennek, csak tanulgattam őket, így nem tudok bővebbet mondani
.
Bár a Spring elég dinamikusan nő és nagyon megy a fejlesztés is ezerrel. Lehet tényleg érdemes a Spring-gel kezdeni, mert ahogy olvastam a Java EE7-hez még a cache api sem lesz benne, amit már nagyon vártak... (valami Jcache).Mivel foglalkoztam ASP.NET-tel nekem nem volt nehéz megérteni a Java EE alapjait
mástól nem hallottam vissza ezügyben semmit.Szerintem a Spring lassan platform lesz
(tényleg rengeteg eszköze van) -
Pitu
aktív tag
MimeMessageHelper helper = new MimeMessageHelper(message, true);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
baos.write(notificationBean.getFileAttachment());
helper.addAttachment(notificationBean.getAttachmentFileName(), ????)addAttachment második paramétere lehet File, InputStreamSource, DataSource. Tehát ezek valamelyikére kellene konvertálni a ByteArrayOutputStream-et, aminél nem találtam megfelelő metódust egyelőre.

-
Peter Kiss
őstag
Nyilván az nem derült ki, hogy a kolléga mire akarja használni. És igenis, lehet az, hogy csak az egyiket írom felül. Ha egy listába rakom és csak a contains() metódust hivogatom rá, akkor bőven elég az equals() metódust felüldefiniálni.
Nem véletlenül írtam, hogy alternatív megoldás és nem az üdvözítő.
Sötét mágia, mikor valami nem mondja el magáról, hogy mégis hogyan fog működni, hanem összesen egy valaki tudja, hogy "ja, igen, ez ez meg emez így van".
-
Peter Kiss
őstag
Superhun megoldása teljesen jó.
Viszont ha már saját osztályt használsz felüldefiniált metódusokkal, akkor szerintem elég az equals felüldefiniálni úgy, hogy a String és az int egyezőség esetén adjon vissza TRUE-t és akkor egy "sima" ArrayList-be is teheted. Persze attól is függ, hogy mennyi elemed lesz, mert nagyon sok elem esetén az ArrayList nem túl gazdaságos. Nem mondom, hogy Superhun vagy az én megoldásom a jobb, az enyém egy alternatív, de valamivel egyszerűbb megoldás, mert csak 1 metódus felüldefiniálását kell megcsinálni, de mint írtam, sok elemnél nem feltétlenül gazdaságos.
Sosem szabad csak az equals()-t vagy csak a hashCode()-ot felülírni! Nyilván képes lesz működni, ha csak az egyik van felülírva, de mihelyst az objektum fel lesz használva kulcsként (dictionary, set), máris hibás működést kaphatunk! Emellett azt is figyelembe kell venni, hogy az alaplogikának egyeznie kell a két metódusban, különben szintén hibás működést kaphatunk (pl. mikor egy set-hez akarnánk hozzáadni végtelen ciklusba is kerülhetünk). Sőt, igazából ilyen kulcsként való felhasználás esetén csak immutable objektumokat szabadna használni.
-
Pitu
aktív tag
-
pvt.peter
őstag
nekem ez nem tartott sokáig, főleg úgy, hogy eclipse megvolt nyitva

véleményem szerint ha vki programozással szeretne kezdeni, akkor ne ugorjon neki azonnal az OOP-nek
érdemes sima C -vel kezdeni, egyrészt azért, hogy pl. tisztában legyen a ? : kifejezéssel
persze nekem is van még sok mindent tanulnom
-
pvt.peter
őstag
-
WonderCSabo
félisten
-
fatal`
titán
-
Superhun
addikt
-
WonderCSabo
félisten
-
Superhun
addikt
-
pvt.peter
őstag
-
MrSealRD
veterán
-
Pitu
aktív tag
Bár ilyen egyszerű lenne, ügyfélnél 1.5-ös verzió van
Mondjuk azt én sem értem hogy még miért... alkalmazkodnunk kell, ez van, többször is javasoltuk már a frissítést.
Még annyi problémám van, hogy így az ant scripttel történő generálás (wsimport) nem megy. 1.6/1.7jdk-val minden ok. -
pakriksz
őstag
-
Karma
félisten
-
Karma
félisten
-
Karma
félisten
-
pakriksz
őstag
(aminek a többségéről nem is tudok mindent),
Aham, tehát a Java a szar...
Egyre jobban értem azt akik ócsárolják a java-t tele van, lehetetlen dolgokkal, olyan triviális apróságokkal kell szenvedni vele hogy az hihetetlen.
Nem kötelező használni....tudod, Kun Béla egyszer azt mondta, hogy ha a kupleráj nem megy, akkor nem a bútorokat kell kicserélni, hanem a kurvákat....azok ócsárolják, akik Hozzád hasonlóan nem hajlandóak tanulni, fejlődni...új dolgokat megismerni.
Aki valóban meg akar oldani egy problémát, az nem a kifogásokat keresi, hanem a megoldást. A SAX parser kiváló megoldás lehetett volna, de dolgozni kell vele..igen. Az élet kemény.
csakhogy mint utána olvastam, ez nem is annyira kupleráj
ennek a kötelezően lezárós formátumnak canonical xml a neve, és ez is egy szabvány. -
pakriksz
őstag
nem fogok napokat tölteni azzal hogy megcsináljam az osztályokat az xml mintájára (aminek a többségéről nem is tudok mindent), mert néhány sorban a több ezer közül meg kell változtatni pár dolgot. Akkor inkább a favágómódszeres ment, visszaolvas replace, újra ment dolog lesz a nyerő. Egyre jobban értem azt akik ócsárolják a java-t tele van, lehetetlen dolgokkal, olyan triviális apróságokkal kell szenvedni vele hogy az hihetetlen. És rákeresve a neten pont ezzel a dologgal mint én jó sokan szenvednek jó rég óta. Persze nem került be a transformer osztályba egy erre való beállítás...
-
pakriksz
őstag
nézegethetem, nem lehet vele mit tenni. A transformer egyben adja ki az egészet, 1 stringbe megy. És a java mint írtam megbolondul egy bizonyos stringhossz után (sorok elejét lehagyja, randomban eltologatja a tageket, stb).
a sax nagyon dzsunkának néz ki, kb olyan mintha binárisba kódolnék programot
És biztos hogy a végeredmény is ugyan ez lenne. -
pakriksz
őstag
-
Peter Kiss
őstag
Nem, ez nem megoldás rá. Csak akkor segítene, ha egy közös adapterrel dolgozna minden, de akkor semmi értelme interface-t használni.
-
n00n
őstag
Nem elég részletes a workaround. Belenyúlt a gyári osztályba vagy csak egy @Override-t használt?
Szerk:
http://developer.classpath.org/doc/javax/swing/ProgressMonitorInputStream-source.html
Elvileg egy extend elég lenne, csak a ProgessMonitor ugyancsak int-et vár és nem long-ot.

76-93Szóval azt is extendálni kellene...
Hagytam az egészet inkább és írtam magamtól egy JDialogot egy JProgressbar-ral. Mondjuk azért meglep, hogy egy ekkora bug nincs javítva a Java-ban. Más nem fut bele? Azért ez nem valami szélsőséges felhasználás szerintem, hogy 2GB-nál nagyobb fájlt akarok vele másoltatni és frissíteni a progresst.
-
n00n
őstag
Ezeket az értékeket próbáltam:
byte[] buffer = new byte[1024*2];
byte[] buffer = new byte[1024*4];
byte[] buffer = new byte[1024*8];
byte[] buffer = new byte[1024*16];
byte[] buffer = new byte[1024*32];De ugyanaz a jelenség. Tanácstalan vagyok.
-
Pitu
aktív tag
-
Peter Kiss
őstag
-
WonderCSabo
félisten
Sztem meg kell találni a kompromisszumot az enkapszuláció stb. megvédése és a józan kód között. Például sztem az ocsmány, ha az összes elem hozzáadására nem biztosítasz fv-t, hanem a hívóra hagyod azt, csomó kód duplikációt stb eredményezve, pedig ezt gyakori feladatot az adott osztálynak kéne biztosítania.
-
Peter Kiss
őstag
-
WonderCSabo
félisten
Az egész koncepció szerintem téves. Alapból a Car osztály Tyres collectionjához semmilyen módon nem kellene biztosítani hozzáférést. addTye(Tyre t), removeTyre(Tyre t), stb. metódusokon keresztül kellene csak engedni az elérést, különben az eredeti problémához hasonló eredmények születnek....én kapásból a setTyres(List<Tyre> tires) metódust nem is implementálnám...
Pedig sokszor előfordul az, hogy egy osztályban lévő konténert egy az egyben kell lecserélni, de legalábbis az összes elemét. Rengetegszer használtam ilyet, sosem volt belőle probléma, méghozzá azért, mert értelmesen hívogattam a metódust.
-
TBG
senior tag
Az egész koncepció szerintem téves. Alapból a Car osztály Tyres collectionjához semmilyen módon nem kellene biztosítani hozzáférést. addTye(Tyre t), removeTyre(Tyre t), stb. metódusokon keresztül kellene csak engedni az elérést, különben az eredeti problémához hasonló eredmények születnek....én kapásból a setTyres(List<Tyre> tires) metódust nem is implementálnám...
Alapból a Car osztály Tyres collectionjához semmilyen módon nem kellene biztosítani hozzáférést
Alapból a Car osztály Tyres collectionjához semmilyen módon nem kellene biztosítani DIREKT hozzáférést
-
Lacces
őstag
Az egészet nem értem egyébként.
Car car = new Car();
car.addTire(new Tyre(10));
car.addTire(new Tyre(11));Ez a 3 sor megcsinálja azt, amit itt szeretnél tenni...
List<Tyre> carTires = car.getTires();
System.out.println("Before: " + carTires.size());
car.setTires(carTires);Gondolom, azt vártad, hogy lesz egy 4 elemű listád [10,11,10,11] értékekkel? Vagy mi volt az elképzelés?
Egyébként így működött volna:public class Car {
private List<Tyre> tires = new ArrayList<Tyre>();
public void setTires(List<Tyre> t) {
this.tires.clear();
this.tires.addAll(t);
}
// Egyéb lekérdező metódusok
}
public class CarTest {
public static void main(String[] args) {
Car car = new Car();
car.addTire(new Tyre(10));
car.addTire(new Tyre(11));
List<Tyre> carTires = car.getTires();
System.out.println("Before: " + carTires.size());
Car anotherCar = new Car();
anotherCar.setTires(carTires);
System.out.println("After (1): " + car.getTires().size());
System.out.println("After (2): " + anotherCarTires.size());
}Kérdésedre válaszolva ezt a minta feladatot láttam valahol mint java-s teszt. Először elméletben találtam mellé, aztán megnéztem Eclipse alatt, de nem értettem, hogy miért keletkezik a hiba.
Annyit PHP-ztam az elmúlt időszakban a munka miatt, hogy kopik a Java tudásom... úgyhogy vizsgák után egyből akarok gyakorolni, meg hát voltam közben életem első Java-s interjú tesztjén...
Mondjuk úgy, hogy a vereség arra ösztökél, hogy jobb legyek... :/Ha magam kellett volna, hogy programozam, akkor nem így csináltam volna természetesen

-
WonderCSabo
félisten
-
WonderCSabo
félisten
-
WonderCSabo
félisten
Az egészet nem értem egyébként.
Car car = new Car();
car.addTire(new Tyre(10));
car.addTire(new Tyre(11));Ez a 3 sor megcsinálja azt, amit itt szeretnél tenni...
List<Tyre> carTires = car.getTires();
System.out.println("Before: " + carTires.size());
car.setTires(carTires);Gondolom, azt vártad, hogy lesz egy 4 elemű listád [10,11,10,11] értékekkel? Vagy mi volt az elképzelés?
Egyébként így működött volna:public class Car {
private List<Tyre> tires = new ArrayList<Tyre>();
public void setTires(List<Tyre> t) {
this.tires.clear();
this.tires.addAll(t);
}
// Egyéb lekérdező metódusok
}
public class CarTest {
public static void main(String[] args) {
Car car = new Car();
car.addTire(new Tyre(10));
car.addTire(new Tyre(11));
List<Tyre> carTires = car.getTires();
System.out.println("Before: " + carTires.size());
Car anotherCar = new Car();
anotherCar.setTires(carTires);
System.out.println("After (1): " + car.getTires().size());
System.out.println("After (2): " + anotherCarTires.size());
}Nyilván szeretett volna egy olyan metódust, ami egyszerre az összes kereket lecseréli. A setTires nevéből is ítélve én ezt így csináltam volna:
public class Car {
private List<Tyre> tires = new ArrayList<Tyre>();
public void setTires(List<Tyre> t) {
this.tires = t;
}
// Egyéb lekérdező metódusok
} -
lakisoft
veterán
-
lakisoft
veterán
-
modder
aktív tag
-
Rolly
veterán
-
Rolly
veterán
tudom de muszáj mert egy kolléga elment a cégtől ahol dolgozom és kitalálták, hogy vegyem át a munkáját
. Az utóbbi 3-4 évben szinte csak php,apache,linux-oztam szóval külön nehéz ...de a projekt forrásait meg nem találom csak a jar és class cuccokat
... -
Jim-Y
veterán
Új hozzászólás Aktív témák
-
Fórumok
Mobilarena - mobil fórumok
Okostelefonok Mobiltelefonok Okosórák Autó+mobil Üzlet és Szolgáltatások Mobilalkalmazások Tartozékok, egyebek Mobilarena blogokPROHARDVER! - hardver fórumok
Notebookok TV & Audió Digitális fényképezés Alaplapok, chipsetek, memóriák Processzorok, tuning Hűtés, házak, tápok, modding Videokártyák Monitorok Adattárolás Multimédia, életmód, 3D nyomtatás Tabletek, E-bookok Nyomtatók, szkennerek PC, mini PC, barebone, szerver Beviteli eszközök Egyéb hardverek PROHARDVER! BlogokIT café - infotech fórumok
Infotech Hálózat, szolgáltatók OS, alkalmazások SzoftverfejlesztésGAMEPOD - játék fórumok
PC játékok Konzol játékok MobiljátékokLOGOUT - lépj ki, lépj be!
LOGOUT reakciók Monologoszféra FototrendFÁRADT GŐZ - közösségi tér szinte bármiről
Tudomány, oktatás Sport, életmód, utazás, egészség Kultúra, művészet, média Gazdaság, jog Technika, hobbi, otthon Társadalom, közélet Egyéb Lokál PROHARDVER! interaktív
- Fórumok
- Szoftverfejlesztés
- Java programozás
- (kiemelt téma)
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- Kingston KC3000 PCIe 4.0 NVMe M.2 2TB-os, bontatlan SSD, 2 év garanciával eladó!
- Samsung 990 Pro 1TB-os PCIe 4.0 M.2 NVMe 2280 SSD, bontatlanul, 2 év garanciával eladó!
- ADATA Legend 900 Pro 2TB-os PCIe Gen4 M.2 NVMe 2280 SSD, bontatlanul, 5 év garanciával eladó!
- AMD R7 350X és RX550 VGA kártyák
- Megvigyázott, 3,5 éves, 128 Gb, iPhone 13, 81% akku
- LG UltraWide 34WQ75X-B IPS Monitor! sRGB 99% / 3440x1440 / 5ms / 60Hz / DAS
- GAMER PC! i5-13500 / RTX 3070 Ti / 16GB DDR / 512GB NVMe / 650w!
- Bomba ár! Lenovo ThinkPad X390 - i7-8G I 16GB I 256SSD I 13,3" FHD I HDMI I Cam I W11 I Gari!
- Dell Latitude 7410 Core i5-10310u, 16GB RAM, SSD, jó akku, számla, 6 hó gar
- Thermalright Phantom Spirit 120 SE
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

Egyébként továbbra is az a véleményem, hogy már design szempontjából célszerűbb loopon kívül deklarálni ebben az esetben a streameket.








mástól nem hallottam vissza ezügyben semmit.





