将WebApp部署到Glassfish的错误

时间:2013-07-06 23:41:40

标签: jsf netbeans deployment glassfish icefaces

**我目前的问题列在下面,但我已经详细介绍了我到达那里的方式**

我正在尝试将一个JSF Web应用程序部署到Glassfish 3.这里有一些关于我的项目的背景,如果这些细节中的任何一个都比我预期的更具相关性:

  • 使用NetBeans 7.3.1进行部署
  • Java平台:JDK 1.7
  • Java EE版本:Java EE 6 Web
  • 使用ICEFaces组件v3.3。
  • 开发平台是MS Windows。
  • 使用Apache JENA和OWL API(包括所有库)。

项目中包含以下ICEFaces库:

  1. icefaces.jar
  2. icepush.jar
  3. ICEfaces的-ace.jar
  4. ICEfaces的-compat.jar
  5. 共logging.jar
  6. krysalis-的jCharts t-1.0.0-α-1.jar
  7. jxl.jar
  8. 当我第一次尝试部署我的应用程序时,我收到以下异常:

    javax.xml.transform.TransformerFactoryConfigurationError: Provider  
    org.apache.xalan.processor.TransformerFactoryImpl not found at
    javax.xml.transform.TransformerFactory.newInstance(Unknown Source)
    at org.openide.xml.XMLUtil.write(XMLUtil.java:428)
    

    在这里以及网络上阅读了几个响应之后,我继续将文件“xml-apis-1.4.01.jar”添加到GLASSFISH_HOME \ glassfish \ modules \ endorsed目录中。在我的下一次部署尝试期间,我收到以下异常:

    Exception in thread "main" java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at com.sun.enterprise.glassfish.bootstrap.GlassFishMain.main(GlassFishMain.java:97)
    at com.sun.enterprise.glassfish.bootstrap.ASMain.main(ASMain.java:55)
    Caused by: javax.xml.stream.FactoryConfigurationError: Provider com.ctc.wstx.stax.WstxInputFactory not found
    at javax.xml.stream.XMLInputFactory.newInstance(Unknown Source)
    

    这促使我做更多研究,最后将“stax2-api-3.1.1.jar”添加到GLASSFISH_HOME \ glassfish \ modules \ endorsed目录中。不幸的是,这是我的研究运气耗尽的地方。我现在收到以下例外:

    WARNING: Failed to install file:GLASSFISH_HOME/glassfish/modules/endorsed/stax2-api-3.1.1.jar
    org.osgi.framework.BundleException: Bundle symbolic name and version are not unique: stax2-api:3.1.1
    at org.apache.felix.framework.BundleImpl.createRevision(BundleImpl.java:1230)
    at org.apache.felix.framework.BundleImpl.<init>(BundleImpl.java:95)
    at org.apache.felix.framework.Felix.installBundle(Felix.java:2732)
    at org.apache.felix.framework.BundleContextImpl.installBundle(BundleContextImpl.java:165)
    at com.sun.enterprise.glassfish.bootstrap.osgi.BundleProvisioner.install(BundleProvisioner.java:446)
    at com.sun.enterprise.glassfish.bootstrap.osgi.BundleProvisioner.installBundles(BundleProvisioner.java:208)
    at
    com.sun.enterprise.glassfish.bootstrap.osgi.OSGiGlassFishRuntimeBuilder.build(OSGiGlassFishRuntimeBuilder.java:139)
    at org.glassfish.embeddable.GlassFishRuntime._bootstrap(GlassFishRuntime.java:157)
    at org.glassfish.embeddable.GlassFishRuntime.bootstrap(GlassFishRuntime.java:110)
    at com.sun.enterprise.glassfish.bootstrap.GlassFishMain$Launcher.launch(GlassFishMain.java:112)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at com.sun.enterprise.glassfish.bootstrap.GlassFishMain.main(GlassFishMain.java:97)
    at com.sun.enterprise.glassfish.bootstrap.ASMain.main(ASMain.java:55)
    

    现在,我没有在这个项目中明确使用任何Woodstox组件,所以我不知道为什么Glassfish需要这个。起初,我认为我做错了,所以我继续卸载并重新安装了Glassfish实例并重新创建了域。当我尝试部署项目时,这个要求仍然存在。

    有什么建议吗?

    一如既往,非常感谢你的帮助!

1 个答案:

答案 0 :(得分:1)

因此,在进行了大量研究并对设置进行了解决之后,我想我已经解决了这个问题。首先,这里有一些关于我的过程的背景知识。

由于我从未在项目中使用过Woodstox组件,因此我认为我所包含的库中存在对上述jar的依赖。我想我会完全删除Glassfish并重新安装以尝试“干净的石板”方法。不幸的是,这没有用,我继续有同样的例外。

我最终在整个驱动器中搜索Felix罐子和目录,并删除了我能找到的所有内容。然后我试图重新启动Glassfish(预期)以错误结束,说明无法找到Felix。然后我做了一个干净的卸载并重新安装,一切正常。我唯一的想法就是某些东西被缓存而且没有被覆盖。

这纠正了我报告的最后一个例外,但不幸的是,我仍然经历过前者。我此时唯一的想法(基于相当多的搜索)是OWL Library的XML解析器与Glassfish不能很好地协作。