JSF+JDBC kullanarak geliştirdiğim uygulamada form üzerinden eklenen veri Application Serverı restart etmeden gözükmüyor, bunu nasıl giderebilirim?

Projeyi GlassFish'te de denedim, Tomcat'te de denedim ama bi değişiklik olmadı.

soruldu: 10 Tem '14, 05:24

Heval%20Berk%20Nevruz's gravatar image

Heval Berk Nevruz
2.0k122440
cevap kabul oranı: 20%

değiştirildi: 11 Tem '14, 22:52

rahmanyazgan's gravatar image

rahmanyazgan ♦
4.4k83559

Verileri çağırdığın ve kayıt ekledikten sonra update çalıştırdığın kodlarını paylaşır mısın.

(11 Tem '14, 03:36) SaRPaRDa SaRPaRDa's gravatar image
1
public void setSectionData() {
    try {
        con = getConnection();
        ps = con.prepareStatement("insert into sect"
                + "(faculty_no,sect_no,sect_name) values" + "(?,?,?)");
        ps.setInt(1, getSection().getFacultyNo());
        ps.setInt(2, getSection().getSectionNo());
        ps.setString(3, getSection().getSectionName());
        ps.executeUpdate();
    } catch (SQLException e) {
        FacesContext.getCurrentInstance().addMessage(
                null,
                new FacesMessage(FacesMessage.SEVERITY_WARN,
                        "Database Error",
                        "Veri Eklenirken Bir Sorun Oluştu"));
    }
Glassfishin JDBC ile çalışması için bi configuration yapmama gerek var mı ?
(11 Tem '14, 05:50) Heval Berk Nevruz Heval%20Berk%20Nevruz's gravatar image

Bu kod kayıt işlemi için. Kayıt ettikten sonra verileri ya yeniden çağırmalısın yada verileri göstermek için kullandığın değişkene de eklemelisin. Daha sonra kayıt işlemini tetikleyen komponent (butondur sanırım)'in update özelliği ile verileri gösterdiğin alanı güncellemelisin.

(11 Tem '14, 06:54) SaRPaRDa SaRPaRDa's gravatar image
1
public List<Section> getSectionDataList() {
    ResultSet result = null;
    ArrayList<Section> sectionDataList = new ArrayList<Section>();
    try {
        con = ConnectionClass.getConnection();
        ps = con.prepareStatement("select faculty_no,sect_no,sect_name from sect");
        result = ps.executeQuery();
        while (result.next()) {
            section = new Section();
            section.setFacultyNo(result.getInt(1));
            section.setSectionNo(result.getInt(2));
            section.setSectionName(result.getString(3));
            sectionDataList.add(section);
        }
        result.close();
        ps.close();
    } catch (SQLException e) {
        FacesContext.getCurrentInstance().addMessage(
                null,
                new FacesMessage(FacesMessage.SEVERITY_WARN,
                        "Database Error",
                        "Databasedeki Verilere erişilemiyor"));
    }

onlarda var zaten hocam ama sorun serverı restart etmeden cekmemesi

(11 Tem '14, 07:12) Heval Berk Nevruz Heval%20Berk%20Nevruz's gravatar image

getSectionDataList()'i Debug ettiğinde son eklenen datayı görebiliyorsan, komponent update işleminde eksiklik vardır,

Eğer datayı göremiyorsan, Veritabanı için transaction commit işlemi yapılmıyordur. ps.executeUpdate(); komutundan sonra ps.flush() komutunu denermisin. Ayrıca J2EE'nin söylediği gibi cahing problemide olabilir.

permanent link

cevaplandı: 11 Tem '14, 07:28

SaRPaRDa's gravatar image

SaRPaRDa
5.0k213165
cevap kabul oranı: 27%

Debug edince son değer dönüyor hocam acaba viewdemi bi sorun var ;

<p:commandbutton value="Ekle" style="position:relative; left:205px;" icon="ui-icon-disk" actionlistener="#{sectionDAOImpl.setSectionData()}" update="message :#{p:component('sections')}"/>

(11 Tem '14, 11:25) Heval Berk Nevruz Heval%20Berk%20Nevruz's gravatar image

update kısmında verileri listelediğin komponentin id numarasınıda vermelisin. Senin xhtml kodlarını bilmediğimden dolayı tam cevap veremeyeceğim.

(12 Tem '14, 02:19) SaRPaRDa SaRPaRDa's gravatar image

https://github.com/HevalBerkNevruz/JsfSummerProject/tree/master müsait olursanız buradan bakabilirsiniz hocam hala çözemedim sorunu

(12 Tem '14, 10:20) Heval Berk Nevruz Heval%20Berk%20Nevruz's gravatar image

Glassfish ve oracle kurulu olmadığından dolayı test edemiyorum. Panele id verip ve kayıt eklediğin commandButton'un update özelliğine şu kodu eklermisin.

<h:form id="list"> <p:panel id="pnlList" header="Bölüm Listesi">

update="message :list:pnlList"

(12 Tem '14, 20:46) SaRPaRDa SaRPaRDa's gravatar image

yine olmadı hocam

(12 Tem '14, 22:32) Heval Berk Nevruz Heval%20Berk%20Nevruz's gravatar image

List<section> sectionDataList = controller.getSectionDataList();

komutu sayfa açılırken çalışıyor ama kayıttan sonra tekrar çağrılmıyor. Dolayısı ile sectionDataList yeni kaydı almıyor. sectionDataList = controller.getSectionDataList(); komutunu kayıttan sonra tekrar çalıştırman gerekir.

Bu hatadan ayrı olarak; xhtml dosyası içerisinden Dao katmanına doğrudan erişmişsin. xhtml dosyası içerisinden sadece bean'e erişmelisin. Dao'ya göndereceğin veya alacağın bilgileri Bean içerisinden göndermelisin.

(13 Tem '14, 19:40) SaRPaRDa SaRPaRDa's gravatar image

Peki hocam sağolun çok teşekkür ederim yardımlarınız için sorun çözüldü :)

(13 Tem '14, 20:16) Heval Berk Nevruz Heval%20Berk%20Nevruz's gravatar image
7 yorumdan 5 tanesi gösteriliyor hepsini göster

Öngörüm : Entity Cache var sanırım. DB'ye kayıt atarken ara katmanda EclipseLink kullanıyorsanız, entity'i persist ettikten sonra evict ediniz.

Kullanılan teknolojileri yazınız lütfen. EJB, JPA gibi.

permanent link

cevaplandı: 10 Tem '14, 06:57

Turgay%20Can's gravatar image

Turgay Can
8.3k63798
cevap kabul oranı: 18%

Hocam yukarıda belirttim sadece JSF-JDBC kullanıyorum . Sadece Database veri eklerkende değil bi değişiklik yaptığımda server restart etmeden gözükmüyor

(10 Tem '14, 08:32) Heval Berk Nevruz Heval%20Berk%20Nevruz's gravatar image

Eğer eclipse geliştirme ortamı kullanıyorsan aktif sunucunun üzerine tıklayıp ctrl+alt+p ile republish etmeniz gerekmektedir.

Bunu yaptığınız her ctrl+s işleminden sonra otomatik olarak yapan bir configuration da mevcuttur. Bunu da mevcut sunucunun üzerine çift tıkladığınızda açılan pencerede "Publishing" sekmesini açarak en alttaki "Automatically publish after a build event" seçeneğini seçip ctrl+s ile kayıt ettikten sonra bu işlemi otomatik olarak yapacaktır.

permanent link

cevaplandı: 10 Tem '14, 13:09

zanasimsek's gravatar image

zanasimsek
35112
cevap kabul oranı: 0%

Hocam dediklerini yaptım ancak sizin söylediğiniz Eclipsede Projeyi Kaydettiğimizde Serverı Publish ediyor benim sorunum Database'e veri insert edilince bu işlemi kendisinin gerçekleştirmemesi

(10 Tem '14, 14:04) Heval Berk Nevruz Heval%20Berk%20Nevruz's gravatar image
Cevabınız
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×281
×35
×25
×11
×8

Soruldu: 10 Tem '14, 05:24

Görüntüleme: 906 kez

Son güncelleme: 13 Tem '14, 20:16

powered by BitNami OSQA