2011-12-01 14 views
22

Bir MySQL için bir derbi veritabanını değiştiriyorum. Daha önce çalışmış olduğum her şey vardı, ama sonradan aldığım doğru yapılandırma olduğunu düşündükten sonra hata alıyorum:Bir MySQL veritabanını Glassfish sınıf yoluna bağlama ayarlanmamış veya sınıf adı yanlış

Neden: javax.resource.ResourceException: Sınıf adı yanlış veya sınıf yolu için ayarlanmadı: com.mysql.jdbc konsoldan .jdbc2.optional.MysqlDataSource

Tam hata çıkışı:

Caused by: javax.resource.ResourceException: Class name is wrong or classpath is not set for : com.mysql.jdbc.jdbc2.optional.MysqlDataSource 
at com.sun.gjc.common.DataSourceObjectBuilder.getDataSourceObject(DataSourceObjectBuilder.java:292) 
at com.sun.gjc.common.DataSourceObjectBuilder.constructDataSourceObject(DataSourceObjectBuilder.java:114) 
at com.sun.gjc.spi.ManagedConnectionFactory.getDataSource(ManagedConnectionFactory.java:1292) 
at com.sun.gjc.spi.DSManagedConnectionFactory.getDataSource(DSManagedConnectionFactory.java:148) 
at com.sun.gjc.spi.DSManagedConnectionFactory.createManagedConnection(DSManagedConnectionFactory.java:101) 
at com.sun.enterprise.resource.allocator.LocalTxConnectorAllocator.createResource(LocalTxConnectorAllocator.java:87) 

çift ayrıca MySQL sürücüsü .jars eklenen isimler, bağlantı havuzu ve diğer resources.I've bazılarını kontrol ettim Her iki projede de camböceği kütüphanesine. Veritabanı kesinlikle tutulma yoluyla doğru bir şekilde çalışıyordu çünkü tabloları görebildim ve veritabanın bağlamındaki kaynakları gösterebildim. Bu yüzden en azından THOSE sürücülerinin düzgün çalıştığını biliyorum. Ayrıca persistence.xml dosyası iyi görünüyor. jdbc/mydatabase jndi başvurusunu gerektiği gibi referanslar ve varsayılan JTA, manament türü olarak seçilir.

Başka birinin öneri var mı? Teşekkürler.

+0

Neredeyse aynı şeyi söylüyor: Ping Bağlantı Noktası mysqlstatuspool için Başarısız. Ping başarısız oldu Exception - Sınıf adı yanlış veya sınıf yolu için ayarlanmadı: com.mysql.jdbc.jdbc2.optional.MysqlDataSource Daha fazla bilgi için lütfen sunucu.log dosyasını kontrol edin. Ping başarısız oldu Exception – Randnum

+0

Derbi veritabanını kullanırken bu bağlantı havuzu için sınıf yolunu manuel olarak ayarlamam gerekmedim, bu yüzden birisinin yapmam gereken şeyi düşündüğünü umuyorum, kaynak nerede ve nasıl olduğunu açıklayabilirler bunu yapmak için tam olarak. – Randnum

+0

datasource classname: com.mysql.jdbc.jdbc2.optional.MysqlDataSource, yönetici penceresinde benim için otomatik olarak oluşturuldu ve ben bunu seçmedim ve nereden geldiğini bilmiyorum. – Randnum

cevap

35

I've also added the MySQL driver .jars to the library of glassfish in both projects.

Görünüşe göre doğru yapılmadı. JAR, [domainname] genellikle domain1 için varsayılan olan Glassfish yüklemesinin /glassfish/domains/[domainname]/lib/ext klasörüne gitmelidir. Onu Eclipse tarafında yapılandırabilir ve yapamazsınız.

+0

Tamam Bu şekilde eklemedim. Eclipse'deki glassfish kütüphanesine ve yeni kütüphane kütüphanesini seçerek kullanıcı kütüphanelerine sağ tıklayıp oradan jar'imi seçtim.Önerinizi deneyeceğim. – Randnum

+1

Bu değişiklikleri geri alın. – BalusC

+0

Teşekkürler BalusC harika çalıştı. – Randnum

21

Çok geç yanıt veriyorum, ancak bu konuya atıfta bulunacak kişiler aşağıdaki bilgileri yararlı bulabilir. Yani burada ilanıyla:

  1. aynı geçmiş mysql-connector-java-Verno-bin.jar
  2. paketi halletmek http://dev.mysql.com/downloads/connector/j/5.0.html gelen konektör Jar indirin ve kopyalamak [GlassFish Kurulum Dizini]/alan adları/[alan adı]/lib klasöründe
  3. yeniden başlatma alan adı ve ping JDBC Bağlantı Havuzlar gitmek Orada

daki bağlantısını kontrol etmek. Eğer MySql'niz çalışıyorsa, o zaman DB'yi başarıyla ping edecek

+3

Etki alanı yeniden başlatıldığında, bağlantı havuzunun tüm ek özellikleri yenilenmedi. (Ben kavanozu kopyalamadan önce havuzunu yaratmıştım.) Birisi, kavanozu kopyaladıktan sonra havuzu yeniden oluşturmanız gerektiğini bilmenizde yardımcı olabilir. Bunu yaptıktan sonra her şey benim için çalıştı. – w3bshark

5

Çalıştırıldıktan sonra jar dosyasını $glassfish_install_folder\glassfish\lib kopyaladım. glassfish 4.0 kullanıyorum.

Bu, oracle'den link'u işaretleyin.