由第一次使用在Tomcat中8.0的server.xml(在Windows 7)規定的GlobalNamingResource創建我目前使用嵌入式Derby數據庫。在tomcat中作爲GlobalNamingResource創建的嵌入式Derby數據庫的存儲位置是什麼?
目前我可以在Java代碼中使用它,但如果我想與像Eclipse的數據源資源管理器等工具來訪問它,我無法找到它在我的文件系統(Windows 7)的任何地方。
我server.xml中的有關部分如下:
<Resource auth="Container"
driverClassName="org.apache.derby.jdbc.EmbeddedDriver"
maxActive="100" maxIdle="30" maxWait="10000"
name="jdbc/myDB" password="" username=""
type="javax.sql.DataSource"
url="jdbc:derby:Databases/myDerbyDB;create=true" />
context.xml中包含此:
<ResourceLink name="jdbc/myDBLink" global="jdbc/myDB"
auth="Container" type="javax.sql.DataSource" />
Java代碼的用途(有點縮短):
DataSource ds = (DataSource) env.lookup("java:/comp/env/jdbc/myDBLink");
這個偉大的工程翻過重新啓動,我的Tomcat服務器的重新啓動。可以使用Hibernate,EclipseLink,純JDBC訪問數據庫,並且數據在其中保存良好。文檔狀態,這應該存儲在CATALINA_HOME下面的某處,但在那裏我找不到任何看起來像Derby DB的東西。另外,當我搜索我的所有磁盤時,找不到名爲myDerbyDB
的文件夾或包含相關內容的文件夾Databases
。
所以我的問題是:當德比的存儲我的數據?
您使用的搜索你的硬盤是什麼工具?鑑於JDBC連接URL,您絕對應該能夠找到該文件夾。也許你在不同的服務器上運行Tomcat,並且你正在搜索錯誤的服務器?嘗試搜索名爲「seg0」的文件夾或名爲「db.lck」的文件。當你說你可以通過「純JDBC」訪問數據庫時,你的意思是你正在訪問**相同的**數據庫嗎?如果是這樣,那麼您在該「純JDBC」程序中使用了哪些JDBC連接URL,並且可以確定它正在存儲數據庫的位置? –
您的數據庫將位於'$ WORKING_DIR \ Databases \ myDerbyDB'中。如果您將Tomcat作爲Windows服務運行,那麼'$ WORKING_DIR'將取決於Windows服務機制如何設置它。如果服務以某種非常規登錄的用戶身份運行,則可能無法找到它。 –
Derby在嵌入式模式下作爲tomcat中的全局資源運行(意味着在系統方面不是全局的)。 Tomcat本身是由Eclipse啓動的。我使用Windows資源管理器搜索名爲「數據庫」的文件夾(例如myDerbyDB)。有趣的是,當我搜索「seg0」時,我得到一個結果,它指向了eclipse的安裝路徑(在我的例子中:D:\ jee-neon \ eclipse \ Databases \ \ seg0)。這在使用數據庫名稱搜索時沒有顯示出來。感謝提示。 –
themole