タスク データベースにクエリを実行する Weblogic の初期コンテキストを取得するために、次のことを行っています。
Properties h = new Properties();
h.put(Context.SECURITY_PRINCIPAL, "weblogic");
h.put(Context.PROVIDER_URL, "t3://localhost:17101");
h.put(Context.SECURITY_CREDENTIALS, "weblogic");
h.put(Context.SECURITY_AUTHENTICATION, "simple");
WLInitialContextFactory test = new WLInitialContextFactory();
test.getInitialContext(h);
Context ctx = null;
ctx = getInitialContext();
WorklistContext wliContext = WorklistContextFactory.getRemoteWorklistContext(ctx, "MyTaskApplication");
次に、次のコードで TaskQuery インターフェイスを取得します。
WorklistTaskQuery taskQuery = wliContext.getInterfaceForTaskQuery();
そして、私が行うタスクを取得するには:
taskQuery.getTasks(query);
query は com.bea.wli.worklist.api.TaskQuery オブジェクトです。
このコードは、タスクを実行しているドメイン内で実行されていることに注意してください。
残念ながら、getTasks メソッドを呼び出すと、次のエラーが発生します。
java.lang.SecurityException: [WLI-Worklist:493103]Access denied to resource /taskplans
/Manual:1.0. Applicable policy: Query Caller: principals=[] Method: com.bea.wli.worklist.security.WorklistSecurityManager.assertTaskAccessAllowed
Weblogic は、新しい初期コンテキストで設定されたユーザーを無視し、ブラウザーからのユーザー セットを使用しようとしているようです。ブラウザセッションを持たないバックグラウンドワーカーでクエリ検索を行う必要があるかもしれません(明らかに)。
誰でもこれを手伝ってもらえますか?