0

TomcatでJAX-WSWebServiceのURLを変更する方法がわかりません。

localhost:8080 / WSCalc / WSCalc?wsdlは正常に実行されますが、URLをlocalhost:8080 / ws / WSCalc / WSCalc?wsdlに変更したいと思います。

以下の構成では、localhost:8080 / ws / WSCalc /(index.jsp)を実行できますが、WebService localhost: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>

sun-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>
4

3 に答える 3

0

試しました<url-pattern>/ws/WSCalc</url-pattern>か?

web.xmlには/ws/ WSCalcへのサーブレットマッピングがないため、404を取得しています。

于 2013-03-14T10:40:21.430 に答える
0

最初に必要なのは、アプリケーションのデプロイメントのコンテキストを変更することです。これについては、コンテキストコンテナを参照してください。

一方、パターンマッピングの場合、で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>

sun-jaxws.xmlで次のように変更します

<endpoint ... url-pattern="/WSCalc/WSCalc" />
于 2013-03-14T17:28:11.897 に答える