barbitoff programmer`s blog

Здесь я публикую заметки из программерской жизни: грабли, на которые мне случилось наступить, проблемы, для которых было найдено элегантное (или не очень) решение, а также все, с чем мне пришлось столкнуться и чем хотелось бы поделиться =)
PS Если хотите меня поблагодарить - на странице есть 3 места, чтобы это сделать =)

вторник, 25 июня 2013 г.

Развертывание Birt Runtime 4.2.2 на Weblogic 10.3.5

Если просто задеплоить birt.war на Weblogic , получаем при старте:
weblogic.application.ModuleException:
at weblogic.servlet.internal.WebAppModule.startContexts(WebAppModule.java:1510)
at weblogic.servlet.internal.WebAppModule.start(WebAppModule.java:482)
at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:425)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:52)
at weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:119)
Truncated. see log file for complete stacktrace
Caused By: java.lang.LinkageError: loader constraint violation in interface itable initialization: when resolving method "org.apache.xerces.dom.ElementImpl.getSchemaTypeInfo()Lorg/w3c/dom/TypeInfo;" the class loader (instance of weblogic/utils/classloaders/ChangeAwareClassLoader) of the current class, org/apache/xerces/dom/ElementImpl, and the class loader (instance of <bootloader>) for interface org/w3c/dom/Element have different Class objects for the type org/w3c/dom/TypeInfo used in the signature
at org.apache.xerces.dom.DeferredDocumentImpl.getNodeObject(Unknown Source)
at org.apache.xerces.dom.DeferredDocumentImpl.synchronizeChildren(Unknown Source)
at org.apache.xerces.dom.CoreDocumentImpl.getDocumentElement(Unknown Source)
at org.eclipse.birt.core.framework.jar.BundleLoader.loadExtensions(BundleLoader.java:151)
at org.eclipse.birt.core.framework.jar.BundleLoader.load(BundleLoader.java:63)
Решение данной проблемы - закомментировать в weblogic.xml тег <prefer-web-inf-classes>:
<?xml version="1.0" encoding="UTF-8"?>
  <!DOCTYPE weblogic-web-app
    PUBLIC "-//BEA Systems, Inc.//DTD Web Application 8.1//EN"
    "http://www.bea.com/servers/wls810/dtd/weblogic810-web-jar.dtd" >
<weblogic-web-app>
<container-descriptor>
     <!--prefer-web-inf-classes>true</prefer-web-inf-classes-->
</container-descriptor>
</weblogic-web-app>
После этого приложение стартует, однако при попытке сгенерировать отчет валится:
org.eclipse.birt.report.engine.api.EngineException: Error happened while running the report.
   at org.eclipse.birt.report.engine.api.impl.EngineTask.handleFatalExceptions(EngineTask.java:2346)
...
Caused by: java.lang.NoSuchMethodError: org.mozilla.javascript.Context.initStandardObjects()Lorg/mozilla/javascript/ScriptableObject;
   at org.eclipse.birt.report.engine.javascript.JavascriptEngineFactory.createRootScope(JavascriptEngineFactory.java:74)
...
Проблема исправляется также через weblogic.xml, который в итоге принимает вид:
<?xml version="1.0" encoding="UTF-8"?>
  <!DOCTYPE weblogic-web-app
    PUBLIC "-//BEA Systems, Inc.//DTD Web Application 8.1//EN"
    "http://www.bea.com/servers/wls810/dtd/weblogic810-web-jar.dtd" >
<weblogic-web-app>
<container-descriptor>
<!--prefer-web-inf-classes>true</prefer-web-inf-classes-->
<prefer-application-packages>        
            <package-name>org.mozilla.*</package-name>
        </prefer-application-packages> </container-descriptor>
</weblogic-web-app>



Комментариев нет:

Отправить комментарий