Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / TDSReader исключение / 12 сообщений из 12, страница 1 из 1
18.10.2013, 16:45:18
    #38433175
roman vintonyak
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TDSReader исключение
Помогите пожалуйста, не могу понять почему JDBC выдает такой exception:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
com.microsoft.sqlserver.jdbc.TDSParser throwUnexpectedTokenException
SEVERE: ConnectionID:1 ClientConnectionId: 44da76e8-f88d-4517-b577-6c6a2e0af3ce: FetchBufferTokenHandler: Encountered unexpected unknown token (0x2)
com.microsoft.sqlserver.jdbc.TDSReader throwInvalidTDSToken
SEVERE: ConnectionID:1 ClientConnectionId: 44da76e8-f88d-4517-b577-6c6a2e0af3ce got unexpected value in TDS response at offset:1129
com.microsoft.sqlserver.jdbc.SQLServerException: Недопустимый поток протокола потока табличных данных (TDS). Непредвиденный маркер (token) unknown token (0xFFFFFFFF).
	at com.microsoft.sqlserver.jdbc.SQLServerConnection.terminate(SQLServerConnection.java:1667)
	at com.microsoft.sqlserver.jdbc.SQLServerConnection.terminate(SQLServerConnection.java:1654)
	at com.microsoft.sqlserver.jdbc.SQLServerConnection.throwInvalidTDSToken(SQLServerConnection.java:1643)
	at com.microsoft.sqlserver.jdbc.TDSReader.throwInvalidTDSToken(IOBuffer.java:4754)
	at com.microsoft.sqlserver.jdbc.TDSParser.throwUnexpectedTokenException(tdsparser.java:100)
	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:89)
	at com.microsoft.sqlserver.jdbc.SQLServerResultSet$FetchBuffer.nextRow(SQLServerResultSet.java:4849)
	at com.microsoft.sqlserver.jdbc.SQLServerResultSet.fetchBufferNext(SQLServerResultSet.java:1781)
	at com.microsoft.sqlserver.jdbc.SQLServerResultSet.next(SQLServerResultSet.java:1034)
	at stek.servise.servlet.Employee.doPost(Employee.java:156)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at base.CharEncodingFilter.doFilter(CharEncodingFilter.java:34)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1008)
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
	at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:1852)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
	at java.lang.Thread.run(Thread.java:722)
...
Рейтинг: 0 / 0
18.10.2013, 16:51:56
    #38433197
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TDSReader исключение
Ошибка всегда точь в точь такая же? Или менятся каждый раз?
...
Рейтинг: 0 / 0
18.10.2013, 18:05:12
    #38433319
roman vintonyak
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TDSReader исключение
Blazkowicz, каждый раз меняется. Уже и jTDS драйвер пробовал, без результатов!
...
Рейтинг: 0 / 0
18.10.2013, 19:27:47
    #38433427
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TDSReader исключение
У вас Connection одновременно используется в разных потоках. JDBC не Thread Safe. Об этом четко сказано в документации.
Из-за того что несколько потоков пишут одновременно в один Connection, они ломают протокол обмена данными с сервером.
...
Рейтинг: 0 / 0
21.10.2013, 09:11:15
    #38435029
roman vintonyak
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TDSReader исключение
Blazkowicz , можно поподробней пожалуйста, как это устранить?

