私は現在のWebappをJava/Spring MVCで開発しました。私はこのような何かを探して、クラスに@RestControllerアノテーションを使用して、私のRESTサービスを公開している:HttpServletRequest + @RestControllerを結合する方法
@RestController
@RequestMapping("/company")
public class ConcreteCompanyController implements CompanyController {
@RequestMapping(method = RequestMethod.GET)
@ResponseStatus(value = HttpStatus.OK)
@Override
public JsonCompany get(@RequestParam("name") String name) {
//omitted
}
}
私も一種の本のように見えるクラスを記述するために私を必要とし、GoogleのLIBSを使用しています(グーグルから撮影しますサンプル):
public class CalendarAppEngineSample extends AbstractAppEngineAuthorizationCodeServlet {
static final String APP_NAME = "Google Calendar Data API Sample Web Client";
static final String GWT_MODULE_NAME = "calendar";
private static final long serialVersionUID = 1L;
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException {
response.setContentType("text/html");
response.setCharacterEncoding("UTF-8");
PrintWriter writer = response.getWriter();
writer.println("<!doctype html><html><head>");
writer.println("<meta http-equiv=\"content-type\" content=\"text/html; charset=UTF-8\">");
writer.println("<title>" + APP_NAME + "</title>");
writer.println(
"<link type=\"text/css\" rel=\"stylesheet\" href=\"" + GWT_MODULE_NAME + ".css\">");
writer.println("<script type=\"text/javascript\" language=\"javascript\" " + "src=\""
+ GWT_MODULE_NAME + "/" + GWT_MODULE_NAME + ".nocache.js\"></script>");
writer.println("</head><body>");
UserService userService = UserServiceFactory.getUserService();
writer.println("<div class=\"header\"><b>" + request.getUserPrincipal().getName() + "</b> | "
+ "<a href=\"" + userService.createLogoutURL(request.getRequestURL().toString())
+ "\">Log out</a> | "
+ "<a href=\"http://code.google.com/p/google-api-java-client/source/browse"
+ "/calendar-appengine-sample?repo=samples\">See source code for "
+ "this sample</a></div>");
writer.println("<div id=\"main\"/>");
writer.println("</body></html>");
}
@Override
protected String getRedirectUri(HttpServletRequest req) throws ServletException, IOException {
return Utils.getRedirectUri(req);
}
@Override
protected AuthorizationCodeFlow initializeFlow() throws IOException {
return Utils.newFlow();
}
}
これらを組み合わせる方法がわからないので、両方を休憩サービスとして利用できるようになります。私はweb.xmlで何かをしなければならないかもしれないと思いますが、何ですか?
編集:
ちょうど明確にする。私は自分のプロジェクトに複数のRestControllerを持っていて、私はそれらを変更したくありません。私は、CalendarAppEngineSampleのようなファイルを追加して、doGetメソッドが休憩サービスとして公開されていることを確認したいと考えています。
それは動作しません、私は "AbstractAppEngineAuthorizationCodeServlet"を拡張する必要があります。私は同じメソッドでそれらを組み合わせることを望んでいません、私は両方のタイプの休憩サービスを同じWebアプリケーションで持つことができるようにしたいと思います。 –
この場合、あなたが何を求めているのかは不明です。 'AbstractAppEngineAuthorizationCodeServlet'を拡張する必要があるなら、それを実行して、すべてのネーミングされたパラメータはSpringによって自動的に埋められます。 – Andremoniy
Googleのサンプルコードをプロジェクトのファイルに置くと、Springは自動的にdoGetメソッドを見つけて休憩サービスとして公開すると言っていますか? –