2014-03-31 82 views
0

我的數據庫中的表的可見性存在問題。 我想從JavaServer Faces一章中編寫一本書「Java How To Program 9th edition」的示例項目,並且我已經完成了一切,沒有任何錯誤,但是我的Web應用程序沒有看到我的表。NetBeans + GlassFish應用程序不會從數據庫中看到表

servicetab in netbeans http://www.iv.pl/images/98495825713921260154.png

正如你可以看到我有一個表,它應該是(名稱ADRESY)。 這是我的代碼與SQL查詢。

public ResultSet getAddresses() throws SQLException{ 
    if(dataSource == null) 
     throw new SQLException("Unable to obtain DataSource"); 

    Connection connection = dataSource.getConnection(); 
    if(connection == null) 
     throw new SQLException("Unable to connect to DataSource"); 

    try{ 
     PreparedStatement getAddresses = connection.prepareStatement(
     "SELECT FIRSTNAME, LASTNAME, STREET, CITY, STATE, ZIP " + 
       "FROM ADRESY ORDER BY LASTNAME, FIRSTNAME"); 
     CachedRowSet rowSet = new com.sun.rowset.CachedRowSetImpl(); 
     rowSet.populate(getAddresses.executeQuery()); 
     return rowSet; 
    }finally{ 
     connection.close(); 
    } 
} 

而在這之前我有註釋:

@Resource (name="jdbc/addressbook") 
DataSource dataSource; 

有沒有錯誤,但是當我跑步時使用此聲明的網頁我有一個錯誤:

An Error Occurred:

Table/view 'ADRESY' does not exist.

而且帶資源的屏幕: resources glassfish http://www.iv.pl/images/77706421595933269755.png

並根據要求(n加時賽知道這是你想要的): resource jndi name http://www.iv.pl/images/79884566162836729459.png

我的web.xml文件:

<?xml version="1.0" encoding="UTF-8"?> 
<web-app version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee 
     http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"> 
    <context-param> 
     <param-name>javax.faces.PROJECT_STAGE</param-name> 
     <param-value>Development</param-value> 
    </context-param> 
    <servlet> 
     <servlet-name>Faces Servlet</servlet-name> 
     <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>Faces Servlet</servlet-name> 
     <url-pattern>/faces/*</url-pattern> 
    </servlet-mapping> 
    <session-config> 
     <session-timeout> 
      30 
     </session-timeout> 
    </session-config> 
    <welcome-file-list> 
     <welcome-file>faces/index.xhtml</welcome-file> 
    </welcome-file-list> 
    <resource-ref> 
     <res-ref-name>jdbc/addressbook</res-ref-name> 
     <res-type>javax.sql.DataSource</res-type> 
     <res-auth>Container</res-auth> 
    </resource-ref> 
</web-app> 

我以前是沒有的<resource-ref>標籤,我加入它剛纔,但它仍然沒有按」工作。我想我沒有glassfish-resources.xml文件。

而且我檢查該驅動程序,這裏是下面的截圖: connection pool driver http://www.iv.pl/images/78467121145061967972.png

驅動程序類名是空的,但是當我創建的連接池,我選擇的Java DB作爲驅動程序供應商。我不知道,如果它看起來應該或不...

+0

你真的創建了一個名爲addressbook的JDBC資源嗎? – unwichtich

+0

是的,我編輯我的文章與截圖 – Dess

+0

什麼是你的JDBC連接池'AddressBookPool'的驅動程序?請發佈您的項目文件夾中的配置文件(例如web.xml和/或glassfish-resources.xml)。 –

回答

2

And I think I don't have glassfish-resources.xml file.

http://www.oracle.com/technetwork/articles/java/pongegf-1517943.html

Application-scoped resources are declared as part of a file called glassfish-resources.xml. In the case of a WAR deployment, the file is placed in WEB-INF/glassfish-resources.

你也可以試試ping你的游泳池。你在'編輯JDBC連接池'屏幕的左上角有一個'ping'按鈕。看你的截圖。

+0

我已經將泳池打了好幾次,並且成功了,所以不是這樣。但是我已經閱讀了你給我的這個鏈接,我沒有這個xml文件,但是我創建了它,並添加了資源引用,現在它可以工作,所以非常感謝! – Dess

相關問題