Ubuntu 14.04 Apache Tomcat 7 Not responding / Waiting on Connecting progress

Ubuntu server’ımda /etc/default/tomcat7 dosyasında Xmx değerini 512m olarak ayarladıktan sonra server cevap vermemeye başlamıştı.

JAVA_OPTS’u şu şekilde ayarladıktan sonra sorun düzeldi..

JAVA_OPTS=”-Djava.security.egd=file:/dev/./urandom -Djava.awt.headless=true -Xmx1024m -XX:MaxPermSize=512m -XX:+UseConcMarkSweepGC”

JSP Nedir? Neden kullanılır? Neden geliştirilmiştir? Nasıl Çalışır?

JSP Nedir? Neden kullanılır? Neden geliştirilmiştir? Nasıl Çalışır?

JSP(JavaServer Pages) dinamik web içerikleri oluşturmamızı sağlayan bir java teknolojisidir. Yani java kullanarak geliştirme yaptığımız bir teknolojidir.

Neden geliştirilmiştir?

JavaServer Pages’in tabanı servlet teknolojisine dayanır. Servlet’ler basitçe, server(sunucu) tarafında çalışan java programlarıdır. JSP ise servlet’lere artı olarak
statik HTML kodları arasına gömülebilen, serpiştirilebilen java kodlarıdır. Bu sayede çok karmaşık yapılara girmeden, sadece istediğimiz yerlere java kodları yazarak
statik bir HTML sayfasını basitçe dinamik hale getirebiliyoruz.

Nasıl çalışır?

Ziyaretçi .jsp uzantılı dosyayı sunucudan ister. Sunucudaki JSP motoru .jsp uzantılı dosyada browserlarımızın yorumlayamayacağı java kodları olduğunu düşünerek <%…%>
tag’leri arasındaki kodları .java uzantılı servlet karşılığına çevirir. .java uzantılı servlet dosyası derlenerek .class uzantılı java dosyası oluşur ve .class dosyası çalıştırılarak
elde edilen çıktı HTML kodlarına dönüştürülerek ziyaretçiye iletilir. Bu durumda biz çözümü java ile üretmemize rağmen, tarayıcılarımız tarafından yorumlanabilen HTML kodları elde ederiz.
Ve bu HTML kodları her bilgisayarda aynı şekilde görüntülenebilir.

Java ile Text Dosyası Kopyalama İşlemi – Text’ten veri okuma, Text’e veri yazma

Kodların sağlıklı çalışması için okuyacağımız ve yazacağımız text dosyalarını workspace’e koymamız gerekir. Aslında bu dosyaları java kodları kullanarak kendimiz de oluşturabiliriz. Ama ben bu örnekte text1.txt ve text2.txt dosyalarını workspace’e kendim oluşturdum. Workspace: Proje dosyası

import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.util.Scanner;

public class Process {

public static void main(String[] args) {

Scanner scanFile=null; // dosyayı okumak için Scanner objesi
PrintWriter writer=null; // dosyaya yazmak için PrintWriter objesi
File file=new File("text1.txt"); // okunacak dosya File tipinde bir
// obje referansında tutuluyor

try {
scanFile=new Scanner(file); // olası bir exceptionu handle etmek için
// try-catch bloğu kullanıyoruz
} catch (FileNotFoundException e) {
System.out.println("File could not found - Dosya bulunamadı. ERROR: "+e);
// exception fırlatıldığında e ile yakalayıp gerekli mesajla birlikte basıyoruz.
}

try {
writer=new PrintWriter("text2.txt");
} catch (FileNotFoundException e) {
System.out.println("File could not created - Dosya oluşturulamadı(yazmak için). ERROR: "+e);
}

while(scanFile.hasNext()) // dosyayı scanFile referansı ile taramaya başlıyoruz
{ // hasNext'i olduğu sürece yani dosya sonuna kadar
writer.println(scanFile.nextLine()); // her okunan line(satır)'ı
} // aynen diğer dosyaya yazıyoruz

scanFile.close(); // scanFile objesini kapatalım
writer.close(); // writer objesini kapatalım.

System.out.println("The copy operation is completed. - Kopyalama işlemi tamamlandı.");
}

}

Aslında file tutan referansları, bazı sistemler otomatik kapatıyor. Ancak bazıları kapatmadığı için hem sistemi gereksiz yere kullanmış oluyoruz hem de dosyaya veri yazma işlemi başarısız olabiliyor. Mesela ubuntu sistemimde, buradaki writer objesini kapatmadığım zaman dosyayı hiçbirşey yazılmamış olarak buluyorum. Bu yüzden, özellikle file tutan referanslarımızı her proje sonunda mutlaka kapatmalıyız.