【问题标题】:war works on tomcat but not on to jboss 6战争适用于tomcat,但不适用于jboss 6
【发布时间】:2012-02-07 08:45:09
【问题描述】:

我正在尝试向 jboss 6 部署战争,但出现以下异常,似乎涉及战争中的一个罐子:webservices-rt.jar 这在 myeclipse-tomcat 中运行良好,那么为什么 jboss 拒绝战争?

14:45:03,286 ERROR [AbstractKernelController] Error installing to PostClassLoader: name=vfs:///C:/jboss-6/server/node01/deploy/altorweb.war state=ClassLoader mode=Manual requiredState=PostClassLoader: org.jboss.deployers.spi.DeploymentException: Error during deploy: vfs:///C:/jboss-6/server/node01/deploy/altorweb.war

...

Caused by: java.lang.Error: Error visiting "/C:/jboss-6/server/node01/deploy/altorweb.war/WEB-INF/lib/webservices-rt.jar/com/sun/xml/bind/v2/schemagen/XmlSchemaGenerator$Namespace.class"
        at org.jboss.classloading.plugins.vfs.VFSResourceVisitor.visit(VFSResourceVisitor.java:268) [jboss-classloading-vfs.jar:2.2.0.Alpha7]
        at org.jboss.vfs.VirtualFile.visit(VirtualFile.java:407) [jboss-vfs.jar:3.0.0.CR5]

【问题讨论】:

标签: java web-services jboss classloader


【解决方案1】:

JBossAS6 的 unzip 实现在功能上有些**。基本上很容易创建 zip 存档,这将在解压缩时产生相同的错误;那是在部署战争/耳朵期间。为避免此错误,存档中允许的文件名应采用 cp437 编码。从存档中删除/重命名所有非英文文件名。

** zip 容器仅允许按规范使用 Cp437 和 UTF-8 编码的文件名,但它缺乏强制执行此规则的功能。不幸的是,很容易破坏它。所以这不是严格的 JBossAS6 错误,但是在 JBoss 上很容易看到这个错误,因为它使用了非 java-defult 解压缩代码。

【讨论】:

  • 如何检查我是否有非 Cp437/utf8 文件名?我什么都看不到
  • 你不能。这就是 zip 存档的问题。如果可能的话,jboss 就不会出现这个错误。如果您的文件系统的编码与 zip 规范要求的不同,通常压缩文件只会在 zip 容器中转储文件名的字节数组,从而产生编码错误。例如在 linux 上压缩。 Ant 提供了 zip 任务的参数来解决这个问题。您的错误可能是也可能不是我正在谈论的事情,但是当我使用easterneuropen 变音字母部署档案时,我在jboss 上遇到了这个错误。这就是我实际发现 zip 编码问题的方式。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多