Я пытаюсь вызвать веб-сервис (разработанный на C#) с использованием JAX-WS, поверх https. Я попытался настроить вызов через SoapUI, и это работает.Jax-ws с https url заканчивается как http
Но, пытаясь сделать то же самое через сгенерированный клиент jax-ws, все, что я получаю, - это ответ 301. Это похоже на то, что я получаю с помощью SoapUI с http-url для одной и той же службы, а также wirehark сообщает мне, что я выполняю HTTP-процедуру HTTP (HTTP/XML) POST. Это приводит меня к убеждению, что по какой-то причине мой сгенерированный клиент JAX-WS пытается вызвать через http вместо https.
Examplified код:
new MyServiceInterface(new URL("https://acme.com/services/MyService.svc?wsdl"))
.getMyPort().test();
Как вы можете видеть, я поставить https
URL при создании моего клиента. Есть ли что-то еще, чтобы убедиться, что JAX-WS использует https? URI пространства имен - все http, может ли это вызвать проблемы?
Update:
я реализовал SOAP-запрос на обслуживание в quesiton, используя руководство от принятого ответа здесь: Working Soap client example Довольно много повторяется информация из SoapUI, и теперь он дает мне надлежащую 200 ответ.
Update 2:
При отладке мой JAX-WS-клиент, я нахожу это свойство:
"javax.xml.ws.service.endpoint.address" -> "http://acme.com/services/MyService.svc"
Это имеет HTTP, а не HTTPS. Соответствующий?
Update 3:
При использовании отладчика изменить "javax.xml.ws.service.endpoint.address" на HTTPS URL, а не HTTP, мой клиент работает. Но с чего это связано?
Выглядит как вопрос на стороне сервера. Попробуйте, если вы можете получить доступ к серверу на порту 443. – Stefan
Так как SoaPUI работает, я думаю, сервер работает так же хорошо? – Tobb