java.util.MissingResourceException: Can't find resource for bundle java.util.PropertyResourceBundle, key member_access_not_allowed at
java.util.MissingResourceException.(MissingResourceException.java:50) at
java.util.ResourceBundle.getObject(ResourceBundle.java:400) at
java.util.ResourceBundle.getString(ResourceBundle.java:421) at
lotus.notes.JavaString.getFormattedString(Unknown Source) at
lotus.notes.AgentSecurityManager.checkMemberAccess(Unknown Source) at
java.lang.Class.checkMemberAccess(Class.java:112) at
java.lang.Class.getDeclaredMethods(Class.java:675) at
org.apache.velocity.util.introspection.ClassMap.populateMethodCacheWith(ClassMap.java:167)
We have found the issue in velocity's source (well it is an issue only for Domino).
org.apache.velocity.util.introspection.ClassMap.populateMethodCacheWith(MethodCache, Class)
that line we have to change to get only Public methods but not all declared as it requires more access then Domino gives by default (we are not able to to get all private methods into Domino for security reason), so we just changed getDeclaredMethods to getMethods and problem has gone.
3 comments :
There is also an option to add grant directive to java.policy file to allow reflection. But this can be seen as security hole so do this only if You must.
java.policy have one more negative - you need to change it on the OS file system on all servers that will use your database.
You have to change the agents security. Look at this: http://www.dominoexperts.com/articles/Misleading-error-for-Java-agent-with-external-Jar
This will make it work - right.
Post a Comment