Я пытаюсь изменить существующий веб-сервис SOAP, который использует Spring-WS и JAXB на Tomcat.Я создал новый WAR-файл со своими изменениями и развернул его в папке веб-приложений при установке Tomcat.
При вызове исходных (уже существующих) методов службы, запрос и ответ службы SOAP в порядке.Но при вызове службы по новому методу я получаю SOAP-ответ службы недоступен и не найден [404]
2011-07-25 12:58:23,365 DEBUG [org.springframework.ws.client.core.WebServiceTemplate] - Opening [org.springframework.ws.transport.http.HttpUrlConnection@12b9f14] to [http://<service URL>]
2011-07-25 12:58:23,521 DEBUG [org.springframework.ws.soap.saaj.support.SaajUtils] - SOAPElement [com.sun.xml.internal.messaging.saaj.soap.ver1_1.Envelope1_1Impl] implements SAAJ 1.3
2011-07-25 12:58:23,552 DEBUG [org.springframework.ws.soap.saaj.support.SaajUtils] - SOAPElement [com.sun.xml.internal.messaging.saaj.soap.ver1_1.Body1_1Impl] implements SAAJ 1.3
2011-07-25 12:58:23,896 DEBUG [org.springframework.ws.client.MessageTracing.sent] - Sent request [<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"><SOAP-ENV:Header/><SOAP-ENV:Body><ns2:DelRequest xmlns:ns2="http://<changed_address>"><ns2:userId>ncc1@%</ns2:userId><ns2:dateFromMillis>1308956400000</ns2:dateFromMillis><ns2:dateToMillis>1311634800000</ns2:dateToMillis></ns2:DelRequest></SOAP-ENV:Body></SOAP-ENV:Envelope>]
2011-07-25 12:58:25,318 DEBUG [org.springframework.ws.client.core.WebServiceTemplate] - Received error for request [SaajSoapMessage {http://<changed_address>}DelRequest]
2011-07-25 12: 58: 25,318 ОШИБКА [net.msgplugin.controller.DeleteController] - Служба беседы недоступна по адресу: http://, Не найдено [404], null
Я импортировал проект в Eclipse и внес следующие изменения в свойства проекта:
1) С помощью аспектов проекта я проверил аспекты «Динамический веб-модуль» и «Java».2) В зависимостях модуля Java EE я проверил зависимости Maven.
Здесь следует отметить две вещи:
a) Разработчик использовал JBoss при разработке Web-сервиса, но недавно проект был передан Tomcat.b) Проект имеет структуру папок MAVEN, поэтому файл web.xml находится в папке src / main / webapp / WEB-INF, а не в WebContent / WEB-INF, что было создано при выборе фасета «Динамический веб-модуль».
Любые предложения будут высоко оценены?
Спасибо
==============================================================================
HI
Мне удалось исправить ошибку Not Found [404], но теперь я получаю другую ошибку.После дальнейшего изучения и отладки в классах WebServiceTemplate и MessageDispatcher я обнаружил, что следующий вывод на консоль:
DEBUG [org.springframework.ws.transport.http.WebServiceMessageReceiverHandlerAdapter] - Accepting incoming [org.springframework.ws.transport.http.HttpServletConnection@11f05a1] to [http://<Service_URL>]
TRACE [org.springframework.ws.server.MessageTracing.received] - Received request [<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"><SOAP-ENV:Header/><SOAP-ENV:Body><ns2:DelRequest xmlns:ns2="http://<changed_address>"><ns2:userId>ncc1@%</ns2:userId><ns2:dateFromMillis>1309042800000</ns2:dateFromMillis><ns2:dateToMillis>1311721200000</ns2:dateToMillis></ns2:DelRequest></SOAP-ENV:Body></SOAP-ENV:Envelope>]
DEBUG [org.springframework.ws.server.endpoint.mapping.PayloadRootAnnotationMethodEndpointMapping] - Looking up endpoint for [{<changed_address>}DelRequest]
DEBUG [org.springframework.ws.soap.server.SoapMessageDispatcher] - Endpoint mapping [org.springframework.ws.server.endpoint.mapping.PayloadRootAnnotationMethodEndpointMapping@6ee035] maps request to endpoint [public final net.org.messagehistory.schema.GetDelResponse net.org.messagehistory.service.endpoint.MessageHistoryEndpoint.delHistory(net.org.messagehistory.schema.GetListRequest) throws javax.xml.datatype.DatatypeConfigurationException]
DEBUG [org.springframework.ws.soap.server.SoapMessageDispatcher] - Testing endpoint adapter [org.springframework.ws.server.endpoint.adapter.GenericMarshallingMethodEndpointAdapter@1a23f67]
DEBUG [org.springframework.ws.server.endpoint.adapter.GenericMarshallingMethodEndpointAdapter] - Unmarshalled payload request to [net.org.messagehistory.schema.DelRequest@c76003]
Конечное сообщение об ошибке теперь называется «Несоответствие типа аргумента», которое, как я обнаружил, было сгенерировано одним из методов.изнутри WebServiceTemplate.class
Может кто-нибудь подсказать, в чем здесь проблема?