2013-03-29 5 views
0

Google은 Restlet 프레임 워크와 함께 Java를 사용하여 소프트웨어 백엔드 개발에 Google 애플리케이션 엔진을 사용하고 있습니다. 누군가 내 웹 사이트 (예 : example.com)에 갈 때 기본 페이지로 취급하려는 war 디렉토리 아래에 index.jsp가 있습니다. 그래서 web.xml의 welcome-file-list 섹션에서 언급했습니다.앱 엔진으로 Restlet 구성하기

<welcome-file-list> 
    <welcome-file>index.jsp</welcome-file> 
</welcome-file-list> 

또한 Restlet 서블릿을 web.xml의 "/ *"에 매핑했습니다.

<servlet-mapping> 
    <servlet-name>RestletServlet</servlet-name> 
    <url-pattern>/*</url-pattern> 
</servlet-mapping> 

는 그러나 문제는 심지어 전화가 페이지 즉, example.com을 기본으로하기 때문에 또한, 여기에서 발생 분명 그 라우터에서 매핑을 검색 할 수 없습니다으로 Restlet로 이동합니다. 그래서 나는 restlet 서블릿을 "/ restlet/*"에 매핑하기로 결정했다.

<servlet-mapping> 
    <servlet-name>RestletServlet</servlet-name> 
    <url-pattern>/restlet/*</url-pattern> 
</servlet-mapping> 

는 그러나이와 나는 때문에 어떻게 든 심지어 web.xml을 성공적으로 루트 불구으로 Restlet에 대한 호출을 HTTP 404 오류가 있지만으로 Restlet은 라우터 목적이 경우에 매핑을 찾지 않습니다. 필자는 분명히 restlet 라우터의 매핑을 새로운 패턴 "restlet/*"과 일치하도록 변경했습니다.

router.attach("/restlet/doSomething",DoSomething.class); 

누군가 나를 도와 줄 수 있다면 정말 좋을 것입니다. 다음은 저의 web.xml입니다 :

<servlet> 
    <servlet-name>RestletServlet</servlet-name> 
    <servlet-class>org.restlet.ext.servlet.ServerServlet</servlet-class> 
    <init-param> 
     <param-name>org.restlet.application</param-name> 
     <param-value>com.mWallet.loyaltyCardCase.LoyaltyCardCaseWebService 
     </param-value> 
    </init-param> 
</servlet> 

<!-- Catch all requests --> 
<servlet-mapping> 
    <servlet-name>RestletServlet</servlet-name> 
    <url-pattern>/restlet/*</url-pattern> 
</servlet-mapping> 

<welcome-file-list> 
    <welcome-file>index.jsp</welcome-file> 
</welcome-file-list> 

고마워요!

마나스는

답변

2

restlet 라우터가 기본 URL로 "example.com/restlet/"을 고려하기 때문에 restlet 라우터의 매핑을 새 패턴 "restlet/*"과 일치하도록 변경할 필요가 없습니다.

"/ restlet/doSomething"과 일치하도록 라우터를 변경하면 실제 URL은 "example.com/restlet/restlet/doSomething"이됩니다. 분명히 작동하지 않습니다. 당신의 응답을

router.attach("/doSomething",DoSomething.class); 
0

나는 내 프로젝트와 작업에 그것을했다. 난 당신 은 web.xml을

<servlet> 
<servlet-name>RestletServlet</servlet-name> 
<servlet-class>org.restlet.ext.servlet.ServerServlet</servlet-class> 
<init-param> 
    <param-name>org.restlet.application</param-name> 
    <param-value>com.wa.gwtamazon.server.RestApi</param-value> 
</init-param> 

    <!-- Catch all requests --> 
<servlet-mapping> 
<servlet-name>RestletServlet</servlet-name> 
<url-pattern>/*</url-pattern> 
</servlet-mapping> 

코드 아래에 작성를 잊어 난 이미 당신을 도울 것입니다 수 있습니다이 링크 Restlet API example에 대답 생각합니다.

+0

감사 :

그래서, 라우팅 당신으로 Restlet을 변경합니다. 사실 나는이 코드를 모두 내 web.xml에 가지고 있습니다 (위의 내 게시물에 전체 web.xml을 추가했습니다). 이 경우의 문제는 내 홈페이지로의 호출이 재로드, 즉 "www.example.com"에 대한 호출로 리디렉션되는 반면 index.jsp가로드되기를 바랍니다. 위에서 언급했듯이 index.html 대신로드 된 index.jsp (또는 다른 HTML 또는 JSP 페이지)를 내 웹 사이트의 기본 홈 페이지로 사용하려고합니다. 프로젝트에서 그렇게 할 수 있었습니까? – mabicha