GWT: Google Web Toolkit (GWT) adından da anlaşılacağı gibi Google bünyesinde geliştirilen, ajax temelli bir web framework. Google bu kütüphaneyi birçok servisinde kullanmakta. Oldukça geniş bir kütüphane ve çok güçlü bir yapıya sahip. GWT ile ilgili daha fazla bilgi için burya bakabilirsiniz.
SmartGWT: SmartGWT Isomorphic Software bünyesinde geliştirilen GWT tabanlı bir framework. Isomorphic, kütüphaneyi 4 farklı pakette dağıtıyor.
- LGPL
- Pro
- Power
- Enterprise
LGPL paketi ücretsiz ve adı üzerinde LGPL lisanslı. Diğer paketler ise ücretli. Paketler arasındaki farkları görmek isterseniz tabloyu buradan inceleyebilirsiniz. LGPL dağıtımına buradan, ve diğer paketlere de buradan ulaşabilirsiniz.
JNDI: Java Naming and Directory Interface, Sun Microsystems tarafından geliştirilen isimlendirme ve dizinleme API'si. Java uygulamaları bu API'yi kullanarak, mesela bir Connection'ı havuza atabilir ve havuzdan çağırabilir. JNDI konusunda daha fazla bilgi için bkz: google
SmartGWT ve JNDI
Gelelim konumuza. GWT geliştirme aşamasında uygulama sunucu olarak Jetty kullanıyor.Bu nedenle biz de ayarları jetty için yapacağız fakat diğer uygulama sunucular için de gerekli connection pooling ayarlarını kendi sitelerinden bulabilirsiniz.
- Jetty için JNDI ayarları: Uygulamanızın WEB-INF kalsörü altında jetty-web.xml adında bir dosya oluşturun ve içeriğini aşağıdaki gibi düzenleyin;
<?xml version="1.0" encoding="UTF-8"?> <Configure class="org.mortbay.jetty.webapp.WebAppContext"> <New id="myds" class="org.mortbay.jetty.plus.naming.Resource"> <Arg>java:comp/env/jdbc/database</Arg> <Arg> <New class="org.postgresql.ds.PGSimpleDataSource"> <Set name="User">your_user_name
</Set> <Set name="Password">your_password </Set> <Set name="DatabaseName">your_database </Set> <Set name="ServerName">localhost</Set> <Set name="PortNumber">5432</Set> </New> </Arg> </New> </Configure>
- Server Properties: Uygulamanızın kaynak kodlarının bulunduğu dizinde ($projectName/src) server.properties dosyasını açın (yoksa oluşturun) ve aşağıdaki satırları ekleyin;
webRoot: __AUTODETECT__ gwtModuleName: <module_name> isomorphicPathRootRelative: $gwtModuleName/sc sql.defaultDatabase: PostgreSQL sql.PostgreSQL.autoJoinTransactions: true sql.PostgreSQL.interface.credentialsInURL: true sql.PostgreSQL.pool.enabled: false sql.PostgreSQL.driver.context: _container_ sql.PostgreSQL.driver: org.postgresql.Driver sql.PostgreSQL.driver.driverName: PostgreSQL sql.PostgreSQL.driver.networkProtocol: tcp sql.PostgreSQL.driver.url: sql.PostgreSQL.interface.type: jndi sql.PostgreSQL.database.type: postgresql sql.PostgreSQL.driver.name: jdbc/database sql.PostgreSQL.driver.driverType: thin
"server.properties" dosyasındaki ayarlar PostgreSQL içindir. Siz kendi kullandığınız veritabanına göre değiştirmelisiniz.
Bunun en kolay yolu SmartGWT Enterprise Showcase içerisinden DataSource Admin Console uygulamasını kullanmanız olacaktır.
Buraya kadar yaptıklarımızla SamrtGWT uygulamanız veritabanına erişecektir. Peki ya servlet'lar içerisinden erişmek istersek ne yapmalıyız?
package com.blogspot.karslioglu;
import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class MyClass {
public Connection retrieveConnection() throws Exception {
Connection connection = null;
Context context = new InitialContext();
DataSource dataSource = (DataSource) context.lookup("java:comp/env/jdbc/database");
connection = dataSource.getConnection();
return connection;
}
}
Hiç yorum yok:
Yorum Gönder