NoAccessRuntimeException when testing a data source in WebLogic console
I'm working on a J2EE application. Everything works if I use a local WebLogic instance, but if I deploy it to the remote server where it will ultimately need to run (WebLogic 10.3.3.0), the data source becomes inaccessible. I can bring up the first web page, but as soon as I press a button that triggers a database access, I get the following error in the browser:
javax.faces.FacesException: #{backing_admin.loginAction}: javax.ejb.EJBException: EJB Exception: ; nested exception is:
javax.persistence.PersistenceException: Exception [EclipseLink-7060] (Eclipse Persistence Services - 2.0.2.v20100323-r6872): org.eclipse.persistence.exceptions.ValidationException
Exception Description: Cannot acquire data source [PGY2].
Internal Exception: javax.naming.NameNotFoundException: Unable to resolve 'PGY2'. Resolved ''; remaining name 'PGY2'; nested exception is: javax.persistence.PersistenceException: Exception [EclipseLink-7060] (Eclipse Persistence Services - 2.0.2.v20100323-r6872): org.eclipse.persistence.exceptions.ValidationException
Exception Description: Cannot acquire data source [PGY2].
Internal Exception: javax.naming.NameNotFoundException: Unable to resolve 'PGY2'. Resolved ''; remaining name 'PGY2'
at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:118)
at javax.faces.component.UICommand.broadcast(UICommand.java:387)
...
If I go to the remote server's WebLogic console and try to test the data source, I get this error:
An unexpected exception has occurred processing your request
Message:
Access not allowed for subject: principals=[wlm, AppTesters, Monitors], on ResourceType: JDB开发者_如何学JAVACDataSourceRuntime Action: execute, Target: testPool
Stack Trace:
weblogic.management.NoAccessRuntimeException: Access not allowed for subject: principals=[wlm, AppTesters, Monitors], on ResourceType: JDBCDataSourceRuntime Action: execute, Target: testPool
at weblogic.rmi.internal.ServerRequest.sendReceive(ServerRequest.java:205)
at weblogic.rmi.internal.BasicRemoteRef.invoke(BasicRemoteRef.java:222)
at ...
What does this error mean, and what could cause it?
Looks like the remote server has security policy defined. I am not sure though if the security has been defined globally or scope to just to specific JDBC data source.
You can log on to console if you have credentials and look at
Home >Summary of JDBC Data Sources > %your_data_source% >Roles >Policies
Roles
From the log I can see you authenticated with user "wlm". Check with the administrator on the security restrictions.
精彩评论