HTML

Csujo Software Inc.

Ez elvileg egy szoftverfejlesztéssel foglalkozó blog lenne. Elsősorban Java, mert ezt nyűvöm jelenleg, de ezen kívül előkerülhetnek más dolgok is, hiszen évekig fejlesztettem Delphiben, .Netben is. A célom egyelőre az, hogy kipróbáljam a bloggerek életét, de az sem hátrány, hogyha esetleg másoknak segítek ezzel. ;-)

Friss topikok

  • mezeike: Szia, Java specialistát keresek németországi céghez, profi német nyelvtudással. üdv Mezeike (2010.01.22. 10:14) Bemutatkozás
  • tucka: Hello Csujó! Azt mondom ne hagyd abba a bloggolást, jó lenne belerázódni a JAVA s dolgokba. Ha l... (2009.09.22. 12:10) Firebird vs. Glassfish vs. NetBeans

Linkblog

Firebird vs. Glassfish vs. NetBeans

2008.10.21. 15:52 Csujo

Glassfish telepítés:

A telepítése viszonylag jól le van írva a Glassfish letöltési oldalán, én csak néhány plusz dolgot mondanék, néhány kisebb beállítást érdemes még elkövetni szerintem, mielőtt az ember telepíti a szervert. Ezeket a dolgokat a kicsomagolás után, az ant futtatás előtt érdemes megtenni:
1. Lehetőség van rá, hogy ne az alap JDK-val települjön a szerver. Ez nekem azért volt fontos, mert a fő munkahelyi projektem miatt a JAVA_HOME egy 1.5-ös JDK-ra van állítva, viszont én az 1.6-os JDK-t akartam használni. Ehhez nem kell mást tenni, mint a setup.xmlben (vagy a setup-cluster.xmlben, ha azt használjuk) a következő sort lecseréljük:
   <property name="local.java.home" value="${java.home}${suffix}"/>
a megfelelő könyvtárra, pl.:
   <property name="local.java.home" value="d:\Jdk1606\bin\${suffix}"/>

2. Érdemes a fenti fájlban lecserélni az alapértelmezéseket a nekünk megfelelőre, hogy már egy nekünk tetsző domain jöjjön létre, ne kelljen vele külön bíbelődni:
   <property name="domain.name" value="domain1"/>
   <property name="instance.name" value="server"/>
   <property name="admin.user" value="admin"/>
   <property name="admin.password" value="adminadmin"/>
Ezek az adatok a domain neve, az instance neve, a domain adminisztrátor és a jelszava.

Netbeans és a Firebird:

A Firebird szervert java alól a JayBird jdbc driverrel lehet elérni. A driver csomagból a következő fájlokra van szükségünk:
         jaybird-full-2.1.6.jar
         lib\log4j-core.jar
         lib\mini-j2ee.jar
Ezeket a fájlokat elhelyezzük egy könyvtárba és máris lehet telepíteni az új jdbc drivert. Ezt ugyebár az NB Services ablakában a Databases/Drivers alatt tehetjük meg, csak be kell állítani az új drivernek a fenti három fájlt, a Driver classnak pedig meg kell adni a következőt: org.firebirdsql.jdbc.FBDriver., ha ezt megtettük, a NetBeans már képes elérni a szervert, fel lehet venni a Connectiont. (A Connection URL-je a következőképpen néz ki: jdbc:firebirdsql:<szerver>:<port>:<adatbázis elérése>. Ha az alapértelmezett portot használjuk, akkor az elhagyható. Egy példa: jdbc:firebirdsql:localhost:d:\JavaProject\Database\JavaProject.FDB)

Glassfish és a Firebird:

Ez már keményebb dió, mert több probléma is van vele.

