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


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ı...

28 Ağustos 2018 Salı

JPA ile SQL Server Store Procedure nasıl çağırılır?


Store Procedure Nedir?

Türkçe karşılığı "Depolanmış Yöntemler veya Saklı Yordamlar" olarak ifade edilmektedir. Sql Server tarafında bir method yazıp bu methoda parametre göndererek bize değer döndürmesini istediğimiz durumlarda kullanabiliriz.

Basit bir Store Procedure örneği

CREATE PROCEDURE stokKartiGetir 
   @stokId INT
AS
BEGIN
   SELECT *  
   FROM tblStok  
   WHERE id = @stokId 
END;


Bu Store Procedure'de 1 parametre almaktadır. @stokId alarak Stok Kartı bilgisini döndermektedir.

Peki bunu JPA(Java Persistence API) kullanarak nasıl çağırabiliriz.

StoredProcedureQuery query = em.createStoredProcedureQuery("stokKartiGetir", TblStok.class)
                    .registerStoredProcedureParameter("stokId", Integer.class, ParameterMode.IN)
                    .setParameter("stokId", 194);
TblStok stok = (TblStok) query.getSingleResult();


Sonuç :

stokAd:Hp C6657A (57) Renkli Kartuş

stokKod:Kartuş

Proje kodları : https://github.com/kurtomerfaruk/JPAStoreProcedure






Devamı...

23 Ağustos 2018 Perşembe

PrimeFaces Extensions Generate PDF Document Viewer



Merhaba,

Ireport aracılığı ile oluşturmuş olduğumuz pdf dökümanlarını PrimeFaces Document Viewer'da nasıl gösterebiliriz.

Bunun için kullandıklarım

Netbeans 8.0.2
PrimeFaces 6.2
PrimeFaces Extensions 6.2.8
itext 2.1.7
JasperReports 5.6.0

Maven:
 
        <dependency>
            <groupId>org.glassfish</groupId>
            <artifactId>javax.faces</artifactId>
            <version>2.2.7</version>
        </dependency>

        <dependency>
            <groupId>org.primefaces</groupId>
            <artifactId>primefaces</artifactId>
            <version>6.2</version>
        </dependency>

        <dependency>
            <groupId>org.primefaces.extensions</groupId>
            <artifactId>primefaces-extensions</artifactId>
            <version>6.2.8</version>
        </dependency>

        <dependency>
            <groupId>com.lowagie</groupId>
            <artifactId>itext</artifactId>
            <version>2.1.7</version>
            <type>jar</type>
        </dependency>

        <dependency>
            <groupId>net.sf.jasperreports</groupId>
            <artifactId>jasperreports</artifactId>
            <version>5.6.0</version>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.36</version>
        </dependency>

        <dependency>
            <groupId>org.eclipse.persistence</groupId>
            <artifactId>eclipselink</artifactId>
            <version>2.5.2</version>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>org.eclipse.persistence</groupId>
      <artifactId>org.eclipse.persistence.jpa.modelgen.processor</artifactId>
            <version>2.5.2</version>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>javax</groupId>
            <artifactId>javaee-web-api</artifactId>
            <version>7.0</version>
            <scope>provided</scope>
        </dependency>



persistence.xml

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
  <persistence-unit name="TEST_PU" transaction-type="JTA">
    <jta-data-source>Sakila</jta-data-source>
    <exclude-unlisted-classes>false</exclude-unlisted-classes>
    <properties>
      <property name="javax.persistence.schema-generation.database.action" value="create"/>
    </properties>
  </persistence-unit>
</persistence>

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"
      xmlns:p="http://primefaces.org/ui"
      xmlns:pe="http://primefaces.org/ui/extensions"
      xmlns:f="http://xmlns.jcp.org/jsf/core">

    <h:head>
    </h:head>

    <h:body>
        <h:form>
            <p:tabView>  
                <p:tab title="StreamedContent">  

                    <pe:documentViewer height="500" value="#{basicDocumentViewerController.content}" download="extensions-rocks.pdf"/>  

                </p:tab>  
            </p:tabView>  
        </h:form>
    </h:body>

</html>

BasicDocumentViewerController.java




package com.kurtomerfaruk.documentwiewer;

import org.primefaces.model.DefaultStreamedContent;
import org.primefaces.model.StreamedContent;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.Serializable;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.faces.context.FacesContext;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperExportManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;

