2011-10-18 33 views
0

我創建了一個Apache CXF Web服務。 它工作正常。 它被成功部署爲Tomcat的戰爭文件。將HTML頁面添加到使用Apache CXF開發的Web服務中

web服務運行良好

意思,當我試圖用

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

你有web.xml中的呢? – jaxb

回答

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配置中定義(服務或不是春,要看你配置您的端點)。它不會爲您提供任何HTMLJSP頁面。

這絕對不是一個好主意,使一個Web服務,然後把它的一些Web前端。但不管怎麼說。如果您的CXF小服務程序按上圖所示映射,則只需簡單地將JSP頁放在WEB-INF文件夾下,然後通過不定義URL模式來訪問它們,該模式僅適用於Web服務。

像這樣:

http://localhost:8080/Test.html 

如果你的Web服務CXF的servlet映射是這樣的:

<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 

和你JSPHTML通過:

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