maven을 사용하여 Tomcat7에 웹 서비스를 배포하려고합니다.Tomcat에서 CXF webservices 배포
나는 몇 가지 구성 정보 제공 아래 :
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>
구성을 감안할 때 URL http://localhost:8080/services/userinfo
쇼 404.
대신 <url-pattern>/*</url-pattern>
을 사용하면 모든 것이 예상대로 작동합니다 (예 : http://localhost:8080/services/userinfo
은 사용 가능한 방법 목록을 보여줍니다.
질문 :
이왜 /services/*
내 경우에는 작동하지 않는 이유는 무엇입니까?
내 서비스의 전체 URL은'http : // localhost : 8080/services/userinfo/UserInfoService'입니다. ('cxf-servlet.xml'은 여기서는 역할을하지 않기 때문에 표시하지 않았습니다. 서비스 목록은'http : // localhost : 8080/services/userinfo /'에 나타납니다. 와일드 카드'/ services/* '의 명세가 정확하게 이해되면'services' 경로 아래의 하위 디렉토리에 대해 작동합니다. BTW 생성 된 전쟁 이름은'services # userinfo.war'입니다. – Eugen
매핑을 다시 '/services/* url-pattern>'으로 변경하면 서비스 목록이 'http : // localhost : 8080/services/userinfo/services'에 표시됩니까? 그것이 내가 기대할 것입니다. services # userinfo.war 이름은 CXF 나 서블릿 매핑과 관계없이 웹 애플리케이션을'http : // localhost : 8080/services/userinfo /'로 매핑합니다. –
Patrick
예. 포트 번호 바로 다음부터 일치가 시작될 것이라고 생각했습니다. – Eugen