Да кинул, всё равно, видимо ругается на версию мускула.На 10 нужно InMemoryJavaCompiler- вместо ecj-
Я на MySQL Server 5.7 запускал.Да кинул, всё равно видимо ругается на версию мускула.
Не, я только марию юзаю. Прикручу коннертор от нее, и попробую.Я на MySQL Server 5.7 запускал.
Не подскажешь где у них драйвер прописан?Я на MySQL Server 5.7 запускал.
@ConfigGroupBeginning(name = "Database")
@ConfigField(name = "URL", value = "jdbc:mysql://localhost/l2j?useSSL=false", comment =
{
"Database URL",
"URL = jdbc:mysql://localhost/l2j?useSSL=false (default)",
}, reloadable = false)
Class.forName("com.mysql.cj.jdbc.Driver").newInstance();
[ERROR] AppInit: Could not setup thread pools!
java.lang.IllegalArgumentException: null
at java.util.concurrent.ThreadPoolExecutor.<init>(ThreadPoolExecutor.java:1300) ~[?:?]
at java.util.concurrent.ThreadPoolExecutor.<init>(ThreadPoolExecutor.java:1222) ~[?:?]
at l2j.commons.util.concurrent.ThreadPool.initThreadPools(ThreadPool.java:37) ~[sources/:?]
at l2j.commons.util.AppInit.defaultInit(AppInit.java:98) [sources/:?]
at l2j.loginserver.L2LoginServer.<init>(L2LoginServer.java:58) [sources/:?]
at l2j.loginserver.L2LoginServer.main(L2LoginServer.java:46) [sources/:?]
ThreadPool это не коннектор базы, это пул для потоков. Проверьте что в строке ThreadPool.java:37.Не, я только марию юзаю. Прикручу коннертор от нее, и попробую.
Не подскажешь где у них драйвер прописан?
Это я то нашел, а вот сам драйвер прогонял поиском, без результатов.
з.ы. А всё, нашел:Код:@ConfigGroupBeginning(name = "Database") @ConfigField(name = "URL", value = "jdbc:mysql://localhost/l2j?useSSL=false", comment = { "Database URL", "URL = jdbc:mysql://localhost/l2j?useSSL=false (default)", }, reloadable = false)
Код:Class.forName("com.mysql.cj.jdbc.Driver").newInstance();
Да не, чёт до одного места замена коннектора. Тот же еррор.
Старый сталКод:[ERROR] AppInit: Could not setup thread pools! java.lang.IllegalArgumentException: null at java.util.concurrent.ThreadPoolExecutor.<init>(ThreadPoolExecutor.java:1300) ~[?:?] at java.util.concurrent.ThreadPoolExecutor.<init>(ThreadPoolExecutor.java:1222) ~[?:?] at l2j.commons.util.concurrent.ThreadPool.initThreadPools(ThreadPool.java:37) ~[sources/:?] at l2j.commons.util.AppInit.defaultInit(AppInit.java:98) [sources/:?] at l2j.loginserver.L2LoginServer.<init>(L2LoginServer.java:58) [sources/:?] at l2j.loginserver.L2LoginServer.main(L2LoginServer.java:46) [sources/:?]
Не, я этот вопрос не ковырял, да и я l2 занимаюсь чисто хобби, а проектами бросил заниматься еще со времен Грации Финал.Не, я только марию юзаю. Прикручу коннертор от нее, и попробую.
Не подскажешь где у них драйвер прописан?
Это я то нашел, а вот сам драйвер прогонял поиском, без результатов.
з.ы. А всё, нашел:Код:@ConfigGroupBeginning(name = "Database") @ConfigField(name = "URL", value = "jdbc:mysql://localhost/l2j?useSSL=false", comment = { "Database URL", "URL = jdbc:mysql://localhost/l2j?useSSL=false (default)", }, reloadable = false)
Код:Class.forName("com.mysql.cj.jdbc.Driver").newInstance();
Да не, чёт до одного места замена коннектора. Тот же еррор.
Старый сталКод:[ERROR] AppInit: Could not setup thread pools! java.lang.IllegalArgumentException: null at java.util.concurrent.ThreadPoolExecutor.<init>(ThreadPoolExecutor.java:1300) ~[?:?] at java.util.concurrent.ThreadPoolExecutor.<init>(ThreadPoolExecutor.java:1222) ~[?:?] at l2j.commons.util.concurrent.ThreadPool.initThreadPools(ThreadPool.java:37) ~[sources/:?] at l2j.commons.util.AppInit.defaultInit(AppInit.java:98) [sources/:?] at l2j.loginserver.L2LoginServer.<init>(L2LoginServer.java:58) [sources/:?] at l2j.loginserver.L2LoginServer.main(L2LoginServer.java:46) [sources/:?]
Я сервер запускал еще в 2к15, чисто от скуки ковыряю.Не, я этот вопрос не ковырял, да и я l2 занимаюсь чисто хобби, а проектами бросил заниматься еще со времен Грации Финал.
Глянул, ни ошибки, ничего. Хз че за дрянь.ThreadPool это не коннектор базы, это пул для потоков. Проверьте что в строке ThreadPool.java:37.
THREAD_POOL_EXECUTOR = new ThreadPoolExecutor(initializer.getThreadPoolSize(), initializer.getThreadPoolSize(), 1, TimeUnit.MINUTES, new LinkedBlockingQueue<>(), new PoolThreadFactory("L2J-IT-", Thread.NORM_PRIORITY));
и так, заходим по стэку глубже, и видим следующие строки:Глянул, ни ошибки, ничего. Хз че за дрянь.
Собственно 37я строка:
Посмотреть вложение 25537Код:THREAD_POOL_EXECUTOR = new ThreadPoolExecutor(initializer.getThreadPoolSize(), initializer.getThreadPoolSize(), 1, TimeUnit.MINUTES, new LinkedBlockingQueue<>(), new PoolThreadFactory("L2J-IT-", Thread.NORM_PRIORITY));
/**
* Creates a new {@code ThreadPoolExecutor} with the given initial
* parameters.
*
* @param corePoolSize the number of threads to keep in the pool, even
* if they are idle, unless {@code allowCoreThreadTimeOut} is set
* @param maximumPoolSize the maximum number of threads to allow in the
* pool
* @param keepAliveTime when the number of threads is greater than
* the core, this is the maximum time that excess idle threads
* will wait for new tasks before terminating.
* @param unit the time unit for the {@code keepAliveTime} argument
* @param workQueue the queue to use for holding tasks before they are
* executed. This queue will hold only the {@code Runnable}
* tasks submitted by the {@code execute} method.
* @param threadFactory the factory to use when the executor
* creates a new thread
* @param handler the handler to use when execution is blocked
* because the thread bounds and queue capacities are reached
* @throws IllegalArgumentException if one of the following holds:<br>
* {@code corePoolSize < 0}<br>
* {@code keepAliveTime < 0}<br>
* {@code maximumPoolSize <= 0}<br>
* {@code maximumPoolSize < corePoolSize}
* @throws NullPointerException if {@code workQueue}
* or {@code threadFactory} or {@code handler} is null
*/
public ThreadPoolExecutor(int corePoolSize,
int maximumPoolSize,
long keepAliveTime,
TimeUnit unit,
BlockingQueue<Runnable> workQueue,
ThreadFactory threadFactory,
RejectedExecutionHandler handler) {
if (corePoolSize < 0 ||
maximumPoolSize <= 0 ||
maximumPoolSize < corePoolSize ||
keepAliveTime < 0)
throw new IllegalArgumentException(); // Конкретно это исключение у нас и выкидывает.
Дело в том, что конфиги не сгенерировались, и папка пустая. Попробую вручную добавить. (хотя он вроде как должен дефолтные подхватывать)и так, заходим по стэку глубже, и видим следующие строки:
Java:/** * Creates a new {@code ThreadPoolExecutor} with the given initial * parameters. * * @param corePoolSize the number of threads to keep in the pool, even * if they are idle, unless {@code allowCoreThreadTimeOut} is set * @param maximumPoolSize the maximum number of threads to allow in the * pool * @param keepAliveTime when the number of threads is greater than * the core, this is the maximum time that excess idle threads * will wait for new tasks before terminating. * @param unit the time unit for the {@code keepAliveTime} argument * @param workQueue the queue to use for holding tasks before they are * executed. This queue will hold only the {@code Runnable} * tasks submitted by the {@code execute} method. * @param threadFactory the factory to use when the executor * creates a new thread * @param handler the handler to use when execution is blocked * because the thread bounds and queue capacities are reached * @throws IllegalArgumentException if one of the following holds:<br> * {@code corePoolSize < 0}<br> * {@code keepAliveTime < 0}<br> * {@code maximumPoolSize <= 0}<br> * {@code maximumPoolSize < corePoolSize} * @throws NullPointerException if {@code workQueue} * or {@code threadFactory} or {@code handler} is null */ public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue<Runnable> workQueue, ThreadFactory threadFactory, RejectedExecutionHandler handler) { if (corePoolSize < 0 || maximumPoolSize <= 0 || maximumPoolSize < corePoolSize || keepAliveTime < 0) throw new IllegalArgumentException(); // Конкретно это исключение у нас и выкидывает.
Проверяйте настройки пула, видимо у вас конфиг не считывает, может не там лежит или нечайно удалили.
Конкретно эти настройки ThreadPoolConfig.SCHEDULED_THREAD_POOL_SIZE и ThreadPoolConfig.THREAD_POOL_SIZE
@ConfigGroupBeginning(name = "Threads")
@ConfigField(name = "ScheduledThreadPoolSize", value = "-1", comment =
{
"Specifies how many threads will be in scheduled thread pool.",
"If set to -1 (which is recommended), the server will decide the amount depending on the available processors"
})
public static int SCHEDULED_THREAD_POOL_SIZE;
@ConfigGroupEnding(name = "Threads")
@ConfigField(name = "InstantThreadPoolSize", value = "-1", comment =
{
"Specifies how many threads will be in instant thread pool.",
"If set to -1 (which is recommended), the server will decide the amount depending on the available processors"
})
public static int INSTANT_THREAD_POOL_SIZE;
final ClassPath classPath = ClassPath.from(ClassLoader.getSystemClassLoader());
final ClassPath classPath = ClassPath.from(Thread.currentThread().getContextClassLoader());
Так его и запускаю. Толку нет, скрин выше.А попробуйте запуститьВы не можете просматривать ссылку пожалуйста воспользуйтесь следующими ссылками Вход или Регистрация
Да не, не помогает это дело.Совсем забыл, у меня были проблемы что ClassPathUtil.getAllClassesExtending не находил нужные классы, и по этому не грузились конфиги и скрипты, может у вас тоже самое. Не помню из-за чего, может из-за новой явы были или новой либы.
Попробуйте в ClassPathUtil,заменить наКод:final ClassPath classPath = ClassPath.from(ClassLoader.getSystemClassLoader());
Код:final ClassPath classPath = ClassPath.from(Thread.currentThread().getContextClassLoader());
@ConfigGroupBeginning(name = "Threads")
@ConfigField(name = "ScheduledThreadPoolSize", value = "-1", comment =
{
"Specifies how many threads will be in scheduled thread pool.",
"If set to -1 (which is recommended), the server will decide the amount depending on the available processors"
})
public static int SCHEDULED_THREAD_POOL_SIZE = -1;
@ConfigGroupEnding(name = "Threads")
@ConfigField(name = "InstantThreadPoolSize", value = "-1", comment =
{
"Specifies how many threads will be in instant thread pool.",
"If set to -1 (which is recommended), the server will decide the amount depending on the available processors"
})
public static int INSTANT_THREAD_POOL_SIZE = -1;
Вот теперь схавало. Спасибо.Да дело не в deprecated, оно не может подставить значения по умолчанию, у вас конфиги все пустые.
Для проверки сделайте так:
Java:@ConfigGroupBeginning(name = "Threads") @ConfigField(name = "ScheduledThreadPoolSize", value = "-1", comment = { "Specifies how many threads will be in scheduled thread pool.", "If set to -1 (which is recommended), the server will decide the amount depending on the available processors" }) public static int SCHEDULED_THREAD_POOL_SIZE = -1; @ConfigGroupEnding(name = "Threads") @ConfigField(name = "InstantThreadPoolSize", value = "-1", comment = { "Specifies how many threads will be in instant thread pool.", "If set to -1 (which is recommended), the server will decide the amount depending on the available processors" }) public static int INSTANT_THREAD_POOL_SIZE = -1;
Ну да, без конфигов я ничего не могу запустить. А генерировать он их отказывается.Если заработало, то у вас не находит классы с конфигами, а значит еще не одна система сломается. Вам нужно починить ClassPathUtil
ERROR StatusLogger No log4j2 configuration file found. Using default configurati
on: logging only errors to the console. Set system property 'org.apache.logging.
log4j.simplelog.StatusLogger.level' to TRACE to show Log4j2 internal initializat
ion logging.
Для продолжения нажмите любую клавишу . . .
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?