8 Ocak 2019 Salı

JSF redirects from HTTP to HTTPS

Merhaba,


GlassFish'te kullanarak http'den https'e yönlendirme yapmak için "web.xml" dosyasına aşağıdaki  şekilde ekleme yapmamız yeterli olacaktır.




    <security-constraint>
        <web-resource-collection>
            <web-resource-name>MebisRedirect</web-resource-name>
            <url-pattern>/*</url-pattern>
        </web-resource-collection>
        <user-data-constraint>
            <transport-guarantee>CONFIDENTIAL</transport-guarantee>
        </user-data-constraint>
    </security-constraint>
Sorunsuz javalı günler :)
Devamı...

6 Ocak 2019 Pazar

Error Code 1701 Cannot truncate table referenced


Merhaba,


MySql Error Code 1701 hatasının anlamı "Truncate" edilmek istenen tabloya ait "foreign key" olması sebebiyle tabloyu truncate edememesi bunun için truncate etmeden önce foreing key kontrolünü devre dışı bırakmalıyız.

Bunun için 



SET SQL_SAFE_UPDATES = 0;
DELETE FROM stocks;
SET FOREIGN_KEY_CHECKS = 0; 
TRUNCATE table stocks; 
SET FOREIGN_KEY_CHECKS = 1;
Devamı...

5 Ocak 2019 Cumartesi

Java Tarih'e saat ekleme çıkarma nasıl yapılır?(Add/Minus Hours To a Date In Java)



Merhaba,




Java 8'den önce, java.util.Date , Java'daki tarih-saat değerlerini göstermek için en sık kullanılan sınıflardan biriydi.
Java 8'den sonra , java.time.LocalDateTime ve  java.time.ZonedDateTime'ı tanıttı  Java 8 ayrıca java.time.Instant kullanarak zaman çizelgesinde belirli bir saati temsil etmemize izin verir .
Bu yazımızda, Java'da belirli bir tarih saatinden saat ekleme çıkarma işlemi nasıl yapılır öğreneceğiz İlk önce Java ile ilgili bazı standart tarihlere bakacağız.


Java 7 veya daha düşük  bir sürüm kullanıyorsanız, java.util.Date ve java.util.Calendar sınıflarını tarih ve zamanla ilgili en çok işleyen kullanım için kullanabiliriz.


Belirli bir Date nesnesine 2 saat nasıl eklenir ve çıkarılır görelim :
         Date date = new Date();
        System.out.println("date :"+date);
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        calendar.add(Calendar.HOUR_OF_DAY, 2);
        System.out.println("Add calendar getTime :"+calendar.getTime());
        calendar.add(Calendar.HOUR_OF_DAY, -4);
        System.out.println("Minus calendar getTime :"+calendar.getTime());


Ekran Çıktısı :

date :Sat Jan 05 10:04:07 AST 2019
Add calendar getTime :Sat Jan 05 12:04:07 AST 2019
Minus calendar getTime :Sat Jan 05 08:04:07 AST 2019

Java 8 veya sonraki sürümlerinde, bir java.time.LocalDateTime veya java.time.ZonedDateTimeörneğine saat ekleme , oldukça basittir ve  plusHours () yöntemini kullanır:





        LocalDateTime dateTime = LocalDateTime.now();
        System.out.println("dateTime :"+dateTime);
        dateTime = dateTime.plusHours(2);
        System.out.println("plus dateTime:"+dateTime);
        dateTime = dateTime.minusHours(4);
        System.out.println("minus dateTime:"+dateTime);



dateTime :2019-01-05T10:04:07.847
plus dateTime:2019-01-05T12:04:07.847
minus dateTime:2019-01-05T08:04:07.847
Devamı...

1 Ocak 2019 Salı

MSSql Server Tabloda kolon varsa değiştirme yoksa ekleme



Merhaba,

MSSql Serverda Designer tarafından yapılan işlemleri sql komut olarakta yapabilmekteyiz. Bunun için "Alter" komutunu kullanmalıyız. 

Örnek olarak Stoklar tablosuna stokKodu alanı nvarchar(150) türünde bir alan eklemek istiyoruz.



ALTER TABLE stoklar ADD stokKodu NVARCHAR(150)
Eğer stokKodu adında bir alan var ise bunu güncellemek istiyorsak bunun için var olup olmadığını kontrol edip var ise güncellesin yok ise eklesin şeklinde bir komut yazmalıyız. Bunun için aşağıdaki şekilde yazmamız sorunumuzu çözecektir.

IF NOT EXISTS (SELECT *  
 FROM sys.columns 
 WHERE  object_id = OBJECT_ID(N'[dbo].[stoklar ]') 
   AND name = 'stokKod') 
 BEGIN 
  ALTER TABLE stoklar ADD stokKod NVARCHAR(150)
 END 
ELSE 
 BEGIN 
  ALTER TABLE stoklar ALTER COLUMN stokKod NVARCHAR(150) 
 END
GO
Devamı...

21 Aralık 2018 Cuma

Java String sonundaki virgül nasıl silinir? (How to Remove the Last delimiter of a String?)

Merhaba,

Bazı durumlarda dinamik olarak oluşturduğumuz String ifadenin sonundaki virgülü kaldırmak isteriz. Bunun için aşağıdaki şekilde replace etmemiz yeterli olacaktır.


sorgu = sorgu.replaceAll(",$", "");


Bakarsan bağ bakmazsan bug olur :)
Devamı...

28 Kasım 2018 Çarşamba

Eclipselink Kayıt ekledikten sonra önbellek yenileme (How to refresh cache after persist?)

Merhaba,

Kayıt Ekleme (persist) işleminden sonra eklemiş olduğunuz kayıdın id gerekli olduğu durumlarda kayıt ekledikten sonra yenileme işlemi yapılması gerekmektedir.

Bu işlemi aşağıdaki gibi yapabilirsiniz.




Kisiler kisi = basvuru.getKisilerId();
getEntityManager().persist(kisi);
getEntityManager().flush();
getEntityManager().refresh(kisi);


Sorunsuz javalı günler :)
Devamı...

24 Ekim 2018 Çarşamba

EJB Timer Service is not available


Merhaba,

Başlıktaki gibi bir hata ile karşılaşıyorsanız GlassFish'in EJB Timer Service kilitlenmiştir.

Çözümü ise

{glassfish_home}\glassfish\domains\domain1\lib\databases\ejbtimer

altında bulunan



"db.lck"
dosyasını silerek bu sorundan kurtulmuş olacaksınız.

Dosyayı sildikten sonra GlassFish'i restart etmeyi unutmayınız...

Sorunsuz javalı günler:)
Devamı...

29 Eylül 2018 Cumartesi

Maven ile Sürüm ve Sürüm Tarihi Gösterme(Stamping Version Number and Build Time in a Properties File with Maven)


Maven ile oluşturulan sürüm numarasını ve oluşturulma tarihi projenizde göstermek için aşağıdaki adımları takip edebilirsiniz.





  • İlk adım olarak projemizin src/main/resorces klasörünün altına "version.properties" dosyasını oluşturuyoruz.

  • Oluşturmuş olduğumuz "version.properties" dosyasının içerisine aşağıdaki değerleri yazıyoruz.
       version=${pom.version}

       build.date=${timestamp}
  • "pom.xml" dosyasını açıyoruz ve "<properties></properties>" etiketlerinin altına

<timestamp>${maven.build.timestamp}</timestamp>
<maven.build.timestamp.format>dd.MM.yyyy HH:mm</maven.build.timestamp.format>

ekliyoruz.

  • "<build></build>" etiketlerinin arasına ise aşağıdaki değerleri yazıyoruz.
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <filtering>true</filtering>
            </resource>
        </resources>



  • Yapacağımız ayarlar bitti ve şimdi ise xhtml ve controller sayfalarında sürüm ve sürüm tarihi çağırma işlemini yapıyoruz
index.xhtml


<?xml version='1.0' encoding='UTF-8' ?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://xmlns.jcp.org/jsf/html">

    <h:head>
        <title>Facelet Title</title>
    </h:head>

    <h:body>
        <h:form>

            <h:outputText value="Version:"/>
            <h:outputText value="#{example.version}"/>
            <br/>

            <h:outputText value="Build Date:"/>
            <h:outputText value="#{example.buildDate}"/>

        </h:form>

    </h:body>

</html>




Example.java


package com.kurtomerfaruk.mavenversion;


import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
import javax.faces.bean.ApplicationScoped;
import javax.faces.bean.ManagedBean;


/**
 *
 * @author Omer Faruk Kurt
 * @Created on date 29/09/2018 12:12:52
 */

