Мы обновляем движок webservice в нашем приложении от AXIS1.1 до CXF3.0.2. У меня есть несколько проблем с публикацией веб-сервисов в наших приложениях.Публикация веб-сервиса NonSpring с CXF
Из того, что я понимаю, существует подход SPRING к издательским сервисам в CXF, и существует неэлементный подход. Мое предпочтение заключается в использовании неэлементного подхода, поскольку наше приложение построено на основе STRUTS, и я не хочу привлекать SPRING в качестве части этого процесса обновления. Я открыт для выбора подхода SPRING к публикации веб-сервиса CXF, если у меня нет других параметров.
Вот мой не-весенний подход к публикации веб-сервиса:
У меня есть сервлет, который расширяет org.apache.cxf.transport.servlet.CXFNonSpringServlet и переопределяет метод loadBus (ServletConfig) (только фрагмент кода из метод loadBus ниже). Этот сервлет настраивается в web.xml, чтобы получить все запросы, исходящие с шаблоном URL/услуги/*
@Override
public void loadBus(ServletConfig servletConfig)
{
super.loadBus(servletConfig);
Bus bus = getBus();
BusFactory.setDefaultBus(bus);
Endpoint ep = Endpoint.create(new myWebService());
ep.publish("/myService");
}
Класс Endpoint в приведенном выше фрагменте кода является javax.xml.ws.Endpoint. Я ожидаю, что я увижу опубликованные службы с URL-адресом http://www.myhost.com/contextRoot/services/. Но я все, что я вижу с URL является «Никакие услуги не были найдены» - Ясно, что говорит публикации не удалось .. стек исключений трассировки на консоли сервера выглядит следующим образом:
java.lang.IllegalArgumentException: Невозможно создать URL для этот адрес /MYSERVICE на com.sun.xml.ws.transport.http.server.EndpointImpl.publish (EndpointImpl.java:237) в com.chase.ccs.servlet.CCSCXFNonSpringServlet.loadBus (CCSCXFNonSpringServlet.java:37) на org.apache.cxf.transport.servlet.CXFNonSpringServlet.init (CXFNonSpringServlet.java:76) на com.ibm.ws.webcontainer.servlet.ServletWrapper.init (ServletWrapper.java:329) в com.ibm .ws.webcontainer.servle t.ServletWrapperImpl.init (ServletWrapperImpl.java:168) на com.ibm.ws.webcontainer.servlet.ServletWrapper.load (ServletWrapper.java:1283) на com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters (WebAppFilterManager.java:973) at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest (WebApp.java:3703) at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest (WebGroup.java:304) at com.ibm.ws.webcontainer.WebContainer.handleRequest (WebContainer.java:953) at com.ibm.ws.webcontainer.WSWebContainer.handleRequest (WSWebContainer.java:1655) at com.ibm.ws.webcontainer. channel.WCChannelLink.ready (WCChannelLink.java:195) at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination (HttpInboundLink.java:452) at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest (HttpInboundLink.java:511) at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest (HttpInboundLink.java: 305) at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready (HttpInboundLink.java:276) at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminators (NewConnectionInitialReadCallback.java: 214) at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete (NewConnectionInitialReadCallback.java:113) at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted (AioReadCompletionListener.java:165) at com.ibm.io.async.AbstractAsyncFuture.invokeCallback (AbstractAsyncFuture.java:217) at com.ibm .io.async.AsyncChannelFuture.fireCompletionActions (AsyncChannelFuture.java:161) at com.ibm.io.async.AsyncFuture.completed (AsyncFuture.java: 138) at com.ibm.io.async.ResultHandler.complete (ResultHandler.java:204) at com.ibm.io.async.ResultHandler.runEventProcessingLoop (ResultHandler.java:775) at com.ibm. io.async.ResultHandler $ 2.run (ResultHandler.java:905) в com.ibm.ws.util.ThreadPool $ Worker.run (ThreadPool.java:1650)
Что я упускаю или куда делась Я ошибаюсь?
Я получаю эту ошибку при использовании вашего кода ** класс не найден для SoapBindingConfiguration ** – SRF