java regex pipe problem

I was trying to split a string to an array. and the special character was | (pipe).

String[] incomings=income.split("|");

and here is the out for income=”abcd|efg”


{"a","b","c","d","e","f","g"}

then I understand that this pipe char turns this issue an regex one and doing some strange stuff 🙂 after some research I found the solution. here is the solution for regex pipe


incomings=income.split(Pattern.quote("|"));

this makes the output for same situation like this:

{"abcd","efg"}

lovely

apache shiro linuxde nasıl derlenir

dökümantasyonda görmedim not alim dedim. evvela shiro nedir.

shiro kısaca java için bir güvenlik sistemidir. kullanıcı yönetim sistemi ve role tabanlı ulaşım sağlar. yada asp.net membership sisteminin benzeridir denebilir. üstün özellikleri biraz cryptosu fazla bide ldap falan desteklemesi neyse konumuz o değil.  mvn daha çok ram istermiş. pom xml i okurken fark ettim. yapılması gereken

export MAVEN_OPTS=”-Xmx512m -XX:MaxPermSize=128m”

yaptıktan sonra mvn komutunu vermek. bide dökümanları eskide kalmış gibi. mvn site demeniz yeterli. neyse kurcalayam bakam hoş duruyor uzaktan kullanırken ne cilveler yapıcak acaba 🙂

glassfish deploy war

iki gündür war deploy etmeye uraşıom. ve serverım bana default web module ettiğin şeyi re deploy edemen diyor.

(09:23:41 PM) mascix: hello
(09:24:11 PM) mascix: when I try to deploy my war from asadmin it gives WEB0145: Unable to deploy web module [vitrn.com] at root context of virtual server [server], because this virtual server declares a default-web-module
(09:24:52 PM) mascix: I am saerching how can I change default web module from console could not find any way and I am using glassfish 301
(09:31:15 PM) mascix: well I cleared the deafult web module from server and redeploy my war and it worked 🙂
(09:32:32 PM) jdlee: mascix: you can change that in the GF Admin Console by editing the Virtual Server
(09:33:48 PM) mascix: I was trying to make auto deploys for my code development
(09:34:21 PM) mascix: anyways in web xmöl and sun web xml I write context-root as / and redeployed it just like I said and its working 🙂

işin özü şu. defaut web module ettiğimiz uygulamayı redeploy edemiz ama web xml ve sun web xml de verdiğimiz context root ile uygulamamızı / da çalıştırabilioz. bu yazıdakine gerek kalmıyor bu durumda 🙂

ant build war glassfish

eclipse de veya netbeansde yazdık bi sürü hibernate ot bok derken en az war dosyamız oldu 20mb. şimdi her seferinde koca war dosyası upload edip onu servera deploy etmek ne zor olurdu dimi altı üstü bir kaç dosya değiştirdik diye koca 20mb upload peh.

ant burda bir numaralı araç. basit bir ant xml ile war dosyası oluşturabilir ve sorunu çözebiliriz yapmamız gereken linuxe ssh yapıp serverda derleyip ona deploy etmek. buyrun örnek build.xml

<?xml version=”1.0″ ?>

<project name=”vitrn.com” default=”war”>

<!– running ant with this is enough for eveyrthing dont forget to rearrange paths 😉

for server there must be glassfish libs in the clkasspath :ln -s /home/mascix/glassfishv3/glassfish/fomains/domain1/lib/

–>

<path id=”compile.classpath”>

<fileset dir=”WebContent/WEB-INF/lib”>

<include name=”*.jar” />

</fileset>

</path>

<target name=”init”>

<mkdir dir=”build/classes” />

<mkdir dir=”dist” />

<exec executable=”rm”>

<arg line=”lib” />

</exec>

<exec executable=”ln”>

<arg line=”-s /home/mascix/glassfishv3/glassfish/lib” />

</exec>

</target>

<target name=”compile” depends=”init”>

<copy todir=”build/classes/”>

<fileset dir=”src”>

<exclude name=”**/*.java” />

</fileset>

</copy>

<javac destdir=”build/classes” debug=”true” srcdir=”src”>

<classpath refid=”compile.classpath” />

<classpath>

<pathelement path=”${classpath}” />

<pathelement location=”lib/helper.jar” />

</classpath>

<classpath>

<pathelement path=”${classpath}” />

<fileset dir=”WebContent/WEB-INF/lib”>

<include name=”**/*.jar” />

</fileset>

<fileset dir=”lib”>

