Невозможно использовать DataSource в стойках 1.3.10 - PullRequest
0 голосов
/ 24 марта 2011

Код, в котором я пытался установить соединение:

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>

1 Ответ

0 голосов
/ 24 марта 2011

Вы не получаете источник данных от 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 1.x , в которой объясняется, как объявлять и извлекать источник данных через Struts.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...