Вот шаги, которые я предпринял для настройки своего веб-приложения с поддержкой SOAP:
1 ) Я использую существующее веб-приложение (в котором есть существующие веб-службы REST), работающее в Spring Tool Suite (основанное на Eclipse) и использующее Jetty. В файле web.xml я добавил новую веб-службу SOAP:
Код: Выделить всё
SOAPWebService
/ws/SOAP/*
SOAPWebService
org.springframework.ws.transport.http.MessageDispatcherServlet
transformWsdlLocations
true
1
3) Я добавил DSD в WEB-INF моего веб-приложения: ws-project.xsd
4) Я создал XML-файл сервлета с именем: SOAPWebService-servlet.xml, который ссылается на ДСД
Код: Выделить всё
http://javaclue.blogspot.co.uk/ 2012/05/soap-web-service-using-spring-ws-20.html Я отредактировал пространство имен, сделав его «http://FOO.FOO/foo», но в остальном код тот же, хотя я добавил Строки System.out для показать, когда объект создан (это так) и когда вызывается метод «searchProjects» (это никогда не происходит).
Я могу успешно запустить свое веб-приложение, и если в моем браузере я перехожу по URL-адресу:
Код: Выделить всё
http://localhost:8080/MyApp/ws/SOAP/projectSearch.wsdl
Когда я использую SoapUI, я создаю новый проект и передаю ему WSDL. SoapUI кажется счастливым. Я запрашиваю запрос, и SoapUI создает конверт Soap с моим ProjectRequest в нем. Все идет очень хорошо! Однако для отправки этого запроса SoapUI требуется конечная точка. Я думаю, что моя конечная точка:
Код: Выделить всё
http://localhost:8080/MyApp/ws/SOAP/
Код: Выделить всё
http://localhost:8080/MyApp/ws/SOAP/projectSearch
http://localhost:8080/MyApp/ws/SOAP/projectSearch?wsdl
http://localhost:8080/MyApp/ws/SOAP/ProjectRequest
Обновление 1
Для ясности это то, что я делаю в SoapUI
Запустив SoapUI, я создаю «новый проект SoapUI». Имя А1. Исходный WSDL:
Код: Выделить всё
http://localhost:8080/MyApp/ws/SOAP/projectSearch.wsdl
Я нажимаю «ОК», и создается ProjectSearchSoap11. (со значком зеленого I рядом с ним) с одним проектом под ним (значок красных стрелок) и под этим «Запрос1» (значок слова SOAP). Я щелкаю правой кнопкой мыши Request1 и выбираю «Показать редактор запросов». Откроется окно с конвертом SOAP, моим пространством имен и ProjectRequest. Все это выглядит хорошо.
Теперь я хочу нажать «Отправить запрос на указанный URL-адрес конечной точки» (зеленая стрелка в левом верхнем углу), но она неактивна, пока я не укажу конечную точку (к верно). Я нажимаю на раскрывающийся список конечных точек и выбираю «редактировать текущие». Появится диалог. Я ввожу:
Код: Выделить всё
http://localhost:8080/MyApp/ws/SOAP/
Код: Выделить всё
HTTP/1.1 404 Not Found
Content-Length: 0
Server: Jetty(6.1.26)
Спасибо,
Фил
Подробнее здесь: https://stackoverflow.com/questions/124 ... int-url-is