Security Glassfish DeploymentException:链接的安全策略时出错
我一直试图从Glassfish AdminConsole部署我的web应用程序(war),但我一直收到以下错误消息-Security Glassfish DeploymentException:链接的安全策略时出错,security,deployment,glassfish,java-ee-6,netbeans7.0,Security,Deployment,Glassfish,Java Ee 6,Netbeans7.0,我一直试图从Glassfish AdminConsole部署我的web应用程序(war),但我一直收到以下错误消息- Exception while loading the app : Error in linking security policy for MyApp-war -- Inconsistent Module State. 但当我从Netbeans进行部署时,它的部署没有任何问题。(我不知道Netbeans在部署应用程序之前是否正在做一些我没有做的事情。) 我还尝试了Glassf
Exception while loading the app : Error in linking security policy for MyApp-war -- Inconsistent Module State.
但当我从Netbeans进行部署时,它的部署没有任何问题。(我不知道Netbeans在部署应用程序之前是否正在做一些我没有做的事情。)
我还尝试了Glassfish的最新版本(即V3.1.1(build 12)
),我可以从AdminConsole部署相同的应用程序,而不会出现任何问题
我正在使用Glassfish 3.1(构建43)和Netbeans 7.0
在使用此版本的Glassfish部署应用程序之前,是否必须进行任何安全策略设置?可能是我使用的Glassfish版本中存在错误
基本上,更改为不同(更高)版本解决了问题。我碰巧遇到了,尤其是在我签出不同版本的web应用程序并尝试将其部署到Glassfish之后
我找到的唯一确定的解决方案是完全停止galssfish,重新启动它并部署应用程序。我不知道这是否有帮助,但我在从命令行部署时遇到了相同的错误。在我的例子中,我使用的是一个非常最新的版本(GlassFish Server开源版本3.1.2(build 23))。对我有用的是从中删除--force=true:
$ sudo /usr/local/glassfish3/bin/asadmin deploy --force=true ~cornell/designer.war
重要的是(我认为)我以前没有部署过这个应用程序。令人困惑 同样的事情也发生在我身上 以下是我所做的:
- 停止Glassfish服务器
- 已删除glassfishhome/glassfish/domains/yourdomainname/generated中的所有内容
- 开始吃玻璃鱼
这对我有用。但仍然很糟糕的是,每次我需要部署时,我都需要再次遵循此过程…这也发生在我身上。在我的例子中,当我尝试部署项目时忘记启动数据库服务器,然后当我启动数据库服务器并再次部署时,我收到此错误消息。
发生这种情况时,我会重新编译代码,停止服务器,取消部署旧项目,然后再次部署新项目。我会回答@SteveTaylor的评论。他在上述评论中的回答帮助我解决了问题,因此他是值得表扬的人 @SteveTaylor的原始答案:
问题是OSGi缓存损坏。升级成功的原因是什么 这是因为您从一个干净的OSGi缓存开始。所需要的一切 要解决此问题,请删除下面的整个OSGi缓存 $GLASSFISH_HOME/GLASSFISH/domains//osgi缓存
这个答案对我也适用。谢谢。我使用的集群(Oracle GlassFish 3.1.2.2)由两个节点和一个域服务器组成。在停止集群并重新启动之后,我删除了所有三个目录(2个节点和域)下的OSGi缓存。之后,问题就解决了。在我的例子中,我的一个托管bean中缺少@Stateless标记。加上它,为我解决了它。希望能有帮助。就我而言,我只需要“清洁和建造”。这通常效果很好。对我来说,对GlassFish 3.1.2.2(不是3.1.2!)的更改有所帮助。+Bhesh Gurung,我认为这不是bug。要解决问题,请重新启动服务器/在运行应用程序后清理项目。它应该可以正常工作,因为它在我没有切换到3.1.2.2的情况下工作。问题是OSGi缓存损坏。升级对您有效的原因是您从一个干净的OSGi缓存开始。解决此问题所需的只是删除
$GLASSFISH\u HOME/GLASSFISH/domains//OSGi cache
@SteveTaylor下的整个OSGi缓存。您的答案对我也很有用。谢谢。我使用的集群(Oracle GlassFish 3.1.2.2)由两个节点和一个域服务器组成。在停止集群并重新启动之后,我删除了所有三个目录(2个节点和域)下的OSGi缓存。之后,问题就解决了。这是我的选择,服务器抛出这个异常:javax.management.RuntimeMBeanException:java.lang.RuntimeException:java.lang.IllegalStateException:BootAMX listener没有被调用BootAMX listener异常与此无关,完全可以安全地忽略。谢谢。也为我工作!!为我工作-必须删除生成的和osgi缓存目录并重新启动appserver:)这也是对我工作的原因,我已经尝试删除域/domain1/generated/*但没有工作。删除osgi缓存/*成功。谢谢。为我工作而未删除/生成的。