Az első, hogy a GF és a JB nem ugyanúgy nevezi el a tulajdonságokat, amiket használ (AZ adatbázis útvonala JB-nél database tulajdonságban van, GF-nél a databaseName tulajdonságban.), ezért egy egyedi osztályt kell használni a GF-ben.
Nekem a következő beállítások jöttek be:
    DataSourceClassName:  org.firebirdsql.pool.sun.AppServerConnectionPoolDataSource
    ResourceType:             javax.sql.ConnectionPoolDataSource
    Properties:
        userName:               SQL felhasználó
        password:               Jelszava
        databaseName:        <szerver>:<port>:<elérési út>
                                     pl.: localhost:d:\JavaProject\Database\JavaProject.FDB
        encoding:                Használt encoding. Nem kötelező, de mivel magyarok 
                                     vagyunk, érdemes beállítani: WIN1250.

 Persze nem kötelező ezt kézzel megtenni, ha már csináltunk egy enterprise projektet (egy Enterprise Applicationt vagy egy EJB modult), ott felvehetünk egy xml fájlt, amelyben leírhatjuk az adatforrás minden tulajdonságát, így amikor futtatjuk a projektet, akkor automatikusan létrejön az adatforrás a GF szerveren.
A létrehozandó fájl a New File/GlassFish/JDBC Datasource menüponttal hozható létre, a neve sun_resource.xml, és itt van egy példa arra, hogy hogyan is kellene kinéznie. 

A második probléma, hogy a GF folyton meghív két eljárást a JayBirdben, ami nincs implementálva, teljesen üres, csak egy kivételdobást tartalmaz. Ez nem okoz gondot a működésben, de teleszemeteli a szerver logot, mert minden alkalommal, amikor a JayBirdhöz fordul a GF beleíródik a logba, hogy kivétel történt.
Ennek kivédésére le kell tölteni a JayBird megfelelő forráskódját és a megfelelő jdbc könyvtár alatt az FBConnection.java fájlban módosítani kell a következőket:
    public Properties getClientInfo() throws SQLException {
        // TODO: implement this java.sql.PreparedStatement method
        //throw new SQLException("not yet implemented");
        return new Properties();
    }

    public String getClientInfo(String name) throws SQLException {
        // TODO: implement this java.sql.PreparedStatement method
        //throw new SQLException("not yet implemented");
        return name;
    }

    public void setClientInfo(Properties properties) throws SQLClientInfoException {
        // TODO: implement this java.sql.PreparedStatement method
        //throw new SQLClientInfoException();
    }

    public void setClientInfo(String name, String value) throws SQLClientInfoException {
        // TODO: implement this java.sql.PreparedStatement method
        //throw new SQLClientInfoException();
    }

Mint látható, nem tettem mést, mint kikommenteztem a kivételdobást és megírtam, hogy elfogadható értékkel térjen vissza a függvény. Ezután a kódot be kell fordítani és kész is a hibátlan jdbc driverünk, ami nem szemeteli tele a logot.
Én megcsináltam a változtatásokat, így ha valaki ugyanazt használja, mint én, vagyis JDK1.6-ot és Jdbc4.0-t, az letöltheti innen a befordított projektet.

 

Kb. ennyibe kerül az FB, GF és NB összelövése, hogy együtt tudjanak működni, ha minden igaz, így már lehet kezdeni a projekt tényleges készítését.

1 komment

A bejegyzés trackback címe:

https://csujo.blog.hu/api/trackback/id/tr79724817

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

tucka 2009.09.22. 12:10:28

Hello Csujó!

Azt mondom ne hagyd abba a bloggolást, jó lenne belerázódni a JAVA s dolgokba.

Ha lesz időd nyújthatnál egy rövid áttekintést a jelenlegi (2009) szerver - kliens oldali technológiákról
azok elsődleges céljairól, hogyan férnek meg egymás mellett, mik a jelenleg használt párosítások etc...
Esetleg vannak-e olyan helyek ahol közösen fejleszthet az ember másokkal.
Elsősorban azért is jó lenne, mert jó pár helyen le vannak ragadva a technológiákkal viszont a cégek mindig a legújabbra keresnek embert.
Én személy szerint asp t csinálok, eléggé rühellem, mert régi és nincs lehetőség a váltásra, hobbiként Symfony t nyomok, nagyon tetszik.
Lényeg, látogasd még ezt a blogot.
süti beállítások módosítása