2012-06-20 31 views
0

我在生产中使用JDBC Realm进行身份验证的Glassfish服务器。 它运行良好,但需要更改所有角色/组。我在一个测试环境中开发了一个新版本的web应用程序,更改了glassfish-web.xml和web.xml,使它们与db for groups中的groups表中包含的组一致。一切都完美无瑕。所以我将Web应用程序移到生产环境中,并更新了生产数据库中的组表的内容。 身份验证正常,但角色无法识别。我怎样才能调查这个问题?我检查了生产数据库和组表是好的,可以访问选择。 Glassfish-web.xml和web.xml与测试环境相同。这是一个真正的脑力激荡。我可以给出的唯一解释是Glassfish-web.xml由于未知原因而被丢弃,或者旧文件仍然存在并且从除web-inf目录之外的其他位置读取。Glassfish:如何调查角色/组问题

感谢所有帮助

菲利波

回答

0

探索下GlassFish的根文件夹+ \domains域的文件夹中。如果您不确定自己在哪个域名,则默认为domain1。在这个文件夹下,你应该有一个名为applications的文件夹。该文件夹包含所有应用程序的部署版本,并且它是检查应用程序的配置文件的地方。

无论如何,如果您遇到此类问题,您的项目中的Clean & Build通常会起作用,然后进行重新部署。

+0

应用程序文件夹为空。 domain.xml指向包含所有应用程序文件的不同目录。在生产中,我只有Glassfish服务器,所以我只能从那里的测试环境移动文件,我不能从生产服务器构建和部署。 – Filippo

+0

如果您的应用程序文件夹为空,我建议从头开始创建一个新域,并将其设为默认域。移动文件还不够,你需要部署你的耳朵或战争。在部署之前,您可以更改描述符文件而无需重新编译任何内容。 – perissf

+0

下面是第一条线索,我找到了目录domains \ domain1 \ generated \ policy \ appName \ appName。它包含两个文件:granted.policy和excluded.policy,其中包含基于glassfish-web和web.xml的详细说明的权限信息。其内容与先前的配置保持一致,而不是具有新角色的配置,因此我删除了/生成的全部内容以及在重新创建服务器时重新创建的内容。现在,组/角色被正确识别,所以最终这是一个缓存数据的问题。 – Filippo