Я предполагаю, что ваш веб-сервис работает на сервлете Apache CXF по контекстному пути: SpringEx
, который определен в дескрипторе веб-приложения web.xml
. Примерно так:
<servlet>
<servlet-name>HelloWorld</servlet-name>
<description>Apache CXF Endpoint</description>
<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>HelloWorld</servlet-name>
<url-pattern>/SpringEx/*</url-pattern>
</servlet-mapping>
Причина, по которой вы получаете эту ошибку, заключается в том, что сервлет Apache CXF
отображается для прослушивания только этого контекста: SpringEx
и применяется только к службам, определенным в вашей конфигурации Spring
(или не к Spring, зависит от того, как вы настраиваете конечная точка). Он не обслуживает вас HTML
или JSP
страниц.
Это определенно не очень хорошая идея сделать веб-сервис, а затем добавить в него какой-нибудь веб-интерфейс. Но в любом случае. Если ваш сервлет CXF
сопоставлен, как я показал вам выше, просто поместите свои страницы JSP
в папку WEB-INF
и получите к ним доступ, не задавая шаблон URL
, который применяется только для веб-службы.
Как это:
http://localhost:8080/Test.html
Если ваш сервлет CXF веб-служб отображается так:
<servlet-mapping>
<servlet-name>HelloWorld</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
и SpringEx
- это имя приложения, тогда вам нужно сделать что-то вроде этого:
<servlet-mapping>
<servlet-name>HelloWorld</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
Теперь ваш веб-сервис будет доступен через:
http://localhost:8080/SpringEx/services/HelloWorld?wsdl
А ваши JSP
или HTML
через:
http://localhost:8080/SpringEx/Test.html