Ключевое слово в защите информации
КЛЮЧЕВОЕ СЛОВО
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

2 Страницы12>
Опции
К последнему сообщению К первому непрочитанному
Offline art@stoupin.ru  
#1 Оставлено : 17 октября 2016 г. 10:40:38(UTC)
art@stoupin.ru

Статус: Новичок

Группы: Участники
Зарегистрирован: 17.10.2016(UTC)
Сообщений: 8
Российская Федерация
Откуда: Москва

Пожалуйста, помогите установить причины возникновения ошибки

Exception in thread "main" java.net.SocketException: Unexpected end of file from server
at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:792)
at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:647)
at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:789)
at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:647)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1536)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1441)
at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:480)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:338)
at mypack.MyMain.main(MyMain.java:171)



Код

public class MyMain {


public static void main(String[] args) throws
Exception {
// TODO Auto-generated method stub
System.out.println("started!");
javax.net.ssl.SSLContext sc = javax.net.ssl.SSLContext.getInstance("GostTLS");





initSC(sc);



URL url = new URL("https://test-api.express-gate.ru:2003/orders.svc");
Proxy proxy =new Proxy(Type.HTTP, new InetSocketAddress("spproxy01.jv.ru",3128));
HttpsURLConnection conn = (HttpsURLConnection)url.openConnection(proxy);

HttpsURLConnection urlc = (HttpsURLConnection) url.openConnection();
urlc.setHostnameVerifier(new HostnameVerifier()
{

@Override
public boolean verify(String hostname, SSLSession session) {
return true;
}
});
urlc.setSSLSocketFactory(sc.getSocketFactory());

conn.setDoInput(true);
conn.setDoOutput(true);
conn.setRequestMethod("POST");
conn.setRequestProperty("SOAPAction", "http://dev.triasoft.com/contracts/IOrderService/GetAllOrders");
conn.setRequestProperty("User-Agent", sun.net.www.protocol.http.HttpURLConnection.userAgent);

//conn.setRequestProperty("Accept", "*/*");
//conn.setRequestProperty("Connection", "Keep-Alive");
conn.setRequestProperty("Content-Type", "text/xml; charset=utf-8");
//conn.setRequestProperty("Connection", "close");




// conn.setInstanceFollowRedirects(true);

ByteArrayOutputStream bos = new ByteArrayOutputStream();
InputStream is = MyMain.class.getResourceAsStream("/message.xml");


try {
IOUtils.copy(is,bos);
} finally {
is.close();
}
byte[] bytes = bos.toByteArray();

conn.setRequestProperty("Content-Length", String.valueOf(bytes.length));






System.out.println("<<<<<<<<<<<<<<<<<<<Start connect>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>");
conn.connect();
System.out.println("<<<<<<<<<<<<<<<<<<<Finish connect>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>");

System.out.println("<<<<<<<<<<<<<<<<<<<Start output>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>");
OutputStream os = conn.getOutputStream();

try {
IOUtils.copy(new ByteArrayInputStream(bytes), os);
os.flush();
} finally {
os.close();
}

System.out.println("<<<<<<<<<<<<<<<<<<<Finish output>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>");


System.out.println("<<<<<<<<<<<<<<<<<<<Start Input>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>");


int respCode=conn.getResponseCode();


if(respCode >= HttpsURLConnection.HTTP_INTERNAL_ERROR) {
is = conn.getErrorStream();
try {
IOUtils.copy(is, System.err);
} finally {
is.close();
}
} else {
is = conn.getInputStream();
try {
IOUtils.copy(is, System.out);
System.out.println(IOUtils.toString(is, "UTF-8"));
} finally {
is.close();
}
}

System.out.println("<<<<<<<<<<<<<<<<<<<Finish Input>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>");





//org.jboss.weld.environment.se.StartMain.main(args);
System.out.println("finished!");
}

private static void initSC(SSLContext sc) {
// TODO Auto-generated method stub
try {
KeyStore trustHDImageStore = KeyStore.getInstance("HDImageStore", "JCP");
trustHDImageStore.load(
new FileInputStream("d:\\Temp\\Projects\\HD\\trust.store"),
"1".toCharArray()
);

System.out.println("Set up Trust Manager Factory...");

// Менеджер хранилища
TrustManagerFactory tmf = TrustManagerFactory.getInstance("GostX509", "JTLS");
//TrustManagerFactory.getInstance(ru.CryptoPro.ssl.Provider.KEYMANGER_ALG);
tmf.init(trustHDImageStore);
TrustManager trustManagers[] = tmf.getTrustManagers();
////////////////////////////////////////////////////////



////////////////////////////////////////////////////////
KeyStore hdImageStore = KeyStore.getInstance("HDImageStore", "JCP");
hdImageStore.load(null, null);

KeyManagerFactory keyManagerFactory = KeyManagerFactory.getInstance(ru.CryptoPro.ssl.Provider.KEYMANGER_ALG);

keyManagerFactory.init(hdImageStore, "123".toCharArray());

KeyManager[] keyManagers = keyManagerFactory.getKeyManagers();

System.out.println("Set up SSL Context...");
// SSL Контекст



sc.init(keyManagers, trustManagers, null);





} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("SSL Context init done.");

HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
System.out.println("SSL Socket Factory set up done.");

}


}

