2016-06-27 1 views
0

좋아 내가 .. 내가 앱의 URL/컨텍스트를 변경하려면 시작할 때까지 내 REST 응용 프로그램에 문제가, 그것은 잘 작동이REST 톰캣 루트 URL의 web.xml에의 @Path

내가 https://url/RESTservice/rest/restmethod에서 내 서비스에 액세스 할 수

,하지만 이것을 https://url/rest/restmethod으로 변경하고 싶었지만, 약간의 변경을했지만 이러한 문제를 되 돌리는 것이 문제를 해결하는 것 같습니다.

ServiceMain.java로 시작 ... web.xml 파일 다음

@Path("/") 
public class ServiceMain extends Application 

...

<servlet> 
    <servlet-name>bob-rest-service</servlet-name> 
    <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class> 
    <init-param> 
     <param-name>jersey.config.server.provider.packages</param-name> 
     <param-value>de.bob</param-value> 
    </init-param> 
    <init-param> 
     <param-name>jersey.config.server.provider.classnames</param-name> 
     <param-value>org.glassfish.jersey.filter.LoggingFilter;org.glassfish.jersey.moxy.json.MoxyFeature;org.glassfish.jersey.media.multipart.MultiPartFeature</param-value> 
    </init-param> 
</servlet> 

<servlet-mapping> 
    <servlet-name>bob-rest-service</servlet-name> 
    <url-pattern>/rest/*</url-pattern> 
</servlet-mapping> 

메이븐의 pom.xml ...

<build> 
    <finalName>RESTservice</finalName> 
    <plugins> 
     <plugin> 
      <artifactId>maven-war-plugin</artifactId> 
      <version>2.6</version> 
      <configuration> 
       <failOnMissingWebXml>false</failOnMissingWebXml> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 

그리고 마지막으로 "/ RESTservice"와 프로젝트 -> 속성 -> 웹 프로젝트 설정으로 이동하는 Eclipse의 Tomcat 모듈보기입니다. -> 컨텍스트 루트 : "RESTservice".

이것은 내 실제 설정입니다. 이제는 경로를 변경하기 전까지는 나머지 방법을 호출 할 때 HTTP 404가 발생하며, 금요일까지는 제대로 작동하고 있습니다.

오류 로그 :

Jun 27, 2016 9:57:25 AM org.glassfish.jersey.filter.LoggingFilter log 
INFORMATION: 14 * Server has received a request on thread http-bio-443-exec-8 
14 > POST https://bob.de/RESTservice/rest/login 
14 > accept-encoding: gzip,deflate 
14 > connection: Keep-Alive 
14 > content-length: 127 
14 > content-type: application/x-www-form-urlencoded 
14 > host: bob.de 
14 > user-agent: Apache-HttpClient/4.5.2 (Java/1.8.0_91) 

Jun 27, 2016 9:57:25 AM org.glassfish.jersey.filter.LoggingFilter log 
INFORMATION: 14 * Server responded with a response on thread http-bio-443-exec-8 
14 < 404 

편집 : 내가 뭘 궁금 것은 그 나는 그면 ClassNotFound 예외하고 최대 절전 모드 물건을 보였다 근무 후, 도시하지 최대 절전 모드 쿼리를 가지고 비슷한 문제가 있었을 때. 그래서 최대 절전 모드 문제가있을 수 있습니다?

EDIT2 : 경험이 부족하여 리소스가로드되지 않은 것처럼 보입니다. 지금 심각한 문제가 있습니다.

+1

왜 'ServiceMain' 클래스가 있습니까? 너는 필요 없어. –

+0

나는 그것이 그랬던 곳의 튜토리얼을 따라 갔다. – kaya

+0

web.xml에 모든 구성이 있기 때문에 필요하지 않습니다. 그리고 그것 위에'@ Path'를 추가하면 패키지 스캔에서 픽업되고 루트 리소스로 추가됩니다. –

답변

0

우리가 응용 프로그램에 사용하는 일반 URL은 https://Ip:Port/ApplicationName입니다. 귀하의 경우에는 아래 URL을 사용하여 잘 작동합니다. https://url/RESTservice/rest/restmethod. 이 URL에서 RESTservice는 응용 프로그램 이름입니다. 이제 Url의 응용 프로그램 이름이 누락 된 다른 Url로 변경하려고합니다. URL에 응용 프로그램 이름을 추가하여 정상적으로 작동하도록합니다.

+0

나는 모두를 되돌 렸고 여전히 이전과 같이 작동하지 않습니다 : \ – kaya

0

테스트를 위해 새로운 작업 공간을 만들었으므로 즉시 작동합니다.

EDIT : APP 이름을 사용하지 않고도 원하는 URL을 얻었으므로 서버 브라우저 -> 모듈 클릭 -> 응용 프로그램 선택 -> 편집 ->의 URL에서 Tomcat 인스턴스의 Doubleclick을 더블 클릭하십시오. 경로 :

관련 문제