我正在尝试使用maven在Tomcat7中部署Web服务。
下面我提供一些配置信息:
的web.xml
...
<servlet-mapping>
<servlet-name>CXFServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
...
的pom.xml
...
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>tomcat-maven-plugin</artifactId>
<version>1.1</version>
<configuration>
<url>http://localhost:8080/manager/text</url>
<server>TomcatServer</server>
<path>/services/userinfo</path>
...
鉴于<url-pattern>/services/*</url-pattern>
和<path>/services/userinfo</path>
配置,网址http://localhost:8080/services/userinfo
会显示404.
如果使用<url-pattern>/*</url-pattern>
,一切都按预期工作(即http://localhost:8080/services/userinfo
显示可用方法列表)。
问题:
为什么/services/*
在我的情况下不起作用?
答案 0 :(得分:1)
tomcat-maven-plugin配置中的路径
<path>/services/userinfo</path>
定义了部署webapp的位置(上下文根)。在这种情况下,您将其部署到
http://localhost:8080/services/userinfo
查看Tomcat安装中的webapps目录。
由于您将CXFServlet映射定义为/ services / *,因此CXF服务列表将显示在
http://localhost:8080/services/userinfo/services/
当您将映射重新定义为/ *时,它似乎按预期工作,但这只是因为您使用的上下文根和您期望的服务列表路径相同。