Что делаю не так?


Offline art@stoupin.ru  
#2 Оставлено : 17 октября 2016 г. 10:41:22(UTC)
art@stoupin.ru

Статус: Новичок

Группы: Участники
Зарегистрирован: 17.10.2016(UTC)
Сообщений: 8
Российская Федерация
Откуда: Москва

Лог работы
started!
Oct 17, 2016 10:15:18 AM ru.CryptoPro.JCP.tools.Starter check
INFO: Loading JCP 2.0 38830
Oct 17, 2016 10:15:18 AM ru.CryptoPro.JCP.tools.Starter check
INFO: JCP loaded.
Set up Trust Manager Factory...
Set up Key Manager Factory...
Set up SSL Context...
SSL Context init done.
SSL Socket Factory set up done.
<<<<<<<<<<<<<<<<<<<Start connect>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
<<<<<<<<<<<<<<<<<<<Finish connect>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
<<<<<<<<<<<<<<<<<<<Start output>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
<<<<<<<<<<<<<<<<<<<Finish output>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
<<<<<<<<<<<<<<<<<<<Start Input>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Exception in thread "main" java.net.SocketException: Unexpected end of file from server
at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:792)
at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:647)
at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:789)
at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:647)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1536)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1441)
at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:480)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:338)
at mypack.MyMain.main(MyMain.java:171)
Disconnected from the target VM, address: '127.0.0.1:1153', transport: 'socket'

Process finished with exit code 1

Отредактировано пользователем 17 октября 2016 г. 10:48:19(UTC)  | Причина: Не указана

Offline Евгений Афанасьев  
#3 Оставлено : 17 октября 2016 г. 12:37:44(UTC)
Евгений Афанасьев

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 06.12.2008(UTC)
Сообщений: 4,003
Российская Федерация
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 21 раз
Поблагодарили: 714 раз в 674 постах
Здравствуйте.
Включите логирование уровня ALL, как тут и приложите лог.
Offline art@stoupin.ru  
#4 Оставлено : 17 октября 2016 г. 14:28:44(UTC)
art@stoupin.ru

Статус: Новичок

Группы: Участники
Зарегистрирован: 17.10.2016(UTC)
Сообщений: 8
Российская Федерация
Откуда: Москва

ALL.txt (371kb) загружен 4 раз(а).


Dancing
Offline Евгений Афанасьев  
#5 Оставлено : 17 октября 2016 г. 16:37:25(UTC)
Евгений Афанасьев

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 06.12.2008(UTC)
Сообщений: 4,003
Российская Федерация
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 21 раз
Поблагодарили: 714 раз в 674 постах
А если закомментировать
Автор: art@stoupin.ru Перейти к цитате
int respCode=conn.getResponseCode();


