bli*_*ken 3 jsf netbeans glassfish
我曾经在Glassfish服务器上部署JSF + Primefaces应用程序,没有任何问题.最近我升级了我的NetBeans版本.之后我对大多数应用程序没有任何问题.但是当我尝试进行部署时遇到其中一个,它失败了,这是错误消息:
部署期间发生错误:加载应用程序时出现异常:java.lang.IllegalStateException:ContainerBase.addChild:start:org.apache.catalina.LifecycleException:java.lang.RuntimeException:com.sun.faces.config.ConfigurationException:java.util .concurrent.ExecutionException:com.sun.faces.config.ConfigurationException:无法解析文档'jar:file:/ opt/glassfish3/glassfish/domains/domain1/applications/[name-of-the-application]/WEB-INF /lib/javax.faces.jar!/META-INF/mojarra_ext.taglib.xml':null.有关更多详细信息,请参阅server.log.
项目似乎一切正常(清理和构建良好),但错误不断出现.这是我正在使用的环境:
PS:当我尝试使用NetBeans捆绑的Glassfish 3进行部署时,这是错误:
SEVERE:部署期间出错:class com.sun.faces.application.annotation.PersistenceUnit Scanner无法访问其超级接口com.sun.faces.application.annotation.Scanner
谢谢
Bal*_*usC 10
无法解析文档'jar:file:/ opt/glassfish3/glassfish/domains/domain1/applications/[name-of-the-application] /WEB-INF/lib/javax.faces.jar!/META-INF/mojarra_ext .taglib.xml
taglib文件的路径表明您将JSF 2.2与webapp一起发送到其中,/WEB-INF/lib
而不是升级GlassFish本身.由于GlassFish 3本身附带了JSF 2.1实现,因此您需要指示它不加载它以避免版本冲突.你没有在任何地方声明你这样做,所以我想这就是你问题的全部原因.
Glassfish本身已经捆绑了JSF,默认情况下,类加载优先于webapp中捆绑的一个.你基本上需要告诉Glassfish使用webapp捆绑的JSF.
为了实现这一点,编辑/WEB-INF/glassfish-web.xml
以添加以下两行.
<class-loader delegate="false" />
<property name="useBundledJsf" value="true" />
Run Code Online (Sandbox Code Playgroud)
如果文件不存在则创建它,您可以在此处找到示例xml文件.并在<glassfish-web-app>
标记内添加上面的两行.
然后,GlassFish将禁止自己的捆绑JSF加载并依赖于webapp捆绑的JSF.
或者,如果您对Glassfish拥有完全的管理控制权,您也可以将javax.faces.jar
文件从JSF 2.2 复制到/glassfish/modules
目录中,从而替换旧目录,以便将其从JSF 2.1升级到JSF 2.2,以便它可以应用于所有Web应用程序.
归档时间: |
|
查看次数: |
13429 次 |
最近记录: |