在Tomcat中部署CXF Web服务

时间:2013-08-10 21:38:26

标签: cxf tomcat7 url-pattern

我正在尝试使用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/*在我的情况下不起作用?

1 个答案:

答案 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/

当您将映射重新定义为/ *时,它似乎按预期工作,但这只是因为您使用的上下文根和您期望的服务列表路径相同。