java - ActiveMQ embedded broker accessible via Weblogic servlet -


i'd following , i'm not quite sure if i'm not wasting time: i'm trying run activemq embedded broker inside weblogic servlet. idea is, clients able connect jms via http , embedded broker serve requests. know crazy idea, it's legacy application , lot of client code depends on jms. idea switch connection string , add libraries clients. works fine when create tcp connection, have no idea how map servlet internal broker

the restrictions these:

  • no changes in weblogic configuration(like datasources, bridges, jms etc)
  • no spring
  • http only

this servlet definition web.xml:

<servlet>     <servlet-name>activemqservlet</servlet-name>     <servlet-class>com.mycompany.activemqservlet</servlet-class> </servlet> <servlet-mapping>     <servlet-name>activemq</servlet-name>     <url-pattern>/servlet/activemqservlet</url-pattern> </servlet-mapping> 

important parts of servlet:

public class activemqservlet extends httpservlet { private brokerservice broker;  private static final log log = logfactory.getlog(new object() { }.getclass().getenclosingclass());   @override public void init() throws servletexception {     log.info("load activemq");     // configure broker     try {         transportconnector connector = new transportconnector();         connector.seturi(new uri(active_mq_url));         broker = new brokerservice();         broker.addconnector(connector);         broker.start();         log.info("activemq loaded succesfully");      } catch (exception e) {         log.error("unable load activemq!", e);     } }  @override public void service(httpservletrequest request, httpservletresponse response) throws servletexception, ioexception {     log.info("received call.... ");     log.info("request: "+request);     //todo } 

the problem have no idea how request/response mapping between service method of servlet , internal activemq broker. thing is, i'm trying solve classpath clashes caused slf4j used activemq broker , spent hours on it. maybe i'm doing impossible/really stupid.

when i'm trying connect via simple client, i'm getting exception

javax.jms.jmsexception: not connect broker url: http://localhost:8888/myapp/servlet/activemqservlet. reason: java.io.ioexception: failed perform on: http://localhost:8888/myapp/servlet/activemqservlet response was: not found @ org.apache.activemq.util.jmsexceptionsupport.create(jmsexceptionsupport.java:35) @ org.apache.activemq.activemqconnectionfactory.createactivemqconnection(activemqconnectionfactory.java:293) @ org.apache.activemq.activemqconnectionfactory.createconnection(activemqconnectionfactory.java:191) ... caused by: java.io.ioexception: failed perform on: http://localhost:8888/myapp/servlet/activemqservlet response was: not found     @ org.apache.activemq.transport.http.httpclienttransport.dostart(httpclienttransport.java:275) @ org.apache.activemq.util.servicesupport.start(servicesupport.java:55) 

while doing this, code in servlet not executed. servlet path fine. if open in browser, got empty page , log message.

i'm using activemq 5.8.0 , weblogic 10.3.6

i'm trying similar, , have found messagelistenerservlet - i'm still searching examples on setting (i'm relatively new @ dealing servlets) think it's supposed allow sort of thing. though think you're main application needs 1 setting brokerservice @ startup, , servlet needs reference address. in case, aren't using websphere, general premise of "talk embedded activemq instance external sources via http" same.


Comments

Popular posts from this blog

design - Custom Styling Qt Quick Controls -

Unable to remove the www from url on https using .htaccess -