2012-03-12 15 views
2

我有一个小问题,一个XPage应用程序,并希望有人有 解决方案:必须在更改acl条目后清理数据库?

第一部分概述: 我有4个用户角色的访问控制列表:管理员,用户,没有访问

在我例如,我更改用户角色,例如从用户到管理员。 然后打开一个XPage女巫使用Java类,我得到了以下错误消息

错误500 HTTPWeb服务器:无法处理的异常

来解决这个问题,我必须“干净”的项目。

有没有人有一个想法如何解决这个不清洗?我的意思是用户如果没有设计师就可以解决这个问题。

我想了解如何与解决问题的“清理并生成项目”

这里是完整的错误我改变了ACL后得到:

The runtime has encountered an unexpected error. 
Error source 
Page Name:/ProjectsByName.xsp 
Control Id: _id60 

Exception 
com.ibm.xsp.exception.EvaluationExceptionEx: Error while executing JavaScript computed expression 
Error while executing JavaScript computed expression 
Script interpreter error, line=1, col=27: [ReferenceError] 'de' not found 

JavaScript code 

1: var exUtils = new de.itwu.RessourceUtils(); 
2: 
3: return exUtils.computeCountrybox(); 

► Stack Trace 

堆栈跟踪是空的 的Java类使用正确的包装在Code/Java中。 后干净的一切工作正常...没有其他像重新启动服务器上的HTTP任务或重新启动服务器的工作

+0

当您更新acl并打开xpage时,您是否登录或只刷新页面? – jjtbsomhorst 2012-03-12 11:35:16

+0

我刚更新了我的一个XPage项目的ACL,它也使用了bean,之后我得到了“javax.faces.FacesException:无法实例化类”。我必须清理并重新构建才能使其工作(并且只对服务器副本有帮助,而不能帮助我的本地副本) – 2012-03-12 11:46:35

+0

500是XPage发生任何错误时返回的一般错误代码,可能表示任何内容。如果您在应用程序属性中启用标准错误报告,您将能够看到完整的堆栈跟踪......这不仅会告诉您具体发生了什么问题,而且通常会告诉您确切的代码行失败。 – 2012-03-12 11:52:11

回答

1

如果你的java类是在java设计元素中,将它们移动到web-inf\

+0

啊,解决我的问题,谢谢 – 2012-03-15 15:45:34

0

我觉得这与您使用更新数据库的ID有关。 ACL中的更改会在数据库的某个属性的签名者中生成更改。签名者没有正确的权限。我认为你应该检查以下网址:An Intro to using xpages

要运行的XPage,您必须更改服务器的默认安全设置 。转到服务器的names.nsf - >配置 - >服务器 - > 所有服务器文档 - > - >安全性 - >签署代理程序或012xxXPage代表调用程序运行。添加最后保存XPage的人的姓名。在我们的例子中,那将是你。

2

尝试重新启动HTTP任务。注意:如果通过控制台命令这样做,而不是通过管理员GUI,一定要发出

restart task http 

tell http restart 

前者完全关闭任务,并再次启动;后者仅刷新某些配置设置。

执行完全重新启动任务会导致JVM被销毁,从而释放任何可能缓存了用户权限的类实例。清理项目迫使它在每个应用程序的基础上发生,因为在JVM中缓存的类不再存在(因为它已被新版本取代),但重新启动HTTP任务对于所有不需要Designer的应用程序都是一样的。

1

如果您在数据库中使用sessionAsSigner,则数据库需要由一致的签名者签名。如果更改ACL影响数据库的签名,则可能会在签名者中发生冲突。如果是这样,清理该项目将不起作用。

尝试再次签名数据库。如果您使用托管的bean,则可能需要执行clean以重建类文件。我已经看到了这种情况。

跟踪日志可能会告诉您更多信息。在标准Domino安装中,可以在C:\ Program Files \ IBM \ Lotus \ Domino \ data \ domino \ workspace \ logs中找到它们。

0

从notes客户端中删除您的cache.ndk。

如果数据库服务器使用

dbcache flush 

清晰你缓存在服务器内存...

如果不是在两个工作,你应该重新启动HTTP或重新启动服务器或客户。