メッセージの読み取り元のキューが保護されていない限り、非常に単純な MDB が正常に動作します。
ユーザー名でキューを保護した後、メッセージを読み取れなくなりました
@MessageDriven(mappedName = "DistributedQueueTest")
public class MdbReceiver implements MessageListener {
@Resource
private MessageDrivenContext mdc;
@Override
public void onMessage(Message inMessage) {
TextMessage msg = null;
try {
msg = (TextMessage) inMessage;
System.out.println("Test MdbReceiver Message received : " + msg.getText());
} catch (JMSException e) {
e.printStackTrace();
mdc.setRollbackOnly();
}
}
}
@weblogic.jws.security.RunAs(role="Joan",mapToPrincipal="ccc_user")
ccc_user がキューからメッセージを読み取ることができるあらゆる種類の @RunAs アノテーションを試してみまし
た
import javax.annotation.security.RunAs;
@RunAs("SomeRole")
デプロイ時にエラーが発生する EJB をデプロイできません: mdbReceiver.jar からの MdbReceiver: マッピングでの役割が期待されます
注釈を使用してこれを行うにはどうすればよいですか? 注釈なしでも試してみました... weblogicコンソールの例外は同じです
weblogic.jms.common.JMSSecurityException: Access denied to resource: type=<jms>, application=UNIV_REC_Module, destinationType=queue, resource=DistributedQueueTest, action=receive
ありがとうございました