2012-02-07 8 views
0

jboss 6にwarをデプロイしようとしています。戦争中のjarファイルの1つをenvolveしているように見えます: myeclipse-tomcatでうまくいくので、なぜjbossは戦争を拒否していますか?warはtomcatでは動作しますが、jboss 6では動作しません。

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] 
+0

も同様の質問があり、正解はありません:http://stackoverflow.com/questions/4410017/how-to-separate-ear-classloader-and-system-classloader-in-jboss-6 –

答えて

1

JBossAS6のunzipの実装は多少の**機能上の短絡です。基本的には、解凍時に同じエラーが発生するジップアーカイブを作成するのは簡単です。それは戦争/耳の展開中です。このエラーを回避するには、アーカイブ内のファイル名をcp437エンコーディングにする必要があります。すべての英語以外のファイル名をアーカイブから削除/名前を変更します。

** zipコンテナは、仕様によってCp437およびUTF-8でエンコードされたファイル名のみを許可しますが、このルールを適用する機能はありません。残念ながら、それを壊すことは非常に簡単です。したがって、厳密なJBossAS6エラーではありませんが、非java-defult unzipingコードを使用するので、JBossでこのエラーを見るのは簡単です。

+0

私はCp437/utf8以外のファイル名を持っていますか?私はいずれも見ることができない –

+0

することはできません。これがzipアーカイブの問題です。可能であれば、jbossはこのエラーを起こさないでしょう。通常、ファイルのジップは、ファイルシステムがZIP仕様で必要とされるものとは異なるエンコーディングを持つ場合、エンコーディングエラーを生成するzipコンテナ内のファイル名のバイト配列をダンプします。たとえば、Linux上でzipします。 Antはこの問題を無効にするためにzipタスクのパラメータを提供します。あなたのエラーは、私が話していることかもしれないし、そうではないかもしれませんが、私は東方神起の隔離文字でアーカイブを展開したときにjbossでこのエラーが発生しました。それが私が実際にZIPエンコーディングの問題を発見した方法です。 – Talijanac

関連する問題