0

Java で記述された Lotus Notes Agent があります。Lotus Notes クライアントでボタンをクリックして実行すると、ユーザーにメッセージがポップアップ表示されます。ポップアップを表示しようとすると、Java Debug コンソールに次のようなエラーが表示されます。

java.security.AccessControlException: Access denied (java.lang.RuntimePermission exitVM.0)
at java.security.AccessController.checkPermission(AccessController.java:108)
at java.lang.SecurityManager.checkPermission(SecurityManager.java:544)
at COM.ibm.JEmpower.applet.AppletSecurity.superDotCheckPermission(AppletSecurity.java:1449)
at COM.ibm.JEmpower.applet.AppletSecurity.checkRuntimePermission(AppletSecurity.java:1311)
at COM.ibm.JEmpower.applet.AppletSecurity.checkPermission(AppletSecurity.java:1611)
at COM.ibm.JEmpower.applet.AppletSecurity.checkPermission(AppletSecurity.java:1464)
at java.lang.SecurityManager.checkExit(SecurityManager.java:756)
at java.lang.Runtime.exit(Runtime.java:99)
at java.lang.System.exit(System.java:279)
at ClipboardTest.main(Unknown Source)
at JavaAgent.NotesMain(Unknown Source)
at lotus.domino.AgentBase.runNotes(Unknown Source)
at lotus.domino.NotesThread.run(Unknown Source)

私のエージェントコードは

    import lotus.domino.*;
    import javax.swing.JOptionPane; 

    public class JavaAgent extends AgentBase {

public void NotesMain() {

  try {
      Session session = getSession();
      AgentContext agentContext = session.getAgentContext();

      // (Your code goes here)
      Document cdoc = agentContext.getDocumentContext();
      String[] notesURL = new String[] {cdoc.getNotesURL()};
      ClipboardTest.main(notesURL);
      JOptionPane.showMessageDialog(null,"message","title",JOptionPane.WARNING_MESSAGE);

  } catch(Exception e) {
      e.printStackTrace();
   }

} }

データベースへの管理者アクセス権があります。このエラーの原因は何ですか?

4

1 に答える 1

2

まず、エラーが実際に何であるかを見てください。

 Access denied (java.lang.RuntimePermission exitVM.0)

VM に停止するように指示していますが、これを行う権利がありません。もしそうしていたら、その JVM インスタンスで実行されている他のものも停止し、ハング/クラッシュにつながる可能性があります。

ClipboardTest.main()第二に、コードを投稿していないメソッドでコードが失敗しています。

エージェントのプロパティには、デバッグ データを追加するオプションがあります。これにより、問題の原因となっている正確な行番号がわかります。

私の推測では、あなたは にSystem.exit()電話をかけていると思いますClipboardTest.main()。そこにあるべきではありません。

于 2013-07-18T15:02:06.360 に答える