/**
 *
 * @author Omer Faruk Kurt
 * @Created on date 22/08/2018 22:26:23
 */
@ManagedBean(name = "basicDocumentViewerController")
@SessionScoped
public class BasicDocumentViewerController implements Serializable {

    private static final long serialVersionUID = 1L;
    
    private StreamedContent content;


    public StreamedContent getContent() {
        if(content == null){
            content=pdfDocumentGenerate();
        }
        return content;
    }

    public void setContent(StreamedContent content) {
        this.content = content;
    }

  
    public DefaultStreamedContent pdfDocumentGenerate() {
        JasperPrint jasperPrint;

        try {
            FacesContext facesContext = FacesContext.getCurrentInstance();
            String reportPath = facesContext.getExternalContext().getRealPath("/reports") + File.separator;
            String fileName = "actor_list.jasper";
            fileName = reportPath + fileName;
            Context initialContext = new InitialContext();
            
            DataSource datasource = (DataSource) initialContext.lookup("Sakila");
            Connection conn = datasource.getConnection();
            HashMap parameterMap = new HashMap();
            jasperPrint = JasperFillManager.fillReport(fileName, parameterMap, conn);

            byte[] document = JasperExportManager.exportReportToPdf(jasperPrint);
            return new DefaultStreamedContent(new ByteArrayInputStream(document), "application/pdf", "Actor_List");

        } catch (JRException | NamingException ex) {
            Logger.getLogger(BasicDocumentViewerController.class.getName()).log(Level.SEVERE, null, ex);
            return null;
        } catch (SQLException ex) {
            System.out.println("No se puede obtener la conexion: " + ex);
            return null;
        }
    }


}



Sonuç




Kaynak Kodları




Devamı...

22 Ağustos 2018 Çarşamba

IReport 5.6.0 Açılmıyor ( Ireport do not working)



Merhaba,

IReport 5.6.0'ı çift tıkladığınızda açılmıyor ise bunun sebebi jdk 7'den başka bir versiyon kurulu olmasıdır. 5.6.0 jdk 7 ile çalışmaktadır. jdk 7 ve jdk 8 aynı anda kurulu ise IReport'a jdk 7 ile çalışması için aşağıdaki şekilde ayar yapmanız gerekmektedir.


{IReportHome}\\Jaspersoft\iReport-5.6.0\etc
C:\Program Files (x86)\Jaspersoft\iReport-5.6.0\etc

altında ireport.conf dosyasını açıyoruz

#jdkhome="/path/to/jdk"

ile 
jdkhome="{JAVA_HOME}"
jdkhome="C:\Java\jdk1.7.0_79"

Bu şekilde sorundan kurtulmuş olacaksınız.

Hatasız javalı günler.
Devamı...

20 Temmuz 2018 Cuma

Bitbcuket SSL Certificate problem




Merhaba,

Başlıktaki gibi bir hata ile karşılaşıyorsanız muhtemel sebep bulunduğunuz ağda ssl sertifikasını kabul etmiyordur. Bunun için yapmamız gereken sertifika doğrulamasını devre dışı bırakmak olacaktır.

Bunun için 
git config --global http.sslVerify false


yazmamız yeterli olacaktır.





Devamı...

1 Mayıs 2018 Salı

MySQL Tablo Sıfırlama







TRUNCATE table TabloAdı

komutu ile tablo içerisindeki herşeyi silip ID değerinin 0 (sıfır) dan başlamasını sağlayabilirsiniz. Tablo yeniden yaratılmış gibi ilk haline dönecektir.
Devamı...

5 Ekim 2017 Perşembe

SQL Server Recovery Pending



Merhaba,

Veritabanınızın yan tarafında Recovery Pending diye bir bir mesaj alıyorsanız veritabanınıza erişemezsiniz. Çeşitli sebeplerden dolayı veritabanı kendini korumaya alıyor. Bunu düzeltmek için aşağıdaki sorguları çalıştırarak veritabanınızı kurtabilirsiniz.
ALTER DATABASE DATA SET SINGLE_USER

DBCC CHECKDB (DATA, REPAIR_ALLOW_DATA_LOSS)

ALTER DATABASE DATA SET MULTI_USER

ALTER DATABASE DATA SET ONLINE
Devamı...
© 2014 Ömer Faruk Kurt. Designed by Bloggertheme9
Powered by Blogger.