Попытка настроить / использовать источник данных mysql с помощью Glassfish (с использованием Cargo и Maven). Как развернуть соединитель mysql?

Добрый вечер!

Используя Cargo через Maven, я настроил свой pom.xml для создания экземпляра glassfish, а затем развернул в нем свой проект перед запуском интеграционных тестов. Я почти всегда там, потому что у меня развернут свой код, я установил для него источник данных и ресурс JNDI, но когда я пытаюсь фактически использовать этот ресурс, я получаю следующее исключение:

Wrong class name or classpath for Datasource Object 
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

При обычной установке Glassfish я могу легко установить коннектор, но установка glassfish в этом случае автоматизирована, и каждый раз, когда я запускаю тесты, создается новый экземпляр.

Есть ли способ предоставить соединитель mysql либо в пути к классам, который может читать glassfish, либо путем его установки в новом экземпляре glassfish, который создается для каждой сборки?

Спасибо!


person Steven Bakhtiari    schedule 14.01.2013    source источник
comment
Почему вы не можете поместить банку в WEB-INF / lib? В противном случае возможно скопировать jar с maven в каталог библиотеки glassfish перед запуском сервера.   -  person unwichtich    schedule 15.01.2013
comment
Я не хочу развертывать его вместе со своим приложением ... Но я только что придумал ответ. В конце концов я кое-что нашел, просто жаль, что документы Cargo повсюду.   -  person Steven Bakhtiari    schedule 15.01.2013


Ответы (1)


Еще немного изучив документацию, я обнаружил, что могу сделать это, указав зависимости maven в конфигурации контейнера, например:

<configuration>
    <container>
        <containerId>glassfish3x</containerId>
        <artifactInstaller>
            <groupId>org.glassfish.main.distributions</groupId>
            <artifactId>glassfish</artifactId>
            <version>${glassfish.version}</version>
        </artifactInstaller>
        <dependencies>
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
            </dependency>
        </dependencies>
    </container>
    <configuration>
        <properties>
            <cargo.datasource.datasource.mysql>
                cargo.datasource.jndi=jdbc/MysqlPool|
                cargo.datasource.driver=com.mysql.jdbc.Driver|
                cargo.datasource.url=jdbc:mysql://localhost/databasename|
                cargo.datasource.transactionsupport=LOCAL_TRANSACTION|
                cargo.datasource.username=username|
                cargo.datasource.password=password
            </cargo.datasource.datasource.mysql>
        </properties>
    </configuration>
</configuration>

Обратите внимание на зависимость mysql. Он должен ссылаться на зависимость, уже определенную в моем проекте (которая для моего проекта имеет область «предоставлена»). Это работает, как ожидалось. :)

person Steven Bakhtiari    schedule 14.01.2013