<include name=”**/*.jar” />

</fileset>

<pathelement location=”classes” />

</classpath>

</javac>

</target>

<target name=”war” depends=”compile”>

<war destfile=”dist/vitrn.com.war” webxml=”WebContent/WEB-INF/web.xml”>

<fileset dir=”WebContent” />

<lib dir=”WebContent/WEB-INF/lib” />

<classes dir=”build/classes” />

</war>

</target>

<target name=”clean”>

<delete dir=”dist” />

<delete dir=”build” />

</target>

<property name=”build.sysclasspath” value=”ignore” />

</project>

elbet işe yarar.

glassfish ile geliştirmek

bir süredir glassfish üstünde çalışan ufak bir site yapasım var onu kodlamaya başladım. ama aynı windowsda IIS ile direk çalışılınca olan problem benim sitem alt bir modül/path olarak çalışıyor. bu durumda ben html de /bisayfa.jsp dediğim zaman eğer domainde localhost:8080/gelistirme/ altındaysam link beni çat diye localhosta gönderiyor buda adamı çileden çıkartabilir altı üstü bir link verip test yapıcam. sonra servera attığımdada /gelistirme/ lı linkleri atmam çok muhtemel. neyse çözüm kolay.

localhost:4848 de çalışan glassfish admin console açılır. orda Configuration>Virtual Servers>server seçilir orda “Default web module” combo boxından bizim geliştirmkede olduğumuz modül seçilir ve sonuçta direk / da bizim geliştirmekde olduğumuz uygulama çalışmaya başlar. yanlış url vermek şansınız kaybolur oh….

set default web module
default web modul seçerek / da çalışmasını istediğiniz uygulamayı seçebilirsiniz.

uzun süredir hibernate de gördüğüm bir exceptionu an itibariyle çözdüm

bir site için 3 webserverı var ve bu serverlar ara ara aynen şuna benzer bir exception atarlar.

org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect): [obje package ismi#1]

ben hep diğer bir server mı bunu yapıo ama bu hibernate ler birbirinden bağımsız noluoki diye düşünürdüm. işleyişde bir arıza yapıyor bu exception. az evel local makinede kod pırkalıom bir baktım aynı hata. yok dedim daha neler lan bide ortada server yok şükür classımı hibernate ile bağımlı olmasına rağmen start edip testler yapabiliyorum. yani bi main fonksiyonum var ve şıkır şıkır çalışıyor bu esnada db ye bağlanıo bazı işler çeviriyor hibernate üstünden.

sonra başladım okumaya. saveOrUpdate çağırınca oluyor bu hata ve version kolonu ile bi karışıklık çıkarıyor. çok anlamadım ne olduğunu nalet.

pgbouncer max problemi

postgre upgrade oldu 8.4.5 yaptık. önünede pgbouncer kondu. 4 web serverının ikisinde error connection limit falan dedi. pgbouncer.ini den max connection sayısı artırıldı reload edildi. sonuç 2 serverım hala bağlanamıo hibernate dende şuna benzer bi exception geliyor:

org.hibernate.jdbc.AbstractBatcher – exception clearing maxRows/queryTimeout

çözüm

pgbpuncer restart istiyor yoksa hala connection açılmaz oluyor benim web serverlarımda tepki veremez kalıyor şükür bitti 🙂

glassfish v3 debian sid

paşa paşa sitesinden indirdim kurdum. ama birtürlü start olmuyordu 4848 portu kullanılıyor bi ihtimal başka glassfish çalışıyor diyordu. aslı şudur:

There is a process already using the admin port 4848 — it probably is another instance of a GlassFish server.

ararken ararken buldum. meğer ince bir ayarı varmış. root iken “sysctl net.ipv6.bindv6only=0” bu sayede java port alabiliyor. yoksa javanın kendisi network kullanamıyor. garip.

swing jlabel setbackground çalışmıyor

hasbel kader java ile swing kullanmam gerekti ve bi yerde bi label ın background’ını kırmızı yapmam lazım. set ettim validate dedim repaint ettim yemedi meğer durum opaklıkla ilgiliymiş. ve çook eski bişey.

http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4421165

çözüm basit arka rengi set ederken bide araya opaqlık set ediyoruz. örnek kod

jLabel.setOpaque(true);

jLabel.setText(“Recording”);

jLabel.setBackground(Color.red);

jLabel.repaint();

websphere garanti sanal pos para çekme problemi

geçen hafta elimdeki websphereler garanti sanal posundan para çekemez oldular. resin var o çekio ama webspherler çekemio. bende bütün para çekme işlemlerini koddan resine yönlendirdim durumu çözdümdü. webspherler “No trusted certificate found” diye bir exception atıyorlardı. garantiyle konuştuğumda cer dosyası yok bizim ayrı verdiğimiz diyordu. sonuçta java ssl e istek atıcaksak bazılar cer veriyor ve keytool ile javanın keystore una koyulması gerekiyor. turkcell webservislerinde bu durumla karşılaşmıştım.

bugün sonunda buldum hatanın sebebini ve çözümünü. sebebi:

[4/7/10 17:17:54:643 EEST] 00000039 WSX509TrustMa E CWPKI0022E: SSL HANDSHAKE FAILURE: A signer with SubjectDN “CN=ccpos.garanti.com.tr, OU=GT Bilisim Guvenlik, O=Turkiye Garanti Bankasi A.S., L=ISTANBUL, ST=ISTANBUL, C=TR” was sent from target host:port “ccpos.garanti.com.tr:443”. The signer may need to be added to local trust store “/usr/IBM/WebSphere/AppServer/profiles/AppSrv01/config/cells/GWEB1Cell01/trust.p12” located in SSL configuration alias “NodeDefaultSSLSettings” loaded from SSL configuration file “security.xml”. The extended error message from the SSL handshake exception is: “No trusted certificate found”.

len dedim bu yine sertifika istiyor elle tanıt diyor. nasıl yaparım diye bakınırkende on numara bir doc buldum. o doc google ile ilgili websphere ssl durumunu anlatıyor bende girdim websphere yönetim panelinden verdim garanti adresini servera tanıttım. panelde “Valid from 01 Nisan 2010 Perşembe to 01 Nisan 2013 Pazartesi.  ” yazıyor 2013 e kadar bu arızayı görmeyiz şükür buda bitti sabah deployunu ederim servercıklarıma 😀