2014-09-30 5 views
1

От How to set up a JDBC Connection Pool on Glassfish Я хотел бы соединить MyQueue с Birds Ресурс JDBC в Glassfish. Я получаю ошибку, похожую на: The name of the driver class for the datasource is missing; единственное отличие в том, что я использую MYSQL вместо PostgreSql:отсутствует имя класса драйвера для источника данных

enter image description here

птиц ресурс:

enter image description here

успешный пинг:

enter image description here

(пинг указывает, что свойства соединения верны?)

Facelets:

<!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:ui="http://java.sun.com/jsf/facelets" 
     xmlns:h="http://java.sun.com/jsf/html" 
     xmlns:f="http://java.sun.com/jsf/core"> 
    <h:head></h:head> 
    <h:body> 
     This and everything before will be ignored 
     <ui:composition template="template.xhtml"> 
      <ui:define name="navigation"> 
       <ui:include src="menu.xhtml"/> 
      </ui:define> 
      <ui:define name="main"> 
       <h1>bird</h1> 
       #{myQueue.next} 
      </ui:define> 
     </ui:composition> 
     This and everything after will be ignored 
    </h:body> 
</html> 

и боб:

package dur; 

import java.io.Serializable; 
import java.util.logging.Logger; 
import javax.inject.Named; 
import javax.ejb.Singleton; 
import javax.enterprise.context.ApplicationScoped; 
//import javax.inject.Singleton; 

@Named 
@ApplicationScoped 
@Singleton 
public class MyQueue implements Serializable { 

    private static final long serialVersionUID = 403250971215465050L; 
    private final Logger log = Logger.getLogger(MyQueue.class.getName()); 
    private int next = 1; 

    public MyQueue() { 
    } 

    public int getNext() { 
     log.info("next\t" + next); 
     return next++; 
    } 
} 

боб и facelet функционируют правильно, я просто хочу, чтобы подключить MyQueue к базе данных. Я хотел бы использовать JPA для подключения к базе данных.

Возможность редактирования поля выделена серым цветом.

-------------------------------------------- edit- --------------------------------

Netbeans сделал некоторую магию и создал соединение (я думаю) по праву щелкнув корпоративное приложение и выберите новый -> glassfish> пул соединений jdbc.

ВС-resources.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE resources PUBLIC "-//Sun Microsystems, Inc.//DTD Application Server 9.0 Resource Definitions //EN" "http://www.sun.com/software/appserver/dtds/sun-resources_1_3.dtd"> 
<resources> 
    <jdbc-resource enabled="true" jndi-name="jdbc/birdsPool" object-type="user" pool-name="birdsPool"> 
    <description/> 
    </jdbc-resource> 
    <jdbc-connection-pool allow-non-component-callers="false" associate-with-thread="false" connection-creation-retry-attempts="0" connection-creation-retry-interval-in-seconds="10" connection-leak-reclaim="false" connection-leak-timeout-in-seconds="0" connection-validation-method="auto-commit" datasource-classname="com.mysql.jdbc.jdbc2.optional.MysqlDataSource" fail-all-connections="false" idle-timeout-in-seconds="300" is-connection-validation-required="false" is-isolation-level-guaranteed="true" lazy-connection-association="false" lazy-connection-enlistment="false" match-connections="false" max-connection-usage-count="0" max-pool-size="32" max-wait-time-in-millis="60000" name="birdsPool" non-transactional-connections="false" pool-resize-quantity="2" res-type="javax.sql.ConnectionPoolDataSource" statement-timeout-in-seconds="-1" steady-pool-size="8" validate-atmost-once-period-in-seconds="0" wrap-jdbc-objects="false"> 
    <property name="URL" value="jdbc:mysql://localhost:3306/legacy?zeroDateTimeBehavior=convertToNull"/> 
    <property name="User" value="user"/> 
    <property name="Password" value="gtjropjre"/> 
    </jdbc-connection-pool> 
</resources> 

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="EnterpriseBirdsJPA-warPU" transaction-type="JTA"> 
    <jta-data-source>jdbc/birdsPool</jta-data-source> 
    <exclude-unlisted-classes>false</exclude-unlisted-classes> 
    <properties/> 
    </persistence-unit> 
</persistence> 

Я немного неудобный с sun-resources.xml и предпочли бы видеть эту конфигурацию непосредственно на GlassFish. Я не уверен, что это сработает, но это позволило netbeans затем создать класс сущности из этого соединения, так что это похоже на прогресс. Опять же, однако, что sun-resources.xml не на самом деле в стеклянной платке делает это менее совершенным решением.

+0

Смотри также: https://netbeans.org/kb/docs/javaee/ecommerce/connect-db.html хотя это кажется немного устаревшей, кажется, чтобы соответствовать указанной выше статье. и http://wiki.netbeans.org/UsingJSFAndFaceletsInNetbeans – Thufir

ответ

2

У меня была аналогичная проблема, это в основном проблема netbeans (вот почему все, кажется, прекрасно в консоли администратора Glassfish).

Для решения:
1. добавить MySQL-разъем-Java-5.1.23-bin.jar на "{$ Папка_установки} \ NetBeans 8.0.1 \ IDE \ Modules \ внутр"
2. рестарт Netbeans
теперь он должен работать, как ожидалось

это bug report также относится

+0

Я уверен, что это правильно, только потому, что я не повторил проблему, не принял ответ. – Thufir

1

чтобы решить ту же проблему у вас было, мне пришлось добавить «driverClass» дополнительные свойства в вашем пуле соединений (рядом с «пароль», «пользователь "," URL "). Его значение будет «com.mysql.jdbc.Driver».

Источник: http://www.blogarama.com/programming-blogs/194794-wings-hermes-berins-infosec-blog/259237-glassfish-netbeans-name-driver-class-for-datasource-missing

+1

Вы можете хорошо отображать код поместив его между backticks ('), поместив его в новую строку, выбрав его и нажав Ctrl-k. Вы можете отредактировать свой пост, чтобы улучшить форматирование. –

Смежные вопросы