将HTML页面添加到使用Apache CXF开发的Web服务

时间:2011-10-18 05:28:37

标签: web-services cxf

我创建了一个Apache CXF Web服务。 它工作正常。 它被成功部署为Tomcat的战争文件。

Webservice运行良好

表示我尝试使用

进行访问
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 个答案:

答案 0 :(得分:1)

我假设您的Web服务在上下文路径上的Apache CXF servlet上运行:SpringEx,它在Web应用程序描述符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 servlet被映射为仅侦听该上下文:SpringEx并且仅适用于Spring配置中定义的服务(或不是spring,取决于您配置端点的方式)。它不会为您提供任何HTMLJSP页。

创建Web服务然后在其中放入一些Web前端这绝对不是一个好主意。但无论如何。如果我在上面向您展示了CXF servlet,您只需将JSP页面放在WEB-INF文件夹下,然后通过不定义仅适用于URL模式的http://localhost:8080/Test.html 模式来访问它们网络服务。

像这样:

<servlet-mapping>
    <servlet-name>HelloWorld</servlet-name>
    <url-pattern>/*</url-pattern>
</servlet-mapping>

如果您的Web服务CXF servlet映射如下:

SpringEx

并且<servlet-mapping> <servlet-name>HelloWorld</servlet-name> <url-pattern>/services/*</url-pattern> </servlet-mapping> 是应用程序的名称,那么您需要执行以下操作:

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

现在可以通过以下方式访问您的网络服务:

JSP

您的HTMLhttp://localhost:8080/SpringEx/Test.html 通过:

{{1}}