поменял на jTDS драйвер:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
java.sql.SQLException: Invalid state, the Connection object is closed.
	at net.sourceforge.jtds.jdbc.TdsCore.checkOpen(TdsCore.java:481)
	at net.sourceforge.jtds.jdbc.TdsCore.getNextRow(TdsCore.java:804)
	at net.sourceforge.jtds.jdbc.JtdsResultSet.next(JtdsResultSet.java:611)
	at stek.servise.servlet.Employee.doPost(Employee.java:167)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at base.CharEncodingFilter.doFilter(CharEncodingFilter.java:34)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1023)
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
java.sql.SQLException: I/O Error: Stream 2 attempting to read when no request has been sent
	at net.sourceforge.jtds.jdbc.TdsCore.nextToken(TdsCore.java:2481)
	at net.sourceforge.jtds.jdbc.TdsCore.clearResponseQueue(TdsCore.java:769)
	at net.sourceforge.jtds.jdbc.JtdsStatement.reset(JtdsStatement.java:722)
	at net.sourceforge.jtds.jdbc.JtdsStatement.close(JtdsStatement.java:966)
	at stek.servise.servlet.Employee.doPost(Employee.java:202)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at base.CharEncodingFilter.doFilter(CharEncodingFilter.java:34)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1023)
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
Caused by: java.io.IOException: Stream 2 attempting to read when no request has been sent
	at net.sourceforge.jtds.jdbc.SharedSocket.getNetPacket(SharedSocket.java:724)
	at net.sourceforge.jtds.jdbc.ResponseStream.getPacket(ResponseStream.java:477)
	at net.sourceforge.jtds.jdbc.ResponseStream.read(ResponseStream.java:114)
	at net.sourceforge.jtds.jdbc.TdsCore.nextToken(TdsCore.java:2368)
	... 25 more
java.sql.SQLException: Invalid state, the Connection object is closed.
	at net.sourceforge.jtds.jdbc.TdsCore.checkOpen(TdsCore.java:481)
	at net.sourceforge.jtds.jdbc.TdsCore.isDataInResultSet(TdsCore.java:830)
	at net.sourceforge.jtds.jdbc.JtdsResultSet.<init>(JtdsResultSet.java:149)
	at net.sourceforge.jtds.jdbc.JtdsStatement.executeSQLQuery(JtdsStatement.java:511)
	at net.sourceforge.jtds.jdbc.JtdsStatement.executeQuery(JtdsStatement.java:1427)
	at stek.servise.servlet.Employee.doPost(Employee.java:163)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at base.CharEncodingFilter.doFilter(CharEncodingFilter.java:34)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1023)
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
java.sql.SQLException: I/O Error: Stream 2 attempting to read when no request has been sent
	at net.sourceforge.jtds.jdbc.TdsCore.nextToken(TdsCore.java:2481)
	at net.sourceforge.jtds.jdbc.TdsCore.clearResponseQueue(TdsCore.java:769)
	at net.sourceforge.jtds.jdbc.JtdsStatement.reset(JtdsStatement.java:722)
	at net.sourceforge.jtds.jdbc.JtdsStatement.close(JtdsStatement.java:966)
	at stek.servise.servlet.Employee.doPost(Employee.java:202)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at base.CharEncodingFilter.doFilter(CharEncodingFilter.java:34)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1023)
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
Caused by: java.io.IOException: Stream 2 attempting to read when no request has been sent
	at net.sourceforge.jtds.jdbc.SharedSocket.getNetPacket(SharedSocket.java:724)
	at net.sourceforge.jtds.jdbc.ResponseStream.getPacket(ResponseStream.java:477)
	at net.sourceforge.jtds.jdbc.ResponseStream.read(ResponseStream.java:114)
	at net.sourceforge.jtds.jdbc.TdsCore.nextToken(TdsCore.java:2368)
	... 25 more
...
Рейтинг: 0 / 0
21.10.2013, 09:53:02
    #38435074
roman vintonyak
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TDSReader исключение
вот сам код:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
public class Employee extends HttpServlet {

