2015-02-17 1 views
3

Я использую Netbeans 8.0.2 для Windows. Я написал пример JSP страницыИспользование sql: query с таблицей CUSTOMER в образце базы данных Derby в установке по умолчанию Netbeans

<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 
<%@taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql"%> 
<%@page contentType="text/html" pageEncoding="UTF-8"%> 
<!DOCTYPE html> 
<html> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
     <title>JSP Page</title> 
    </head> 
    <body> 
     <h2>Hello, World!</h2> 
     <sql:query var="allRows" dataSource="jdbc/sample"> 
      SELECT name, city, state FROM APP.customer 
     </sql:query> 
     <table border="1"> 
      <thead> 
       <tr> 
        <th>Name</th> 
        <th>Location</th> 
       </tr> 
      </thead> 
      <tbody> 
       <c:forEach var="currentRow" items="${allRows.rows}"> 
        <tr> 
         <td>"${currentRow.name}"</td> 
         <td>"${currentRow.city}", "${currentRow.state}"</td> 
        </tr> 
       </c:forEach> 
      </tbody> 
     </table> 
    </body> 
</html> 

, но если я выполняю эту страницу, я получаю

javax.servlet.ServletException: 
      SELECT name, city, state FROM APP.customer 
     : Table/view 'APP.CUSTOMER' is not exist. 

образец базы данных является демо Derby базы данных. Я использую GlassFish Server 4.1, JDK 7, Java EE 7. Все они находятся в установке Netbeans по умолчанию. Я использую настройки по умолчанию для GlassFish Server.

Я вижу пример подключения базы данных на вкладке Services. Это jdbc: derby: // localhost: 1527/sample. Я вижу этот URL-адрес в свойствах пула соединений SamplePool GlassFish. Этот пул соединений используется в ресурсе JDBC jdbc/sample. Таблица APP.CUSTOMER существует в базе данных примеров.

Что делать неправильно?

ответ

3

Я не уверен, что это неправильно, но попробуйте следующее:

  • копия derbyclient.jar от glassfish4/javadb/lib к glassfish4/glassfish/lib/endorsed
  • рестарт Glassfish
  • изменить код на следующее:

    <sql:setDataSource var="snapshot" driver="org.apache.derby.jdbc.ClientDataSource" 
            url="jdbc:derby://localhost:1527/sample" 
            user="app" password="app"/> 
    <sql:query var="allRows" dataSource="${snapshot}"> 
        SELECT name, city, state FROM APP.customer 
    </sql:query> 
    

Чтобы играть с основным примером, этого должно быть достаточно, но вы можете не захотеть использовать его в процессе производства.

+0

Спасибо за ваш ответ! Оно работает. Теперь я попытаюсь понять, что мне нужно для дальнейшей настройки GlassFish. –

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