我不知道如何在Tomcat上更改我的JAX-WS WebService的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>
太阳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 :(得分:0)
您是否尝试过<url-pattern>/ws/WSCalc</url-pattern>
?
你得到的是404,因为在web.xml中没有到/ ws / WSCalc的servlet映射。
答案 1 :(得分: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>
在sun-jaxws.xml中改为
<endpoint ... url-pattern="/WSCalc/WSCalc" />
答案 2 :(得分:-1)
如上修改web.xml 将sun-jaxws.xml设为
<endpoint ... url-pattern="/WSCalc" />