    static final String DB_URL = "jdbc:sqlserver://test:1433;databaseName=test;characterEncoding=UTF-8";
    static final String USER = "";
    static final String PASS = "";
    Connection conn = null;
    Statement stmt = null;
    ResultSet rs = null;


    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        response.addHeader("Access-Control-Allow-Origin", "*");
        PrintWriter out = response.getWriter();
        try {

            String task = request.getParameter("task");
            task = (task == null ? "null" : task);
            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
            conn = DriverManager.getConnection(DB_URL, USER, PASS);
            stmt = conn.createStatement();
            String sql;
            if (task.equals("COMMUNIC")) {
                String orgId = request.getParameter("org_id");           
                String lastName = request.getParameter("last_name");
                String jobName = request.getParameter("job_name");
                String telAts = request.getParameter("tel_ats").replaceAll("-", "");
                String value = new String();
                sql = "SELECT tab_no, fname+' '+sname+' '+tname as name, posada,isnull(tel1,'')as tel1,isnull(tel2,'')as tel2,isnull(email,'') as email,job,name as job_txt  FROM emploe left join tree on job = tree.id"
                        + " where job = '" + orgId + "' or fname LIKE '" + lastName + "%' or posada = '" + jobName + "' or replace(tel1,'-','') like '%" + telAts + "%' or replace(tel2,'-','') like '%" + telAts + "%'";
                rs = stmt.executeQuery(sql);
                while (rs.next()) {
                String name = rs.getString("name");
                String tel1 = rs.getString("tel1");
				String tel2 = rs.getString("tel2");
				String jobtxt = rs.getString("posada");
				String em = rs.getString("email");
				String email = "<a href='mailto:" + em + "'>" + em + "</a>";
				String tn = rs.getString("tab_no");
                String org = rs.getString("job_txt");
                String org_id = rs.getString("job");
                    value += "<tr class='row'><td>"+ name + "</td><td>" + tel1 + "</td><td>" + email + "</td><td>" + jobtxt + "</td></tr>";
                }
                out.println(value);

            } else if (task.equals("JOB_POS")) {
                response.setContentType("text/xml;charset=UTF-8");
                String value = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><main>";
                sql = "Select posada  FROM emploe  group by posada";
                rs = stmt.executeQuery(sql);
                while (rs.next()) {
                    value += "<LONG_TEXT>" + rs.getString("posada") + "</LONG_TEXT>";
                }
                value += "</main>";
                out.println(value);
            } else if (task.equals("ORG_UNIT_LIST")) {
                sql = "SELECT id,name,pdrent_id FROM tree";
                rs = stmt.executeQuery(sql);
                String value = new String();
                ArrayList<Item> arr = new ArrayList<Item>();
                while (rs.next()) {
                    arr.add(new Item(rs.getString("id"), rs.getString("name"), rs.getString("pdrent_id")));
                }
                value += recurs(3, arr, "0");
                out.println(value);
            } else {
                out.println("Employee: uncorrect task = " + task);
            }
        } catch (SQLException se) {
            se.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            out.close();
            try {
                if (rs != null) {
                    rs.close();
                }
            } catch (SQLException se2) {
                se2.printStackTrace();
            }
            try {
                if (stmt != null) {
                    stmt.close();
                }
            } catch (SQLException se2) {
                se2.printStackTrace();
            }
            try {
                if (conn != null) {
                    conn.close();
                }
            } catch (SQLException se) {
                se.printStackTrace();
            }
        }
    }
...
Рейтинг: 0 / 0
21.10.2013, 09:59:35
    #38435080
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TDSReader исключение
roman vintonyak,
Не тстические поля из сервлета уберите. Сервлет не предназначен для хранения состояния. Ну, и с базой следует работать через пул (DataSource), а не создавать физические соединения на каждый запрос.
...
Рейтинг: 0 / 0
22.10.2013, 12:27:05
    #38436680
