2013-03-14 127 views
0

我不知道如何在Tomcat上更改我的JAX-WS WebService的URL。Tomcat中的JaxWS應用程序URL

本地主機:8080/WSCalc/WSCalc WSDL運行正常,但我想改變URL爲localhost:8080/WS/WSCalc/WSCalc WSDL

隨着配置下,我可以本地主機上運行:?8080/WS/WSCalc /(它的index.jsp),但我不能運行的WebService本地主機:8080/WS/WSCalc/WSCalc WSDL(返回404)

目錄的webapps /包括:

WSCalc.war 
WSCalc/ 
-index.jsp 
-META-INF/context.xml 
-WEB-INF/web.xml 
-WEB-INF/sun-jaxws.xml 
-WEB-INF/classes/* 
-WEB-INF/lib/* 

的web.xml :

<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> 
    <listener> 
     <listener-class>com.sun.xml.ws.transport.http.servlet.WSServletContextListener</listener-class> 
    </listener> 
    <servlet> 
     <servlet-name>WSCalc</servlet-name> 
     <servlet-class>com.sun.xml.ws.transport.http.servlet.WSServlet</servlet-class> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>WSCalc</servlet-name> 
     <url-pattern>/WSCalc</url-pattern> 
    </servlet-mapping> 
    <session-config> 
     <session-timeout> 
      30 
     </session-timeout> 
    </session-config> 
</web-app> 

太陽jaxws.xml:

<endpoints version="2.0" xmlns="http://java.sun.com/xml/ns/jax-ws/ri/runtime"> 
    <endpoint implementation="cz.vrana.WSCalc" name="WSCalc" url-pattern="/WSCalc"/> 
</endpoints> 

的server.xml:

<Host name="localhost" appBase="webapps" unpackWars="true" autodeploy=""true"> 
    <Context path="/ws" docBase="." /> 
</Host> 

回答

0

你試過<url-pattern>/ws/WSCalc</url-pattern>

您正在獲取404,因爲在web.xml中沒有將servlet映射到/ ws/WSCalc。

+0

它不起作用。我試過了。結果是HTTP請求狀態:404(未找到)。 – user2169201 2013-03-14 11:28:17

0

您需要的第一件事是更改應用程序部署的上下文。爲此,請參閱The Context Container

在另一隻手,爲模式映射,您可以在web.xml所有路徑開始/WSCalc/

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

改變或者如果你想有一個單一的模式

<servlet-mapping> 
    <servlet-name>WSCalc</servlet-name> 
    <url-pattern>/WSCalc/WSCalc</url-pattern> 
</servlet-mapping> 

在王孫jaxws.xml更改爲

<endpoint ... url-pattern="/WSCalc/WSCalc" /> 
+0

我發現了WS#WSCalc.war將在localhost:8080/ws/WSCalc/WSCalc?wsdl上自動部署應用程序。那很棒。但是我想在/ ws/WSCacl /中自動部署WSCalc.war ...我無法配置上下文容器。 – user2169201 2013-03-18 15:34:47

-1

修改web.xml如上 使sun-jaxws.xml成爲

<endpoint ... url-pattern="/WSCalc" />