2012-12-07 18 views
2

平臺:TomEE Web profile 1.5.0。如何在TomEE中定義MySQL數據源?

我想做一個非常基本的事情,爲MySQL設置一個數據源。我已閱讀官方指南(http://openejb.apache.org/configuring-datasources.html)。它要求我們在openejb.xml中輸入一個Resource元素。我無法在tomee-webprofile-1.5.0的任何位置找到該文件。我在其他地方閱讀過,我可以使用tomee.xml來達到同樣的目的。所以,我將它添加到我的conf/tomee.xml中。

<Resource id="TestDS" type="DataSource"> 
    JdbcDriver com.mysql.jdbc.Driver 
    JdbcUrl jdbc:mysql://localhost/test 
    UserName root 
    Password some_pass 
</Resource> 

我複製MySQL驅動程序JAR tomee/lib文件夾。

我寫了這段代碼。顯示片段在這裏:

@Resource(name="TestDS") 
DataSource ds; 

Connection con = ds.getConnection(); 
PreparedStatement ps = con.prepareStatement("select * from UserProfile"); 

的prepareStatement()調用拋出此異常:

java.sql.SQLSyntaxErrorException: user lacks privilege or object not found: USERPROFILE 
    at org.hsqldb.jdbc.Util.sqlException(Unknown Source) 
    at org.hsqldb.jdbc.Util.sqlException(Unknown Source) 

爲什麼使用HSQLDB驅動系統?實際上,無論用作@Resource的名稱,我都會得到相同的異常。

我在做什麼錯?我從Eclipse開始TomEE,如果這有什麼區別的話。

回答

3

我追查了根本原因。只有當我從Eclipse啓動TomEE時纔會出現問題。如果我從命令行啓動它,我的數據源定義工作得很好。

看來,當我從命令行運行TomEE時,它使用來自/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/conf的配置文件。要改變這種狀況,我不得不採取在Eclipse下列步驟操作:從服務器

  1. 刪除所有已部署的項目。
  2. 打開服務器設置並從「服務器位置」選擇「使用Tomcat安裝」。如果您至少有一個項目仍部署到服務器,則此部分顯示爲灰色。所以,確保你已經完成了第一步。
  3. 重新啓動服務器並重新部署應用程序。現在,我的應用程序正在查找數據源。
+0

我有完全相同的問題... TomEE使用錯誤的tomee.xml文件...但是,我使用的是NetBeans。我不知道如何解決這個問題。 –

1

解釋[我會做這RajV的答案註釋,但沒有足夠的信譽來這樣做。]

平臺:Tomee 1.6。 0 Webprofile,eclipse-jee-kepler-SR2-linux-gtk-x86_64和OpenJDK 1.7.0_51

在執行http://tomee.apache.org/tomee-and-eclipse.html(包括「Workspace元數據安裝」)中的步驟後,我得到了同樣的錯誤「用戶缺少權限或對象未找到」。 我的反應是:

$ ln -s [workspace_path]/Servers/tomee.xml \ [workspace_path]/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/conf/

作爲該溶液TomEE在蝕的優點總是使用工作區/服務器/ tomee.xml的當前版本不經任何進一步的手動操作。

0

對我來說,更好的解決方案是將tomee.xml文件放在您的wpt服務器目錄(/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/conf)中並在那裏定義您的數據源。

相關問題