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

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