Eclipse web projekt, nem képződik a deployment assembly-ben megadott jar
Címkék: Eclipse deployment assembly
2016.04.11. 10:38
Web fejlesztés során kellemes szolgáltatása az Eclipse-nek, hogy az IDE-ből indított teszt futtatáshoz nem kell a kapcsolódó projektekből keletkező library-kat (jarokat) "kézzel" előállítani. Azok automatikusan keletkeznek, amennyiben a projekt tulajdonságai között a deployment assembly táblázatban rendelkezünk a erről.
Hónapokon át jól is működött a dolog, egyszer csak nem jött létre egy a kívánt jarok közül, és a jelenséget semmilyen hibaüzenet sem figyelmeztetés nem kísérte.
Először arra gyanakodtam, hogy a kapcsolódó projektben van mégis valami prücök. Még a warning-okat is kijavítottam, de nem hozott megoldást.
A forrás lemásolásával létrehoztam egy új projektet a kapcsolódó projektből, na ezzel persze működött.
A fájl szintű összehasonlítás során kiderült, hogy a problémás kapcsolódó projekt deployment assembly beállításából hiányzott az src mappa / mappa összerendelés. Ezt helyreállítva a várt módon keletkezett a kapcsolódó jar.
Azt hogy ez a be állítás mitől tűnt el, nem tudom.
A feladat a következő.
Adott MSSQL táblában adott azonosítóval lehetnek sorok, egy vagy több.Szeretném megtudni, mely azonosítókhoz van egynél több bejegyzés.
SELECT azonosíto_oszlop, COUNT(1) AS occurrence
FROM mkjv
GROUP BY azonosíto_oszlop
HAVING (COUNT(1) > 1)
ORDER BY occurrence DESC
Egyes implementációkban lehetséges, hogy a HAVING mögött az aliast (occurrence) kell használni.
Adott egy Ubuntuval üzemelő több célú házi szerver. Sajnos nem vagyok linux guru, de nem vagyok teljesen elveszett sem.
Probléma:
Korábban, a működő Firestarterel beállított tűzfalon keresztül remekül lehetett kapcsolódni hozzá dinamikus ip-vel rendelkező hostokról is.
Ubuntu 12.04 telepítése után ez megszűnt.
Tapasztalatok:
A vonatkozó tűzfal szabály szerkesztése helyre állította a dolgot.
A hálózat bármely újraindítása lehetetlenné tette kapcsolódás. Leginkább a reboot a problémás. Azt időnént távolról is kellhet.
Nem kevés kutakodás eredményeképp kiderítettem, hogy a névfeloldás áll a háttérben. Míg az nslookup boldogult, addig a tűzfalat kézből indítva (/etc/firestarter/firestarter.sh start) látszott, hogy nem sikerült a névfeloldás.
Innen már sima út felismerni, hogy a /etc/resolv.conf-ba nem kerül be a DNS címe. Mivel ez közvetlenül nem szerkeszthető, kutakodás tovább.
Az egyértelmű, hogy a networkmanager beállításai nem érvényesülnek.
Csomó tévút, csomó kutakodás....
Megoldás:
Végül is http://askubuntu.com/questions/137037/networkmanager-not-populating-resolv-conf címen találtam meg a tutit.
Az /etc/NetworkManager/NetworkManager.conf állományban a dns=dnsmasq bejegyzést kell kommentbe tenni, és a network managert újra indítani a /etc/init.d/network-manager restartparanccsal.
Persze hálózat bármilyen beállítása után, azt újra kell indítani.
pHarsan
Diagram rajzoláshoz korábban OpenOffice-t használtam.Amennyiben még nem futott, elindítottam a quickstart modult. Majd rákapcsolódtam és az API szerinti hívásokkal "rajzoltam".
Gondoltam át kellene térni a LibreOffice-ra.
A kapcsolódás során a
com.sun.star.lang.DisposedException: com.sun.star.io.IOException: EOF reached - socket,host=localhost,port=2001,localHost=127.0.0.1,localPort=52904,peerHost=localhost,peerPort=2001
Exceptiont kaptam.
Hosszas kutatás a neten. Látszik más is belefutott. Javaslat a korábbi verzióra visszatérés.
Downgrade, teszt hiba jelentkezik.
Lehet az indító parancs nem megfelelő? További kutatás. Dühöngés...
Elárulom a megoldást...
A könnyebb telepíthetőség és más megfontolások miatt az OpenOffice legszükségesebb könyvtárait (.jar) átmásoltuk az alkalmazásunk könyvtárait tartalmazó mappába :( !
Miután lecserélten azokat, rögtön működni is kezdett.
Magának a java virtuális gépnek szolgáltatása, csak a megfelelő parancssori paramétereket kell átadni.
Standalone alkalmazások esetén
-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,address=xxxxxx,suspend=n
ahol:
address=xxxxxx a kívánt port száma;
suspend=n induláskor megvárja e a debeug porton a kapcsolódást. (n=no,y=yes).
Tomcat alkalmazás szerver esetén
Amennyiben nem szervizként indul:
Az indító parancs calalina jpda start. Ekkor a 8000 porton figyel, de ez is paraméterezhető.
Amennyiben szervizként fut windows-on: a konzol java fülén kell beállítani.
Ahogyan a képen látszik, két sorban (fontos).
-Xdebug
-Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n
A paraméterek jelentése azonos minden esetben.
A web fejlesztés során az adatbázis utf-8 kodolású ezért a headerben is ezt célszerű beállítani. Viszont így az Eclis-ben írt php oldalakon elhelyezett stringek illetve html kiírások, az állomány latin-2 kódolása miatt elég sz@.. néznek ki.
Megoldás az Eclipse átállitása utf-8 mentésre ha minden project utf-8 kódolású:
Window->Preferrences->General->Workspace lapon, Text file encoding átállítása.
Projectenként is állítható:
Navigátorban (project explorerben) a project nevén jobb-klick->properties->resource lapon, Text file encoding átállítása.
Dátum és/vagy időpont nevű mappák, állományok batch-ből
Címkék: time idő dátum date bat batch datestemp timestemp
2010.05.18. 13:09
Sokszor szerettem volna programozás nélkül megoldani!
Most, a világhálón gyorsan akadtam megoldásra (http://pcforum.hu/tudastar/36712/Batch+program+irasa.html), majd még öttletesebbre (http://www.intelliadmin.com/index.php/2009/11/date-and-time-stamp-in-your-batch-files/).
A lényeg besűrítve
SET DATESTMP=%date:~0,4%%date:~5,2%%date:~8,2%
SET TIMESTMP=%time:~0,2%%time:~3,2%%time:~6,2%
Persze így már könnyen készihetőek mappák:
md %DATESTMP%
md %DATESTMP%\%TIMESTMP%
Illetve file is:
echo %DATESTMP%%TIMESTMP% > %DATESTMP%%TIMESTMP%.txt
További hasznos ötlet adó oldalak:
http://www.robvanderwoude.com/ntfor.php
http://forum.hwsw.hu/topic/15891-help-batch-fajl-vagy-valami-mas/
Hozzáfűzés 1017.10.10.
Van olyan windows verzió ahol a %time% környezeti változó déletőtt " 9:30" stringgel tér vissza. Míg a "time /t" parancs pedig a várt "09:30" eredményt adja.
Lehet így is:
time /t > time.txt
set /p AKTTIME= <time.txt
del time.tx
Az AKTTIME már felhasználható, darabolható.
Digitális képek exif adatában a keletkezés időpontjának csoportos állítása
Címkék: fotó digitális photo dátum digital exif date
2010.05.08. 08:00
Felkeltette érdeklődésem a geotagging, a digitális fotók tulajdonság (exif) bejegyzésében a foldrajzi koordináta tárolásának lehetősége. Sajna a fényképezőgépem erre nem képes. A tecnológia a következő:
- Valamely tracklog készítésére alkalmas (pda/pna + progi) esközzel az útvonal rögzítése
- Az utvonal és a képek keletkezési idópontja alapján, alkalmas progival, a képekbe visszaírni a kordinátát.
Ez persze feltételezi, a két eszköz belső oráinak együtt futását!
Gondosan összehangoltam az ora:perc beállítást, csak az kerülte el figyelmemet, hogy a kamerában egy évvel korábban van :-(. Így persze a párosítás sikertelen volt.
Irány a net. Némi keresgélés után a GeoSetterre akadtam amely lehetővé teszi az időpont eltolását, nagyon rugalmas beállítással.
Persze mindezt több kép kijelölése esetén csopotosan.
Az csak csak hab a tortán, hogy az útvonal kép összerendelésre is képes.
A Microsoft Outlook az indulás során egy pillanatra megjelenik, majd becsukódik és a megjelenő hiba panelben az alábbit üzeni:
"A Microsoft Office Outlook nem indítható el. Az outlook ablak nem nyitható meg"
A Google (a legjobb barátunk :-) ) segítségét igénybe véve azelső találat a pcforum.hu/tudastar/56924/Outlook+nem+indul.html volt. Az oldal közepe felé Alain1970 hozzászólásában a "tuti". A parancssorban kiadott "Outlook.exe /resetnavpane" parancs oldja meg a problémát. És tényleg ...
1.) Kulcs állomány létrehozása
A jre\bin-ben
keytool -genkey -alias tomcat -keyalg RSA -keystore .keystore -dname "cn=Tomcat, ou=Intranet, o=CegNev, c=HU"
Kérdésre megadni, megerősíteni a password-öt.
-keystore a keletkező file helye\neve.
-dname a distinguished name (LDAP)
2.) A ".keystore" állományt bemásolni a Tomcat (~\Tomcat 6.0) fő mappájába
3.) Módosítani a "~\Tomcat 6.0\conf\server.xml"-t
Kivenni a comment jelölést és beállítani a paramétereket:
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
keystoreFile=".keystore" keystorePass="******"
clientAuth="false" sslProtocol="TLS" />
A keystorePass= után a kulcsfile készítésekor megadott jelszó kell szerepeljen!
4.) A normál elérés az egész serveren való tiltásához commentbe rakni az alábbit:
<Connector executor="tomcatThreadPool"
port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
5.) Amennyiben "csak" valamelyik web alkalmazást kell védeni annak a web.xml (pl.:~\Tomcat 6.0\webapps\examples\WEB-INF\web.xml") állományába kell az alábbi:
<security-constraint>
<web-resource-collection>
<web-resource-name>Restricted URLs</web-resource-name>
<url-pattern>/</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
A <url-pattern> kell felsorolni a védendő URL mintákat.
6.) Újraindítani a Tomcat szervert.
Forrás: http://tomcat.apache.org/tomcat-6.0-doc/ssl-howto.html
http://confluence.atlassian.com/display/DOC/Adding+SSL+for+Secure+Logins+and+Page+Security
http://java.sun.com/javase/6/docs/technotes/tools/solaris/keytool.html
2013.03.18.
További fejlemények
Tesztelési célból létrehoztam egy v7 Tomcatet (host win7). A fentiek szerint megcsináltam a shelf signed keystore.t a fentiek szerint. Ahogy szokták mondani, innen kezdődtek a bajok....
a Tomcat indításkor hibát dobott ugyan, de látszólag elindult. Https-el kapcsolódni nem lehetett. A log végén a SEVERE: Failed to start connector [Connector[AJP/1.3-8009]]
LifecycleException: An invalid Lifecycle transition was attempted ([before_star
t]) for component [Connector[AJP/1.3-8009]] in state [INITIALIZING] ....
hibaüzenetet kaptam.
Illetve a az adott indulás elején a
SEVERE: Error initializing endpoint
java.lang.Exception: No Certificate file specified or invalid file format
Üzenet dobta.
Hosszas goolizás...
Utalás arra hogy a server.xml elején a nativ APR-t nem kell megengedni, vagyis a
<!--APR library loader. Documentation at /docs/apr.html -->
<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
Második sorát komentezni kell:
<!-- <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" /> -->
Ez látszólag nem old meg semmit. A hiba üzenetek továbbra is jönnek
Újra googlizás...
Utalás arra, a korábbi (egyébként javított hibára) hogy ilyen esetben a keystore és a tomcat alias password-je azonos (same) kell legyen.
Ez már a sokadik keystore gyártás. Láss csodát minden Ok!
Forrás:
http://readlist.com/lists/tomcat.apache.org/users/20/100741.html (eredetileg nem ez az oldal igazított el, most azt nem találom)
http://tomcat.10.n6.nabble.com/Possible-issue-with-Tomcat-7-0-27-SSL-keystore-configuration-td4983640.html
https://issues.apache.org/bugzilla/show_bug.cgi?id=38217
2013.08.18.
Az élet mindig produkál újat
Minap más által beszerzett tanúsítvánnyal kellet "megbízhatóvá" tenni egy linuxon futó Tomcat-ot.
Mindehhez kaptam host-chain.ctr, host.crt éa host.key állományokat.
Kezdetben az sem volt magától értetődő, hogy ezek közül melyiknek mi a szerepe.
A host.key a kulcs amihez a tanúsítványt kérték.
A host.crt az kulcshoz kapott tanúsítvány. A host-chain a tanúsító tanúsítási lánca. értsd "root certificate".
Mivel alapesetben, a tanúsítvány igénylés megelőző lépése a kulcs elkészítése, a kulcs a karikán (keystore) van. Ehhez kell a tanúsítványokat importálni. Ezért a keytool nem is tud ilyet.
Némi googlizás után találtam java programot, amivel el lehet készíteni a kulcsból és a hozzá tartozó tanúsítványból a keystore-t (www.agentbob.info/agentbob/79-AB.html).
Igaz ehhez az alkatrészeknek PEM formátum helyett DER formátumuaknak kell lenniük.
Szerencsére az openssl tud ilyet.
openssl pkcs8 -topk8 -nocrypt -in key.pem -inform PEM -out key.der -outform DER
openssl x509 -in cert.pem -inform PEM -out cert.der -outform DER
Ez után "már csak" a root certificate-t kellet a keytool-lal impotrálni.
Figyelem, linuxon belépve a [JAVA_HOME]/bin mappába, ott kiadva a keytoolt parancsot, a path-on levő indul el nem az aktuális mappabeli. Az eltérő verziók viszont eltérő formátumot használnak, pl.: az 1.5 és az 1.6.
Mindent összevetve úgy hat óra alatt végeztem is.