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.

tomcat_debug_setting.JPG

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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.

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ó.

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.

süti beállítások módosítása