Форум КриптоПро
»
Средства криптографической защиты информации
»
КриптоПро JCP, JavaTLS
»
Ошибка обращения к http://188.254.16.92:7777/gateway/services/SID0003038?wsdl
Статус: Новичок
Группы: Участники
Зарегистрирован: 10.09.2012(UTC) Сообщений: 7 Откуда: Санкт-Петербург
|
Здравствуйте, Работаю с jdk 1.7. Создал прокси клиента, используя Код:wsimport -s src/test/java -p ru.gosuslugi.smev -d target/classes -extension http://188.254.16.92:7777/gateway/services/SID0003038?wsdl
Написал код: Код:
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import javax.xml.soap.MessageFactory;
import javax.xml.soap.SOAPException;
import javax.xml.soap.SOAPMessage;
import javax.xml.soap.SOAPPart;
import javax.xml.transform.stream.StreamSource;
import javax.xml.ws.Holder;
import org.apache.xml.security.exceptions.XMLSecurityException;
import org.apache.xml.security.signature.XMLSignatureException;
import org.junit.Test;
import ru.gosuslugi.smev.SignatureTool;
import ru.gosuslugi.smev.SignatureToolService;
import ru.gosuslugi.smev.VerifySignatureRequestType;
import ru.gosuslugi.smev.VerifySignatureResponseType;
public class TestSignature {
@Test
public void test_verifySoapMessageExt() {
try {
MessageFactory mf = MessageFactory.newInstance();
SOAPMessage message = mf.createMessage();
SOAPPart soapPart = message.getSOAPPart();
//File file = new File("src/test/resources/smev_request.xml");
File file = new File("src/test/resources/smev_message.xml");
System.out.println("Message file is " + file.getAbsolutePath());
FileInputStream is = new FileInputStream(file);
soapPart.setContent(new StreamSource(is));
//System.out.println(soapMsg2String(message));
String errorMsg = null;
long errCode = verifySoapMessageExt(message, false, new Holder<String>(errorMsg));
if (errCode == 0)
System.out.println("OK");
else
System.out.println("ERROR: " + errorMsg);
} catch (Exception e) {
e.printStackTrace();
}
}
public static long verifySoapMessageExt(SOAPMessage msg, boolean isCertCheck, Holder<String> errorMsg)
throws SOAPException, XMLSignatureException, XMLSecurityException, IOException {
//SignatureToolService sts = new SignatureToolServiceLocator();
SignatureToolService sts = new SignatureToolService();
//SignatureTool st = sts.getSignatureToolPort(new URL("http://188.254.16.92:7777/gateway/services/SID0003038"));
SignatureTool st = sts.getSignatureToolPort();
//VerifySignatureRequestType vsrType = new VerifySignatureRequestType(msg, false, "http://smev.gosuslugi.ru/actors/smev");
VerifySignatureRequestType vsrType = new VerifySignatureRequestType();
vsrType.setMessage(soapMsg2String(msg));
vsrType.setActor("http://smev.gosuslugi.ru/actors/smev");
vsrType.setIsCertCheck(isCertCheck);
VerifySignatureResponseType result = st.verifySignature(vsrType);
//System.out.println(result.getError().getErrorCode() + ", " + result.getError().getErrorMessage());
errorMsg.value = result.getError().getErrorMessage();
return result.getError().getErrorCode();
}
public static String soapMsg2String(SOAPMessage msg)
throws SOAPException, IOException {
ByteArrayOutputStream out = new ByteArrayOutputStream();
msg.writeTo(out);
return new String(out.toByteArray(), "UTF-8");
}
}
При выполнении метода test_verifySoapMessageExt() как UnitTest получаю в сроке Код:VerifySignatureResponseType result = st.verifySignature(vsrType);
ошибку Код:com.sun.xml.internal.ws.client.ClientTransportException: HTTP transport error: java.net.UnknownHostException: d00smevapp01
Что здесь не так? Игорь.
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 10.09.2012(UTC) Сообщений: 7 Откуда: Санкт-Петербург
|
Прописал в hosts запись 188.254.16.92 d00smevapp01 Помогло, но выглядит как-то не спортивно. Нельзя ли как-то в коде параметром правильный url подставлять?
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,001 Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 713 раз в 673 постах
|
Здравствуйте. 1) Не заметил в коде использования jcp или jtls; 2) вопрос, на мой взгляд, не соответствует тематике форума. Отредактировано пользователем 15 сентября 2012 г. 13:52:38(UTC)
| Причина: Не указана |
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,001 Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 713 раз в 673 постах
|
|
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 10.09.2012(UTC) Сообщений: 7 Откуда: Санкт-Петербург
|
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 21.12.2013(UTC) Сообщений: 1 Откуда: Ижевск
|
пример подстановки URL сервиса для того чтобы не иметь несколько копий wsdl на каждый сервис:
public VerifySignatureResponseType checkSignature(String serviceURL, String msg){ // Используем веб-клиент СМЭВ. SignatureToolService sts = new SignatureToolService();
// Задаем адрес тестового сервиса. SignatureTool st = sts.getSignatureToolPort(); ((BindingProvider) st).getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, serviceURL);
// Передаем документ, при этом зарещаем проверять сертификат. VerifySignatureRequestType vsrType = new VerifySignatureRequestType(); vsrType.setMessage(msg); vsrType.setIsCertCheck(false); vsrType.setActor("http://smev.gosuslugi.ru/actors/smev");
VerifySignatureResponseType result = st.verifySignature(vsrType); return result;
}
|
|
|
|
Форум КриптоПро
»
Средства криптографической защиты информации
»
КриптоПро JCP, JavaTLS
»
Ошибка обращения к http://188.254.16.92:7777/gateway/services/SID0003038?wsdl
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close