Offline art@stoupin.ru  
#6 Оставлено : 17 октября 2016 г. 16:55:07(UTC)
art@stoupin.ru

Статус: Новичок

Группы: Участники
Зарегистрирован: 17.10.2016(UTC)
Сообщений: 8
Российская Федерация
Откуда: Москва

Ошибка будет на этапе
is = conn.getInputStream();



Exception in thread "main" java.net.SocketException: Unexpected end of file from server
at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:792)
at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:647)
at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:789)
at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:647)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1536)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1441)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:254)
at mypack.MyMain.main(MyMain.java:203)
Offline art@stoupin.ru  
#7 Оставлено : 17 октября 2016 г. 16:59:23(UTC)
art@stoupin.ru

Статус: Новичок

Группы: Участники
Зарегистрирован: 17.10.2016(UTC)
Сообщений: 8
Российская Федерация
Откуда: Москва

Я бы подумал, что ошибка на стороне сервера. Но если производить вызов через CSP, код отлично работает

Set oXMLHTTP = CreateObject("Microsoft.XMLHTTP")

Set oXMLDoc = CreateObject("MSXML2.DOMDocument")


Call oXMLHTTP.Open("POST", "https://test-api.express-gate.ru:2003/orders.svc", False)


Call oXMLHTTP.setRequestHeader("Content-Type", "text/xml; charset=utf-8")
Call oXMLHTTP.setRequestHeader("SOAPAction", "http://dev.triasoft.com/contracts/IOrderService/GetAllOrders")

Call oXMLHTTP.setRequestHeader("Content-Length", "length")

st = "<?xml version=""1.0"" encoding=""utf-8""?> <soap:Envelope xmlns:soap=""http://schemas.xmlsoap.org/soap/envelope/"" xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xmlns:xsd=""http://www.w3.org/2001/XMLSchema""> <soap:Body> <GetAllOrders xmlns=""http://dev.triasoft.com/contracts"" /> </soap:Body> </soap:Envelope> "

oXMLHTTP.send st

Debug.Print oXMLHTTP.responseXML.XML

Offline Евгений Афанасьев  
#8 Оставлено : 19 октября 2016 г. 9:14:07(UTC)
Евгений Афанасьев

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 06.12.2008(UTC)
Сообщений: 4,003
Российская Федерация
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 21 раз
Поблагодарили: 714 раз в 674 постах
а) Есть ли возможность узнать, что пишет в логи сервер?
б) Попробовать без proxy:
Автор: art@stoupin.ru Перейти к цитате
URL url = new URL("https://test-api.express-gate.ru:2003/orders.svc");
Proxy proxy =new Proxy(Type.HTTP, new InetSocketAddress("spproxy01.jv.ru",3128));
HttpsURLConnection conn = (HttpsURLConnection)url.openConnection(proxy);


Offline art@stoupin.ru  
#9 Оставлено : 19 октября 2016 г. 16:08:09(UTC)
art@stoupin.ru

Статус: Новичок

Группы: Участники
Зарегистрирован: 17.10.2016(UTC)
Сообщений: 8
Российская Федерация
Откуда: Москва

При запросах без прокси (напрямую), ответ тот же.
Пока от со стороны поддержки серверной части получили следующие логи logi.zip (6kb) загружен 3 раз(а).
Offline art@stoupin.ru  
#10 Оставлено : 19 октября 2016 г. 16:57:29(UTC)
art@stoupin.ru

Статус: Новичок

Группы: Участники
Зарегистрирован: 17.10.2016(UTC)
Сообщений: 8
Российская Федерация
Откуда: Москва

Коллеги, помогла галка "prohibit to client to send RI extension" в Control Panel JCP 2. Есть ли что-то похожее в JCP 1.0.54?
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest (4)
2 Страницы12>
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.