2011-10-20 10 views
0

私はSunのMSVライブラリを使用するWebアプリケーションを持っています。 MSVのすべてのクラスは、WebアプリケーションWEB-INF/libのjarファイルに含まれています。 JBossの7にこのアプリを展開する場合、私は次の例外を取得:JBoss AS 7で間違ったモジュール依存関係をデバッグする方法は?

java.lang.NoClassDefFoundError: Could not initialize class com.sun.msv.datatype.xsd.AnyURIType 
     at com.sun.msv.datatype.xsd.DatatypeFactory.getTypeByName(DatatypeFactory.java:195) 
     at com.sun.msv.datatype.xsd.ngimpl.DataTypeLibraryImpl.getType(DataTypeLibraryImpl.java:32) 
     at com.sun.msv.datatype.xsd.ngimpl.DataTypeLibraryImpl.createDatatypeBuilder(DataTypeLibraryImpl.java:36) 
     at com.sun.msv.reader.trex.ng.DataState.startSelf(DataState.java:58) 
     at com.sun.msv.reader.State.init(State.java:153) 
     at com.sun.msv.reader.GrammarReader.pushState(GrammarReader.java:576) 
     at com.sun.msv.reader.SimpleState.startElement(SimpleState.java:71) 
     at org.xml.sax.helpers.XMLFilterImpl.startElement(XMLFilterImpl.java:527) 
     at com.sun.msv.reader.trex.TREXBaseReader.startElement(TREXBaseReader.java:184) 
     at com.sun.msv.reader.trex.ng.RELAXNGReader.startElement(RELAXNGReader.java:524) 
     at com.sun.msv.reader.trex.ng.comp.RELAXNGCompReader.startElement(RELAXNGCompReader.java:197) 
     at orbeon.apache.xerces.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:497) 
     at orbeon.apache.xerces.parsers.AbstractXMLDocumentParser.emptyElement(AbstractXMLDocumentParser.java:180) 
     at orbeon.apache.xerces.xinclude.XIncludeHandler.emptyElement(XIncludeHandler.java:1024) 
     at orbeon.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:275) 
     at orbeon.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(XMLDocumentFragmentScannerImpl.java:1654) 
     at orbeon.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:324) 
     at orbeon.apache.xerces.parsers.XML11Configuration.parse(XML11Configuration.java:845) 
     at orbeon.apache.xerces.parsers.XML11Configuration.parse(XML11Configuration.java:768) 
     at orbeon.apache.xerces.parsers.XMLParser.parse(XMLParser.java:108) 
     at orbeon.apache.xerces.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1201) 
     at com.sun.msv.reader.util.GrammarLoader._loadSchema(GrammarLoader.java:514) 
     at com.sun.msv.reader.util.GrammarLoader.parse(GrammarLoader.java:325) 
     at com.sun.msv.reader.util.GrammarLoader.loadSchema(GrammarLoader.java:189) 
     at com.sun.msv.verifier.jarv.TheFactoryImpl.parse(TheFactoryImpl.java:42) 
     at com.sun.msv.verifier.jarv.FactoryImpl.compileSchema(FactoryImpl.java:98) 

それはクラスcom.sun.msv.datatype.xsd.AnyURITypeを見つけることができないと文句を言いますが、そのクラスは、瓶の一つです。私はスタックトレース上のクラスのいくつかがJBossから来るモジュールから "間違って"ピックアップされたと仮定しているので、WebアプリケーションのWEB-INF/libのjarファイルではなく別のクラスローダからロードされます。しかし、それはどちらができますか? (orbeon.apache.xercesにはApache Xercesの根本的なバージョンがあるので、Webアプリケーションのjarファイルからロードされていることがわかります)jboss-deployment-structure.xmlのいくつかのモジュールを除外することができますが、私は除外すべきですか?見つける方法?

<jboss-deployment-structure> 
    <ear-subdeployments-isolated>true</ear-subdeployments-isolated> 
    <deployment> 
     <exclusions> 
      <module name="com.sun.xml.bind"/> 
      <module name="org.codehaus.woodstox"/> 
      <module name="org.codehaus.jackson.jackson-xc"/> 
     </exclusions> 
    </deployment> 
</jboss-deployment-structure> 
+0

AS7は新品であるため、jbossコミュニティ[forum](http://community.jboss.org/)で助けを得ることができます。多くのJBossコア開発者はコミュニティサイトで非常に活発です。 – CoolBeans

+0

アドバイスありがとうございます。 http://community.jboss.org/thread/173836に質問を投稿し、JBossフォーラムを通じてこの問題の解決策を見つけたら、ここでフォローアップします – avernet

答えて

0

私はあなたの実際の構成を理解していませんが、これはxml構成ファイルのモジュール構成のためです。私はまた、この種のエラーが発生しましたが、私はserver.Soに提供されたモジュールによってそれを解決したあなたのサーバーにモジュールとしてライブラリをインストールする必要があります。

モジュールを追加 i.Underは、アプリケーションサーバーのルートディレクトリです。モジュールと呼ばれるディレクトリです。独自のモジュールを作成する 例: jboss-7.0.0./modules/com/mysql/main ii。これでモジュールをmodule.xmlファイルと、作成したフォルダにデータベースドライバを含む実際のjarファイルで定義する必要があります。次のようにmodule.xmlの

Modules 
    +---com 
    ¦ +---codehaus 
    ¦ ¦ +---main 
    ¦ ¦ +-------module.xml 
    ¦ ¦ +------<your jar file> 

内容は次のようになります。

<?xml version="1.0" encoding="UTF-8"?> 
<module xmlns="urn:jboss:module:1.0" name="<*module name*>"> 
<resources> 
<resource-root path="<*jar name*>"/> 
<!-- Insert resources here --> 
</resources> 
<dependencies> 
<module name="javax.api"/> 
<module name="javax.transaction.api"/> 
</dependencies> 
</module> 

依存関係は、他のモジュール上のモジュールの依存関係を宣言するために使用されています。

関連する問題