Spring-ws и Stripes Framework - плохой коктейль? - PullRequest
2 голосов
/ 21 сентября 2011

Я использую Spring 2.5.6, Spring-ws 1.5.9 и Stripes 1.5.6.

У меня есть работающий веб-сервис, который реализовывал с помощью парсинга xml и т. Д. Я не буду вдаваться в подробности по этому поводу, так как не думаю, что это проблема.

Я работаю над новым ws и нашел эту страницу весьма полезной: http://jeromebulanadi.wordpress.com/2010/02/25/basic-spring-web-service-tutorial-from-contract-to-security/

... поэтому, используя приведенное выше в качестве примера для реализации нового ws (ссылка содержит пример с маршалингом / демаршаллингом объектов вместо того, чтобы делать все xml самостоятельно).

При подключении к ws я получаю это сообщение об ошибке (из шаблона веб-сервиса - также в Spring):

org.springframework.ws.client.WebServiceTransportException: Not Found [404]
        at org.springframework.ws.client.core.WebServiceTemplate.handleError(WebServiceTemplate.java:627)
        at org.springframework.ws.client.core.WebServiceTemplate.doSendAndReceive(WebServiceTemplate.java:551)
        at org.springframework.ws.client.core.WebServiceTemplate.sendAndReceive(WebServiceTemplate.java:502)
        at org.springframework.ws.client.core.WebServiceTemplate.marshalSendAndReceive(WebServiceTemplate.java:351)
        at org.springframework.ws.client.core.WebServiceTemplate.marshalSendAndReceive(WebServiceTemplate.java:345)
        at org.springframework.ws.client.core.WebServiceTemplate.marshalSendAndReceive(WebServiceTemplate.java:337)

Вызов происходит из моего шаблона, и я звоню так:

GetSignalsByCprRequest request = new GetSignalsByCprRequest();
request.setCpr(new BigInteger(cpr));
GetSignalsByCprResponse response = (GetSignalsByCprResponse) getWebServiceTemplate().marshalSendAndReceive(request);

Трассировка большего стека:

21-09-2011 11:16:35 INFO  com.mydomain.ws.client.SignalsTemplateImpl  - Entering getSignals(..) in SignalsTemplateImpl
--- ENTER TEMPLATE ---
21-09-2011 11:16:35 TRACE net.sourceforge.stripes.controller.StripesFilter  - Intercepting request to URL: /salesoverview-ws-war/services
21-09-2011 11:16:35 DEBUG net.sourceforge.stripes.controller.StripesFilter  - LocalePicker selected locale: da_DK
21-09-2011 11:16:35 DEBUG net.sourceforge.stripes.controller.StripesFilter  - LocalePicker did not pick a character encoding, using default: UTF-8
21-09-2011 11:16:35 DEBUG net.sourceforge.stripes.controller.UrlBindingFactory  - No URL binding matches /salesoverview-ws-war/services
21-09-2011 11:16:35 DEBUG net.sourceforge.stripes.controller.UrlBindingFactory  - No URL binding matches /salesoverview-ws-war/services
org.springframework.ws.client.WebServiceTransportException: Not Found [404]
        at org.springframework.ws.client.core.WebServiceTemplate.handleError(WebServiceTemplate.java:627)
        at org.springframework.ws.client.core.WebServiceTemplate.doSendAndReceive(WebServiceTemplate.java:551)
        at org.springframework.ws.client.core.WebServiceTemplate.sendAndReceive(WebServiceTemplate.java:502)
        at org.springframework.ws.client.core.WebServiceTemplate.marshalSendAndReceive(WebServiceTemplate.java:351)
        at org.springframework.ws.client.core.WebServiceTemplate.marshalSendAndReceive(WebServiceTemplate.java:345)
        at org.springframework.ws.client.core.WebServiceTemplate.marshalSendAndReceive(WebServiceTemplate.java:337)

«--- ШАБЛОН ВВОДА ---» печатается чуть выше запроса / ответа. Ошибка происходит в GetSignalsByCprResponse response = (GetSignalsByCprResponse) getWebServiceTemplate (). MarshalSendAndReceive (request); Я совершенно пустой - я понятия не имею, куда идти. У меня есть небольшая идея, что либо мыльное сообщение не содержит пространства имен, ИЛИ что Stripes отлавливает запрос - на основе трассировки стека ... Stripes использует DynamicMappingFilter , таким образом сопоставляя шаблон url с / * - что может быть проблемой.

Любые идеи или указатели высоко ценится!

1 Ответ

0 голосов
/ 26 сентября 2011

Похоже, что ваш сервлет Stripes обрабатывает URL-адреса, которые вы хотите обрабатывать с помощью сервлета Spring-ws, который будет обрабатывать ваши запросы веб-служб.Возможно, вы захотите проверить свой <url-pattern> в своем web.xml.

...