weblogic 재배포 대응

This commit is contained in:
curry772
2026-07-07 11:24:07 +09:00
parent af6b84f57d
commit 3090f745ba
2 changed files with 21 additions and 3 deletions
@@ -6,6 +6,9 @@ import java.lang.reflect.Method;
import java.net.InetAddress; import java.net.InetAddress;
import java.nio.charset.Charset; import java.nio.charset.Charset;
import java.rmi.RemoteException; import java.rmi.RemoteException;
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;
import java.rmi.server.ExportException;
import java.security.Security; import java.security.Security;
import java.util.Arrays; import java.util.Arrays;
@@ -24,6 +27,7 @@ import com.eactive.eai.common.dao.Keys;
import com.eactive.eai.common.exception.ExceptionUtil; import com.eactive.eai.common.exception.ExceptionUtil;
import com.eactive.eai.common.lifecycle.LifecycleException; import com.eactive.eai.common.lifecycle.LifecycleException;
import com.eactive.eai.common.lifecycle.LifecycleManager; import com.eactive.eai.common.lifecycle.LifecycleManager;
import com.eactive.eai.common.logger.async.AsyncHttpLoggingPoolManager;
import com.eactive.eai.common.logger.async.AsyncLoggingPoolManager; import com.eactive.eai.common.logger.async.AsyncLoggingPoolManager;
import com.eactive.eai.common.property.PropManager; import com.eactive.eai.common.property.PropManager;
import com.eactive.eai.common.routing.rmi.RemoteProxy; import com.eactive.eai.common.routing.rmi.RemoteProxy;
@@ -36,7 +40,6 @@ import com.eactive.eai.common.util.ServiceLocator;
import com.eactive.eai.common.util.ServiceLocatorException; import com.eactive.eai.common.util.ServiceLocatorException;
import com.eactive.eai.env.ConfigKeys; import com.eactive.eai.env.ConfigKeys;
import com.eactive.eai.env.ElinkConfig; import com.eactive.eai.env.ElinkConfig;
import com.eactive.eai.common.logger.async.AsyncHttpLoggingPoolManager;
/** /**
* eLink FrameWork이 초기화(Deploy)될 때 실행되어야 할 작업을 정의 * eLink FrameWork이 초기화(Deploy)될 때 실행되어야 할 작업을 정의
@@ -180,14 +183,25 @@ public class AppInitializer implements InitializingBean, DisposableBean {
this.shutdownWaitIntervalMs = shutdownWaitIntervalMs; this.shutdownWaitIntervalMs = shutdownWaitIntervalMs;
} }
private Registry rmiRegistry;
@SuppressWarnings("deprecation") @SuppressWarnings("deprecation")
private void initRmiServer(int registryPort, int servicePort) throws RemoteException { private void initRmiServer(int registryPort, int servicePort) throws RemoteException {
try {
rmiRegistry = LocateRegistry.createRegistry(registryPort);
} catch (ExportException e) {
// 혹시 이전 정리 실패로 이미 떠있다면 재사용 시도
Logger.getLogger(Logger.LOGGER_DEFAULT)
.warn("Registry already exists on port " + registryPort + ", reusing", e);
rmiRegistry = LocateRegistry.getRegistry(registryPort);
}
rmiServiceExporter.setServiceName("RemoteProxy"); rmiServiceExporter.setServiceName("RemoteProxy");
rmiServiceExporter.setService(remoteProxy); rmiServiceExporter.setService(remoteProxy);
rmiServiceExporter.setServiceInterface(serviceInterface); rmiServiceExporter.setServiceInterface(serviceInterface);
rmiServiceExporter.setRegistryPort(registryPort); rmiServiceExporter.setRegistryPort(registryPort);
rmiServiceExporter.setServicePort(servicePort); rmiServiceExporter.setServicePort(servicePort);
rmiServiceExporter.setAlwaysCreateRegistry(true); rmiServiceExporter.setAlwaysCreateRegistry(false);
rmiServiceExporter.afterPropertiesSet(); rmiServiceExporter.afterPropertiesSet();
} }
@@ -140,7 +140,7 @@ reader.FLAT=com.eactive.eai.message.parser.FlatReader
lifecycle.fireLifecycleEvent(STOPING_EVENT, this); lifecycle.fireLifecycleEvent(STOPING_EVENT, this);
readerMap.clear(); readerMap.clear();
readerMap = null; // readerMap = null;
started = false; started = false;
lifecycle.fireLifecycleEvent(STOPPED_EVENT, this); lifecycle.fireLifecycleEvent(STOPPED_EVENT, this);
} }
@@ -208,6 +208,10 @@ reader.FLAT=com.eactive.eai.message.parser.FlatReader
@SuppressWarnings("rawtypes") @SuppressWarnings("rawtypes")
private void initReaderFactory(Properties config) { private void initReaderFactory(Properties config) {
if (readerMap == null) {
readerMap = new ConcurrentHashMap<>();
}
Class cl = null; Class cl = null;
StandardReader reader = null; StandardReader reader = null;