@ManagedBean
@ApplicationScoped
public class Example {


    private String version;
    private String buildDate;

    public Example() {

        Properties prop = loadManifestFile();
        if (prop != null) {
            version = prop.getProperty("version");
            buildDate = prop.getProperty("build.date");
        }

    }



    public String getVersion() {
        return version;
    }


    public void setVersion(String version) {
        this.version = version;
    }


    public String getBuildDate() {
        return buildDate;
    }


    public void setBuildDate(String buildDate) {
        this.buildDate = buildDate;
    }


    private Properties loadManifestFile() {

        Properties prop = new Properties();
        try {
            InputStream resourceAsStream = getClass().getClassLoader().getResourceAsStream("version.properties");
            if (resourceAsStream != null) {
                prop.load(resourceAsStream);
            }

        } catch (IOException e) {

        }

        return prop;

    }



}




Sonuç :



Devamı...

26 Eylül 2018 Çarşamba

Hibernate-EclipseLink sql parametresi gösterme



Merhaba,

Sorgulara göndermiş olduğunuz sorguları göstermek için aşağıdaki şekilde persistence.xml dosyasına ekleme yapmanız yeterli olacaktır.

<property name="eclipselink.logging.parameters" value="true"/>
<property name="eclipselink.logging.level.sql" value="FINE"/>
Devamı...

17 Eylül 2018 Pazartesi

java.lang.NoSuchMethodError: org.jboss.logging.Logger.debugf



Merhaba,

GlassFish'e projeyi deploy ederken başlıktaki hata ile karşılaşıyorsanız kullanmış olduğunuz hibernate versiyonuna bağlı jboss-logging jar ile glassfish'te bulunan  jar versiyon farkından dolayı oluşuyordur. 

Bunun için projenizde bulunan jboss-logging-{version}.jar'ı kopyalayıp

{glassfish_home}\glassfish\modules içerisine yapıştırmanız ve server'ı restart etmeniz yeterli olacaktır.


Devamı...
© 2014 Ömer Faruk Kurt. Designed by Bloggertheme9
Powered by Blogger.