简体   繁体   中英

Artemis rest interface

I have problem with the ActiveMQ Artemis REST plugin. When I start Artemis it throws an error like below:

Caused by: ActiveMQNotConnectedException[errorType=NOT_CONNECTED message=AMQ219007: Cannot connect to server(s). Tried with all available servers.]
    at org.apache.activemq.artemis.core.client.impl.ServerLocatorImpl.createSessionFactory(ServerLocatorImpl.java:798) [artemis-core-client-2.10.0.jar:2.10.0]
    at org.apache.activemq.artemis.rest.MessageServiceManager.start(MessageServiceManager.java:151) [artemis-rest-2.10.0.jar:2.10.0]
    at org.apache.activemq.artemis.rest.integration.RestMessagingBootstrapListener.contextInitialized(RestMessagingBootstrapListener.java:50) [artemis-rest-2.10.0.jar:2.10.0]

What I did to run rest plugin:

  1. Build artemis-rest.war

pom.xml config:

<?xml version="1.0" encoding="UTF-8"?>
    <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 http://maven.apache.org/xsd/maven-        
 4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>com.artemis</groupId>
<artifactId>artemis-rest</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<name>artemis-rest</name>


<dependencies>
    <dependency>
        <groupId>org.apache.activemq.rest</groupId>
        <artifactId>artemis-rest</artifactId>
        <version>2.10.0</version>
    </dependency>
</dependencies>

</project>
  1. Edited broker.xml file:

     <acceptors> <acceptor name="in-vm">vm://0</acceptor> <acceptor name="artemis">tcp://localhost:61616</acceptor> </acceptors>
  2. Edited bootstrap.xml

     <web bind="http://0.0.0.0:8161" path="web"> <app url="activemq-branding" war="activemq-branding.war"/> <app url="artemis-plugin" war="artemis-plugin.war"/> <app url="console" war="console.war"/> <app url="artemis-rest" war="artemis-rest.war"/> </web>
  3. And added artemis-rest.war to the apache-artemis-2.10.0\\web directory.

Does someone know why it does not work?

You have not listed your input in the web.xml. And also missing the rest-messaging.xml file? Do you have RESTEasy installed? Here is the web.xml to go in WEB-INF

<web-app>
    <listener>
        <listener-class>org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap</listener-class>
    </listener>

    <listener>
        <listener-class>org.apache.activemq.artemis.rest.integration.RestMessagingBootstrapListener</listener-class>
    </listener>

    <filter>
        <filter-name>Rest-Messaging</filter-name>
        <filter-class>org.jboss.resteasy.plugins.server.servlet.FilterDispatcher</filter-class>
    </filter>

    <filter-mapping>
        <filter-name>Rest-Messaging</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    <context-param>
        <param-name>rest.messaging.config.file</param-name>
        <param-value>file:///WEB-INF/rest-messaging.xml</param-value>
   </context-param>
</web-app>

Here is the rest-messaging-xml file:

<rest-messaging>
    <server-in-vm-id>0</server-in-vm-id> <!-- deprecated, use "url" -->
    <use-link-headers>false</use-link-headers>
    <default-durable-send>false</default-durable-send>
    <dups-ok>true</dups-ok>
    <topic-push-store-dir>topic-push-store</topic-push-store-dir>
    <queue-push-store-dir>queue-push-store</queue-push-store-dir>
    <producer-time-to-live>0</producer-time-to-live>
    <producer-session-pool-size>10</producer-session-pool-size>
    <session-timeout-task-interval>1</session-timeout-task-interval>
    <consumer-session-timeout-seconds>300</consumer-session-timeout-seconds>
    <consumer-window-size>-1</consumer-window-size> <!-- deprecated, use "url" -->
    <url>vm://0</url>
</rest-messaging>

Haven't got it to work yet though. I have an issue with RESTEasy. I don't know what version to use with Artemis 2.10.1. Getting this: java.lang.RuntimeException: java.lang.RuntimeException: You must install RESTEasy as a Bootstrap Listener and it must be listed before this class

Will probably be asking for help soon.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM