powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / TDSReader исключение
12 сообщений из 12, страница 1 из 1
TDSReader исключение
    #38433175
roman vintonyak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помогите пожалуйста, не могу понять почему 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
TDSReader исключение
    #38433197
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ошибка всегда точь в точь такая же? Или менятся каждый раз?
...
Рейтинг: 0 / 0
TDSReader исключение
    #38433319
roman vintonyak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz, каждый раз меняется. Уже и jTDS драйвер пробовал, без результатов!
...
Рейтинг: 0 / 0
TDSReader исключение
    #38433427
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У вас Connection одновременно используется в разных потоках. JDBC не Thread Safe. Об этом четко сказано в документации.
Из-за того что несколько потоков пишут одновременно в один Connection, они ломают протокол обмена данными с сервером.
...
Рейтинг: 0 / 0
TDSReader исключение
    #38435029
roman vintonyak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
TDSReader исключение
    #38435074
roman vintonyak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вот сам код:
Код: 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
TDSReader исключение
    #38435080
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
roman vintonyak,
Не тстические поля из сервлета уберите. Сервлет не предназначен для хранения состояния. Ну, и с базой следует работать через пул (DataSource), а не создавать физические соединения на каждый запрос.
...
Рейтинг: 0 / 0
TDSReader исключение
    #38436680
roman vintonyak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz , менял на пул, тоже самое(
...
Рейтинг: 0 / 0
TDSReader исключение
    #38436698
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
roman vintonyak Blazkowicz , менял на пул, тоже самое(
Код в студию.
...
Рейтинг: 0 / 0
TDSReader исключение
    #38437124
roman vintonyak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: 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
TDSReader исключение
    #38437143
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поля уберите. Я же писал уже выше. У вас поля используются разными потоками.
...
Рейтинг: 0 / 0
TDSReader исключение
    #38437155
roman vintonyak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz, спс очень, действительно в этом была причина)))
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / TDSReader исключение
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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