У меня есть приложение под управлением Jaxb 2.1.12. Я использую JDK 1.5 и OC4J 10.1.3.4.0. Когда я пытаюсь использовать часть моего приложения, которая использует Jaxb, я получаю следующую ошибку:
Unable to locate jaxb.properties for package
Я сузил это до xml.jar, который идет с OC4J. Он содержит классы Jaxb 1.0. Я могу исправить эту ошибку, добавив в файл orion-application.xml следующее:
<imported-shared-libraries>
<remove-inherited name="oracle.xml"/>
</imported-shared-libraries>
Проблема в том, что я развертываю файл WAR на OC4J с помощью утилиты admin_client.jar. У меня нет EAR для размещения файла orion-application.xml, поэтому я решил попробовать добавить файл orion-web.xml в каталог WEB-INF WAR и установить для свойства search-local-classes-first значение true :
<?xml version="1.0"?>
<orion-web-app
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://xmlns.oracle.com/oracleas/schema/orion-web-10_0.xsd" deployment-version="10.1.3.4.0"
jsp-cache-directory="./persistence"
jsp-cache-tlds="standard"
simple-jsp-mapping="false"
temporary-directory="./temp"
schema-major-version="10" schema-minor-version="0" >
<web-app-class-loader search-local-classes-first="true" />
<web-app>
</web-app>
</orion-web-app>
Это приводит к тому, что приложение вообще не развертывается. Я получаю сообщение о том, что файлы конфигурации Spring не могут быть проанализированы. Я хотел бы использовать search-local-classes-first. Как я могу использовать это свойство? Также есть ли способ развернуть файл orion-application.xml вместе с файлом WAR?
09/11/16 13:26:01 WARNING: DeployerRunnable.run Unexpected exception parsing XML document from Servl
etContext resource [/WEB-INF/applicationContext-acegi-security.xml]; nested exception is java.lang.C
lassCastException: oracle.xml.jaxp.JXDocumentBuilderFactoryoracle.oc4j.admin.internal.DeployerExcept
ion: Unexpected exception parsing XML document from ServletContext resource [/WEB-INF/applicationCon
text-acegi-security.xml]; nested exception is java.lang.ClassCastException: oracle.xml.jaxp.JXDocume
ntBuilderFactory
at oracle.oc4j.admin.internal.DeployerBase.execute(DeployerBase.java:126)
at oracle.oc4j.admin.jmx.server.mbeans.deploy.OC4JDeployerRunnable.doRun(OC4JDeployerRunnabl
e.java:52)
at oracle.oc4j.admin.jmx.server.mbeans.deploy.DeployerRunnable.run(DeployerRunnable.java:81)
at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledE
xecutor.java:303)
at java.lang.Thread.run(Thread.java:595)
Примечание: я не получаю эту ошибку с Java 1.6, и я полагаю, что это потому, что 1.6 поставляется в комплекте с Jaxb 2.