http://stackoverflow.com/questions/3376046/weblogic-10-3-1-0-is-using-com-bea-core-apache-commons-net-1-0-0-0-1-4-1-jar
Вопрос:
Weblogic 10.3.1.0 is using com.bea.core.apache.commons.net_1.0.0.0_1-4-1.jar... I want to use commons-net-2.0.jar from my code.
How can I force it to use the newer JAR in my code only?
Ответ:
WebLogic uses a parent class loader first strategy and you basically have two options to tweak this behavior:
- Use the prefer-web-inf-classes element in a
weblogic.xml Web application deployment descriptor (that goes in WEB-INF next to the web.xml ) ~or~ - Package your war insider an EAR and use WebLogic Filtering classloader that you configure in a
weblogic-application.xml descriptor (that goes in META-INF next to the application.xml )
Here is an example weblogic.xml: xml version="1.0" encoding="UTF-8"?>
<weblogic-web-app
xmlns="http://www.bea.com/ns/weblogic/90"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.bea.com/ns/weblogic/90 http://www.bea.com/ns/weblogic/90/weblogic- web-app.xsd">
<container-descriptor>
<prefer-web-inf-classes>true</prefer-web-inf-classes>
</container-descriptor>
</weblogic-web-app>
Here is an example weblogic-application.xml:
xml version="1.0" encoding="UTF-8"?>
<weblogic-application xmlns="http://www.bea.com/ns/weblogic/90">
<application-param>
<param-name>webapp.encoding.default</param-name>
<param-value>UTF-8</param-value>
</application-param>
<prefer-application-packages>
<package-name>javax.jws.*</package-name>
</prefer-application-packages>
</weblogic-application>
См. также: http://docs.oracle.com/cd/E12840_01/wls/docs103/programming/classloading.html
|