roman vintonyak
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TDSReader исключение
Blazkowicz , менял на пул, тоже самое(
...
Рейтинг: 0 / 0
22.10.2013, 12:32:20
    #38436698
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TDSReader исключение
roman vintonyak Blazkowicz , менял на пул, тоже самое(
Код в студию.
...
Рейтинг: 0 / 0
22.10.2013, 15:52:25
    #38437124
roman vintonyak
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TDSReader исключение
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
public class Employee extends HttpServlet {
    Connection conn = null;
    Statement stmt = null;
    ResultSet rs = null;


    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        response.addHeader("Access-Control-Allow-Origin", "*");
        PrintWriter out = response.getWriter();
        try {

            String task = request.getParameter("task");
            task = (task == null ? "null" : task);
           
            InitialContext ic = new InitialContext();
            DataSource ds = (DataSource) ic.lookup("java:comp/env/jdbc/test");
            conn = ds.getConnection();
            stmt = conn.createStatement();
            String sql;
           
            if (task.equals("COMMUNIC")) {
                String orgId = request.getParameter("org_id");           
                String lastName = request.getParameter("last_name");
                String jobName = request.getParameter("job_name");
                String telAts = request.getParameter("tel_ats").replaceAll("-", "");
                String value = new String();
                sql = "SELECT tab_no, fname+' '+sname+' '+tname as name, posada,isnull(tel1,'')as tel1,isnull(tel2,'')as tel2,isnull(email,'') as email,job,name as job_txt  FROM emploe left join tree on job = tree.id"
                        + " where job = '" + orgId + "' or fname LIKE '" + lastName + "%' or posada = '" + jobName + "' or replace(tel1,'-','') like '%" + telAts + "%' or replace(tel2,'-','') like '%" + telAts + "%'";
                rs = stmt.executeQuery(sql);
                while (rs.next()) {
                String name = rs.getString("name");
                String tel1 = rs.getString("tel1");
				String tel2 = rs.getString("tel2");
				String jobtxt = rs.getString("posada");
				String em = rs.getString("email");
				String email = "<a href='mailto:" + em + "'>" + em + "</a>";
				String tn = rs.getString("tab_no");
                String org = rs.getString("job_txt");
                String org_id = rs.getString("job");
                    value += "<tr class='row'><td>"+ name + "</td><td>" + tel1 + "</td><td>" + email + "</td><td>" + jobtxt + "</td></tr>";
                }
                out.println(value);

            } else if (task.equals("JOB_POS")) {
                response.setContentType("text/xml;charset=UTF-8");
                String value = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><main>";
                sql = "Select posada  FROM emploe  group by posada";
                rs = stmt.executeQuery(sql);
                while (rs.next()) {
                    value += "<LONG_TEXT>" + rs.getString("posada") + "</LONG_TEXT>";
                }
                value += "</main>";
                out.println(value);
            } else if (task.equals("ORG_UNIT_LIST")) {
                sql = "SELECT id,name,pdrent_id FROM tree";
                rs = stmt.executeQuery(sql);
                String value = new String();
                ArrayList<Item> arr = new ArrayList<Item>();
                while (rs.next()) {
                    arr.add(new Item(rs.getString("id"), rs.getString("name"), rs.getString("pdrent_id")));
                }
                value += recurs(3, arr, "0");
                out.println(value);
            } else {
                out.println("Employee: uncorrect task = " + task);
            }
        } catch (SQLException se) {
            se.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            out.close();
            try {
                if (rs != null) {
                    rs.close();
                }
            } catch (SQLException se2) {
                se2.printStackTrace();
            }
            try {
                if (stmt != null) {
                    stmt.close();
                }
            } catch (SQLException se2) {
                se2.printStackTrace();
            }
            try {
                if (conn != null) {
                    conn.close();
                }
            } catch (SQLException se) {
                se.printStackTrace();
            }
        }
    }
...
Рейтинг: 0 / 0
22.10.2013, 15:59:44
    #38437143
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TDSReader исключение
Поля уберите. Я же писал уже выше. У вас поля используются разными потоками.
...
Рейтинг: 0 / 0
22.10.2013, 16:04:01
    #38437155
roman vintonyak
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TDSReader исключение
Blazkowicz, спс очень, действительно в этом была причина)))
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / TDSReader исключение / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]