我创建了一个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>
答案 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,取决于您配置端点的方式)。它不会为您提供任何HTML
或JSP
页。
创建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
您的HTML
或http://localhost:8080/SpringEx/Test.html
通过:
{{1}}