Я пытаюсь понять, как сообщить WildFly через maven, что нужны определенные библиотеки. У меня есть проект maven в eclipse-jee. Когда я вызываю JSP, который работает один, все в порядке. Но когда я вызываю JSP, поддерживающий класс которого использует класс из библиотеки, я получаю ClassNotFoundException. Когда я запускаю этот вспомогательный класс локально, а не на сервере, он работает отлично. Библиотека добавляется как зависимость от maven, и это нормально, пока я остаюсь локальным. Но когда я развертываю WAR в WildFly, библиотека не развертывается.
Вот мой POM:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<name>hello_neo4j</name>
<artifactId>myNeo4j</artifactId>
<dependencies>
<dependency>
<groupId>org.neo4j.driver</groupId>
<artifactId>neo4j-java-driver</artifactId>
<version>4.0.1</version>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>javax.servlet.jsp-api</artifactId>
<version>2.3.3</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
</dependency>
<dependency>
<groupId>javax.enterprise</groupId>
<artifactId>cdi-api</artifactId>
<version>2.0.SP1</version>
</dependency>
<dependency>
<groupId>org.reactivestreams</groupId>
<artifactId>reactive-streams</artifactId>
<version>1.0.3</version>
</dependency>
</dependencies>
<groupId>com.my-domain</groupId>
<version>0.0.1</version>
<packaging>war</packaging>
</project>
Как только я пытаюсь создать экземпляр org.neo4j.driver .Config , я получаю:
...
Caused by: java.lang.ClassNotFoundException: org.neo4j.driver.Config from [Module "deployment.hello_neo4j.war" from Service Module Loader]
at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:255)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:410)
at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398)
at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:116)
... 59 more
Итак, как я могу сказать eclipse, что он должен либо упаковать библиотеку в WAR, либо развернуть ее вместе с WAR? Я предполагаю, что где-то в POM должно быть что-нибудь, говорящее о том, что зависимость должна быть развернута, но я не знаю, как это сделать. В эффективном POM 1012 * я вижу <scope>compile</scope>
и думал, что это будет означать, что зависимость будет скомпилирована в POM. Но, очевидно, мне нужно что-то еще, но что?
Заранее благодарим за полезные комментарии!