0

我正在尝试使用 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>and <path>/services/userinfo</path>配置,URLhttp://localhost:8080/services/userinfo显示 404。

如果改用,<url-pattern>/*</url-pattern>一切都按预期工作(即http://localhost:8080/services/userinfo显示可用方法的列表)。

问题

为什么/services/*在我的情况下不起作用?

4

1 回答 1

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/

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

于 2013-08-11T16:19:59.567 回答