2009-02-04 3 views
0

JBOSS бросает:Как настроить JBOSS для использования xml lib в веб-приложении?

 
java.lang.NoSuchMethodError: org.w3c.dom.Document.getDocumentURI()Ljava/lang/String; 

Ошибка при загрузке WSDL. Могу ли я настроить его, чтобы предпочесть библиотеку в моей WAR, а не в системной или серверной библиотеке приложений?

ответ

1

приложение сервер должен уже использовать любые JARs в WEB-INF/lib, наряду с системой и библиотеки сервера приложений путей - стандартный подход к этому является то, что ClassLoader для WEB-INF/lib делегатов класса нагрузки на сервер приложений Lib, который делегирует класс загружается на сервер lib, и только если родительский загрузчик классов не может найти класс, он пытается загрузить свои собственные классы.

Другими словами, если вы поместите тот же класс в WEB-INF/lib и lib сервера приложения, последний JAR всегда будет использоваться. Это означает, что можно создавать конфликты, имея классы с одинаковыми именами, но разные версии доступны как в WEB-INF/lib, так и в lib сервера приложений - вы уверены, что это не то, что вызывает проблемы? Можете ли вы разрешить конфликт?

Некоторые серверы приложений (не уверены в JBoss, но я знаю, что это позволяет WebSphere) позволяет вам настроить загрузчик классов, чтобы сначала был проверен загрузчик по умолчанию (сначала child-first vs parent-first), но этот тип конфигурации может вызвать другие вопросы.

+0

В конечном итоге я решил проблему, понизив свои весенние библиотеки до 1.0.4, которые работают с сервером JBOSS 4.0.2. Я сделал много исследований по загрузке классов на JBOSS: http://jboss.org/community/docs/DOC-9288, которые помогли понять и решить проблему. – jon077