2011-03-24 27 views
0

代碼,我試圖讓連接:無法使用數據源中的支柱1.3.10

DataSource ds = (DataSource)servlet.getServletContext().getAttribute("dbSource"); 
System.out.println("ds1 : "+ds); 
      try 
      { 
      Connection conn = (Connection) ds.getConnection(); 
      target=login(userName, password,request,conn); 
      } 
      catch (SQLException e) 
     { 
     // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 

而且<data-source>從struts-config.xml中。

<data-source type="com.mysql.jdbc.jdbc2.optional.MysqlDataSource" key="dbSource" > 
      <set-property property="driverClassName" value="com.mysql.jdbc.Driver" /> 
      <set-property property="url" value="jdbc:mysql://192.168.10.57:3306/stocks" /> 
      <set-property property="user" value="admin" /> 
      <set-property property="password" value="admin" /> 
      <set-property property="defaultAutoCommit" value="true" /> 
      <set-property property="defaultReadOnly" value="false" /> 
      <set-property property="maxActive" value="10" /> 
      <set-property property="maxWait" value="5000" /> 
</data-source> 

回答

0

您沒有從ServletContext獲取數據源。

如果您在struts-config.xml定義您的數據源(注意字母的外殼,所有小寫),那裏面你Action你會通過調用getDataSource(HttpServletRequest request)getDataSource(HttpServletRequest request, String key)方法讓您的數據源。

例子:

public ActionForward 
     execute(ActionMapping mapping, 
       ActionForm form, 
       HttpServletRequest request, 
       HttpServletResponse response) throws Exception 
{ 
javax.sql.DataSource dataSource; 
java.sql.Connection myConnection; 
try { 
    dataSource = getDataSource(request); 
    myConnection = dataSource.getConnection(); 
    // do what you wish with myConnection 
} catch (SQLException sqle) { 
    getServlet().log("Connection.process", sqle); 
} finally { 
    //enclose this in a finally block to make 
    //sure the connection is closed 
    try { 
     myConnection.close(); 
    } catch (SQLException e) { 
     getServlet().log("Connection.close", e); 
    } 
    } 
} 

閱讀說明如何申報&檢索通過Struts的數據源的Struts 1.x documentation

+0

我找到了ans – DMS 2011-03-30 06:16:29

+0

@Dinesh,答案是什麼? – 2011-03-30 13:18:18

+0

嘿,編碼沒有任何問題。我錯誤地爲sql連接器添加了額外的jar。所以問題就出現了。現在它的工作很好。如果您需要更多解釋請回復。抱歉耽擱了。剛剛看到你的消息。 – DMS 2011-04-19 05:02:06