Embedded Glassfish v3: программный сбой развертывания sun-resources.xml - PullRequest
1 голос
/ 15 июля 2010

Я хотел бы иметь возможность упаковать свой проект jpa-ejb-web как отдельное приложение, используя встроенный API Glassfish.

Чтобы использовать слой JPA, мне нужно развернуть ресурс sun.Конфигурация xml, которая должна быть возможна с помощью команды asadmin add-resources path\to\sun-resources.xml.У меня есть этот код для этого:

    String command = "add-resources";
    ParameterMap params = new ParameterMap();
    params.add("", "...\sun-resources.xml" );
    CommandRunner runner = server.getHabitat().getComponent(CommandRunner.class);
    ActionReport report = server.getHabitat().getComponent(ActionReport.class);
    runner.getCommandInvocation(command, report).parameters(params).execute();

, но Glassfish отказывается:* и действительно, по указанному пути нет каталога lib ...

что-то не так в моем коде?(Я использую glassfish-embedded-all-3.0.1.jar )

Спасибо

Ответы [ 2 ]

1 голос
/ 18 июля 2010

Я решил это, указав встроенную файловую систему для встроенного Glassfish, и предварительно заполнил папку /path/to/my/glassfish/lib/dtds отсутствующими файлами.

        EmbeddedFileSystem.Builder efsb = new EmbeddedFileSystem.Builder();
        efsb.autoDelete(false);
        efsb.installRoot(new File("/path/to/my/glassfish"), true);

        EmbeddedFileSystem efs = efsb.build();
        Server.Builder builder = new Server.Builder("test");
        builder.embeddedFileSystem(efs);

        builder.logger(true);
        Server server = builder.build();
        server.addContainer(ContainerBuilder.Type.all);
        server.start();

и попросил Glassfish не удалять папкуконец исполнения.

1 голос
/ 18 июля 2010

Я не уверен, что это возможно, Выполнение asadmin Команды Использование API-интерфейса встроенного сервера Sun GlassFish не упоминает такой вариант использования (пропуск sun-resources.xml).

Но я бы использовал предварительно настроенный domain.xml вместо попытки развернуть файл sun-resource.xml, результат должен быть похожим. Из Руководство по встроенному серверу Sun GlassFish Enterprise Server v3 :

Использование существующего domain.xml файла

Использование существующего файла domain.xml избавляет от необходимости настраивать встроенные Enterprise Server программно в ваше приложение. Ваше приложение получает данные конфигурации домена из существующий файл domain.xml. Вы можете создать этот файл с помощью административные интерфейсы установка не встроенного предприятия Сервер. Чтобы указать существующий domain.xml файл, вызвать installRoot, instanceRoot или configurationFile метод EmbeddedFileSystem.Builder класс или комбинация этих методов.

В документации приведены примеры кода, показывающие, как это сделать (должно быть довольно просто).

...