Resin (Quercus) PHP-функции не работают при компиляции приложения

Простите, если я сделаю какие-либо ошибки, так как я впервые задаю вопрос.

Я работаю над веб-приложением, использующим встроенные библиотеки Resin - оно сильно зависит от PHP Engine (Quercus), который входит в состав Resin. После 3 дней написания кода я решил, что пришло время сделать мой первый работающий флягу для тестирования на моем веб-сервере, когда я столкнулся со странной проблемой с Quercus - я предполагаю. Основные функции PHP, такие как date, count и var_dump, возвращались как неизвестные функции, когда они вызывались из файла PHP, который я запросил с сервера.

Но изнутри моей среды IDE (Eclipse 3.8) у меня не было проблем, как раньше. Итак, возвращаясь к первому документу, который я использовал, я сделал небольшое тестовое приложение, используя минимальный код и библиотеки. Я следовал инструкциям для первого урока по адресу http://www.caucho.com/resin-3.1/doc/resin-embedding.xtp и я, кажется, слишком точно понял проблему, как и раньше.

Основной код из тестового приложения

public class Main
{
    public static void main( String[] args )
    {
        ResinEmbed resin = new ResinEmbed();

        HttpEmbed http = new HttpEmbed( 8080 );
        resin.addPort( http );

        WebAppEmbed webapp = new WebAppEmbed( "/", "/var/www" );

        resin.addWebApp( webapp );

        resin.start();
        resin.join();
    }
}

PHP-файл, который я использовал для тестирования

<?php var_dump( "Hello World" ); echo date("Y"); ?>

Исключение

com.caucho.quercus.QuercusErrorException: 'date' is an unknown function.
        at com.caucho.quercus.env.Env.error(Env.java:6885)
        at com.caucho.quercus.env.Env.error(Env.java:6408)
        at com.caucho.quercus.expr.CallExpr.evalImpl(CallExpr.java:188)
        at com.caucho.quercus.expr.CallExpr.eval(CallExpr.java:141)
        at com.caucho.quercus.statement.EchoStatement.execute(EchoStatement.java:55)
        at com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105)
        at com.caucho.quercus.program.QuercusProgram.execute(QuercusProgram.java:414)
        at com.caucho.quercus.env.Env.evalCode(Env.java:4201)

Так что я знаю, что моя проблема не в моем коде, и я безуспешно пытался поиграть со свойствами проекта и различными версиями библиотеки. Прямо сейчас я использую последнюю версию 4.0.36 с версией Java 1.7_25. Я даже пробовал это на нескольких компьютерах (все под управлением Linux, так как это все, что я использую сейчас дни). Я искал помощь в интернете, но ни одна из существующих тем, казалось, даже близко не подходила к моей проблеме. Кто-нибудь знает, что может вызвать это? Я надеюсь, что мой вопрос был достаточно подробным, но не слишком длинным и не слишком подробным.

Если интересно, я также могу опубликовать репозиторий для моего приложения, но приведенный выше код вызывает ту же проблему, что и мое приложение, даже если мое приложение и приведенный выше пример выполняют код немного по-другому.

ОБНОВИТЬ:

После тщательного поиска и тестирования исходного кода для Quercus я обнаружил, что проблема, похоже, связана не с загрузкой всех модулей, т.е. Модули добавляют отсутствующие функции - поэтому я обнаружил, что если я экспортирую свой проект с опцией "Копировать необходимые библиотеки в подпапку рядом с сгенерированным JAR", он работает так же, как и в IDE. Теперь, так как это, по крайней мере, временное решение для запуска моего проекта, я все же хотел бы знать, как компилировать его как обычно, не получая проблемы. (58 модулей загружены в IDE, только 2 загружены при компиляции.)

0 ответов

Другие вопросы по тегам