1

** 下面列出了我当前的问题,但我已经详细说明了我是如何到达那里的 **

我正在尝试将 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. 冰推.jar
  3. icefaces-ace.jar
  4. icefaces-compat.jar
  5. common-logging.jar
  6. krysalis-jCharts-1.0.0-alpha-1.jar
  7. jxl.jar

当我第一次尝试部署我的应用程序时,我收到了以下异常:

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 实例并重新创建了域。当我尝试部署项目时,这个要求仍然存在。

有什么建议吗?

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

4

1 回答 1

1

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

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

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

这纠正了我报告的最后一个异常,但不幸的是,我仍然遇到了前者。此时我唯一的想法(基于大量搜索)是 OWL 库的 XML 解析器不能很好地与 Glassfish 配合使用。

于 2013-07-07T17:51:05.470 回答