別のパッケージ内の Visualforce ページからのコントローラへのアクセス
別のパッケージ内にある Visualforce ページから Apex コントローラにアクセスするには、カスタムコントローラクラスで @namespaceAccessible Apex アノテーションを使用します。第一世代パッケージで特定の名前空間を使用して開発できる管理パッケージは 1 つのみです。第二世代パッケージでは、同じ名前空間を使用して複数の (ロックされていない) 管理パッケージを開発できます。デフォルトでは、パッケージにインストールされた Visualforce ページから、別のパッケージの Apex クラスの公開 Apex メソッドをコールすることはできません。これは 2 つのパッケージが同じ名前空間にある場合にも該当します。
次の例は、Apex コードに @namespaceAccessible アノテーションを含める方法を示しています。
まず、コントローラの上にアノテーションを追加します。これにより、異なるパッケージの名前空間全体から参照可能になります。コントローラに注釈を付けることで、アノテーションに追加するメソッドも参照可能にする必要があります。次に、ネームスペース全体で表示するメソッドのそれぞれについて、それらの前に @namespaceAccessible アノテーションを追加します。アノテーションは、パッケージの外側にあり、さらに同じ名前空間内にあるメソッドのみを参照可能にする場合に使用します。