Добавление HTML-страницы в веб-сервис, разработанный с использованием Apache CXF - PullRequest
0 голосов
/ 18 октября 2011

Я создал веб-сервисы Apache CXF. Работает нормально. Он был успешно развернут как файл войны в Tomcat.

Веб-сервис работает нормально

Означает, когда я пытался получить доступ с

http://localhost:8080/SpringEx/HelloWorld?wsdl   

Ладно

но когда я попытался добавить HTML-страницу или страницу JSP в его папка и попытался получить доступ

http://localhost:8080/SpringEx/Test.html

Это дало мне ошибку

Служба не найдена в браузере

Test.html - простая страница

<HTML>
<BODY>
<FORM METHOD=POST >
What's your name? <INPUT TYPE=TEXT NAME=username SIZE=20><BR>
What's your e-mail address? <INPUT TYPE=TEXT NAME=email SIZE=20><BR>
What's your age? <INPUT TYPE=TEXT NAME=age SIZE=4>
<P><INPUT TYPE=SUBMIT>
</FORM>
</BODY>
</HTML>

1 Ответ

1 голос
/ 16 августа 2012

Я предполагаю, что ваш веб-сервис работает на сервлете 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...