Связанный: Загрузка внешних файлов свойств в приложение EJB 3, работающее в WebLogic 11
Использование Oracle EnterpriseПакет для Eclipse, я создал Enterprise Project и назвал его:
PropertiesDemoEAR
Также создал модуль PropertiesDemoEARWeb, в который я поместил этот код
(внутри PropertiesDemoEARWeb / Java Resources /src / com.project.util):
package com.project.util;
public class PropertiesFileHandler extends ApplicationLifecycleListener {
private static final String FILE = "C:/etc/error.properties";
public void preStart(ApplicationLifecycleEvent evt) {
System.out.println("\n\n\t\tInside preStart() method\n\n");
InputStream is =
evt.getApplicationContext().getAppClassLoader().getResourceAsStream(FILE);
try {
Properties convertedProps =
convertStreamToProperties(is);
String userMissingError =
convertedProps.getProperty("USER_MISSING_ERROR");
System.out.println("\n\n\t\tuserMissingError = "
+ userMissingError + "\n\n");
} catch (Throwable e) {
e.printStackTrace();
}
}
public Properties convertStreamToProperties(InputStream is) throws IOException {
System.out.println("\n\n\t\tInside convertStreamToProperties() method\n\n");
Properties props = new Properties();
if (is == null) {
throw new FileNotFoundException("property file '" + FILE + "' not found");
} else {
props.load(is);
return props;
}
}
}
Inside PropertiesDemoEAR / EarContent / META-INF / weblogic-application.xml
Я добавил декларативно следующий слушатель:
<?xml version="1.0" encoding="UTF-8"?>
<wls:weblogic-application
xmlns:wls="http://xmlns.oracle.com/weblogic/weblogic-application" >
<!--weblogic-version:10.3.5-->
<wls:application-param>
<wls:param-name>webapp.encoding.default</wls:param-name>
<wls:param-value>UTF-8</wls:param-value>
</wls:application-param>
<wls:listener>
<wls:listener-class>
com.project.util.PropertiesFileHandler
</wls:listener-class>
</wls:listener>
</wls:weblogic-application>
Щелкните правой кнопкой мыши файл PropertiesDemoEAR / Export / EAR / Место назначения:
C: \ Oracle \ Middleware \ user_projects \ domains \ MyDomain \ autodeploy
Когда я запускаю WebLogic 11g через Eclipse, Я получаю это сообщение об ошибке в консоли:
[ERROR] AdapterManager - ServletContainerAdapter manager not initialized correctly.
<oracle.tip.adapter.apps.AppsConnectionFactory>
ConnectionManager cm: weblogic.connector.outbound.ConnectionManagerImpl@12433e7-eis/Apps/Apps
ManagedConnectionFactory mcf:
oracle.tip.adapter.apps.AppsManagedConnectionFactory@4303022b
<Jun 30, 2011 5:50:24 PM PDT> <Error> <Deployer> <BEA-149265>
<Failure occurred in the execution of deployment request
with ID '1309481424487' for task '0'. Error is:
'weblogic.management.DeploymentException: '
weblogic.management.DeploymentException: at
weblogic.application.internal.flow.
BaseLifecycleFlow$CreateListenerAction.run(BaseLifecycleFlow.java:176) at
weblogic.security.acl.internal.
AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) at
weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120) at
weblogic.application.internal.flow.
BaseLifecycleFlow$BaseAction.invoke(BaseLifecycleFlow.java:104) at
weblogic.application.internal.
flow.HeadLifecycleFlow.createListener(HeadLifecycleFlow.java:117)
Truncated. see log file for complete stacktrace
Caused By: java.lang.ClassNotFoundException:
com.project.util.PropertiesFileHandler
at weblogic.utils.classloaders.
GenericClassLoader.findLocalClass(GenericClassLoader.java:297)
Вопрос (ы):
(1) Что я, возможно, делаю неправильно?Почему он не может найти мой класс PropertiesFileHandler?
(2) Подходит ли расположение (c: /etc/error.properties) моего файла свойств или оно должно находиться в каталоге MyDomain?
(3) Существует ли каталог по умолчанию или просто простая область конфигурации, в которую WebLogic загружает файлы свойств, доступные любому приложению, работающему в WebLogic?