ОК, это было довольно сложно.
После некоторых поисков и попыток я удалил зависимости сварного шва (чтобы вернуться к более классическому основному).
Затем я заменилмоя (в старом стиле) appserv-rt.jar
зависимость с
<dependency>
<groupId>org.glassfish.appclient</groupId>
<artifactId>gf-client</artifactId>
<version>3.1</version>
<type>pom</type>
<scope>compile</scope>
</dependency>
Это не небольшое изменение, так как gf-client
вытягивает все банки для Glassfish, которыеочевидно, делает много jar (надеюсь, что есть метод для оптимизации числа jar, хотя мы все знаем о преждевременной оптимизации).
Так что, как только это будет сделано, вполне возможно использовать EJBудаленный интерфейс, но не JMS (по непонятным причинам).Чтобы заставить JMS работать с gf-клиентом, нужно создать maven-зависимости для imqjmsra.jar
и imqbroker.jar
, которые расположены в %GLASSFISH3_INSTALL_DIR%/glassfish/lib/install/applications/jmsra
.Кроме того, поскольку imqjmsra.jar
внутренне использует imqbroker.jar
, я рекомендую вам создать следующие помпы:
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<groupId>org.glassfish.external.jms</groupId>
<artifactId>imqjmsra</artifactId>
<version>3.1.0</version>
<description>POM was created by Sonatype Nexus</description>
<dependencies>
<dependency>
<groupId>org.glassfish.external.jms</groupId>
<artifactId>imqbroker</artifactId>
<version>3.1.0</version>
</dependency>
</dependencies>
</project>
, связанные с imqjmsra.jar
и
<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<groupId>org.glassfish.external.jms</groupId>
<artifactId>imqbroker</artifactId>
<version>3.1.0</version>
<description>POM was created by Sonatype Nexus</description>
</project>
, связанные с imqbroker.jar
.
Очевидно, что, поскольку я использую управление репозиторием Nexus, мне было легче создавать эти зависимости в локальном репозитории сторонних компаний, используя Nexus "страница загрузки артефакта".
Как только это будет сделано,Мои зависимости POM теперь
<dependency>
<groupId>org.glassfish.appclient</groupId>
<artifactId>gf-client</artifactId>
<version>3.1</version>
<type>pom</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.glassfish.external.jms</groupId>
<artifactId>imqjmsra</artifactId>
<version>3.1.0</version>
</dependency>
И я могу полностью опросить мою очередь JMS.