CloudFoundry で実行したい基本的な Spring Web アプリ (Spring MVC プロジェクト) があります。デフォルトの HelloWorld プロジェクトに追加しました。CloudFoundry STS 拡張機能をインストールし、サーバーを作成し、アプリを CF サイトに公開しました。「ホーム」ページは、ローカルホスト サーバーと CF サーバーの両方に表示されます。すべて良い。しかし、別のメソッド/ビューの HomeController に戻る唯一のリンクをクリックすると、CF サーバーで「リソースが利用できません」というエラーが表示されますが、ローカルホスト (ローカル PC) サーバーでは完全に動作します。
ローカル PC で:
- URLは:(
http://localhost:8080/myapp
正しい) - 最初のページ (home.jsp) には 1 つのリンクが表示されます:
<a href="/myapp/property">Property</a>
(正しい) - リンクにマウスを合わせると、ステータス バーに次のように表示されます:
http://localhost:8080/myapp/property
(正しい) - クリックすると、 にマッピングされたメソッドに移動し
/property
、プロパティ ページが表示されます (property.jsp
)。(正しい)
CloudFoundry の場合:
- URLは:(
http://myapp.cloudfoundry.com/
正しい) - 最初のページ (
home.jsp
) は、私のローカルホスト PC と同じように表示されます。(正しい) - リンクにマウスを合わせると、ステータスバーにこれが表示されます:
http://myapp.cloudfoundry.com/myapp/property
(正しいと思います)。 - クリックすると '
esource not available
. myapp
ロケーションウィンドウに移動してURLから削除すると、機能します。
以下はすべてのコードですが、これは私のローカル PC と CloudFoundry の 2 つの環境に対する私自身の誤解の一部に過ぎないと思います。ローカルと CloudFoundry の両方の環境でアプリを動作させるために、ここで私が知らないことを誰かが教えてくれることを願っています。
これは、最初のページである home.jsp の HTML です。
<html>
<head></head>
<body>
<a href="/myspp/property">Property</a>
</body>
</html>
ホームコントローラーは次のとおりです。
package com.myapp.app;
import java.util.Locale;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;
import com.myapp.services.PropertyServicesImpl;
/**
* Handles requests for the application home page.
*/
@Controller
public class HomeController {
private static final String VIEW_HOME = "home";
private static final String VIEW_PROPERTY = "property";
private static final String ACQUISITIONS = "acquisitions";
@Autowired private PropertyServicesImpl propertyServices;
/**
* Shows home view
*/
@RequestMapping(value = "/", method = RequestMethod.GET)
public ModelAndView home(Locale locale, Model model) {
return new ModelAndView(VIEW_HOME);
}
/**
* Shows Property.jsp with jQuery tabs.
*/
@RequestMapping(value = "/property", method = RequestMethod.GET)
public ModelAndView property(Locale locale, Model model) {
return new ModelAndView(VIEW_PROPERTY);
}
}