JBoss development,
A new message was posted in the thread "What causes "Courier for HTTPEpr not
supported: ESB-unaware EPR used!"":
http://community.jboss.org/message/519158#519158
Author : Matthew Kennedy
Profile :
http://community.jboss.org/people/lispnik
Message:
--------------------------------------------------------------
I have several JBossESB applications in production which consist of a HTTP gateway
interface to a remote JEE application. With all of these HTTP gateway-using applications,
we have been encountering this spurious message: *2010-01-10 21:00:39,626 INFO
[org.jboss.soa.esb.client.ServiceInvoker] Badly formed EPR [HTTPEpr [ PortReference < ,
, > ]] for Service [test:TestGatewayService] and Message [header: [ ]].Courier for
HTTPEpr not supported: ESB-unaware EPR used!* It does not occur on every request. It
seems to occur 2 or three times per 100 requests, and they seem to occur every minute or
so. I'm using JBossESB 4.5.GA, with JBoss 4.2.3.GA and JBoss Messaging 1.4.2.GA-SP1
on Linux and have configured an Oracle datasource for JUDDI and messaging. I've done
some digging in the JBossESB source and found where it's thrown from:
courierFromGenericEPR(EPR epr, boolean pickUpOnly) in TwoWayCourierImpl.java. Basically
it's deciding on the implementation to use based on the EPR address. None of them
match "http" of course and hence the error. What I can't understand is how
a small number of requests arrive at that point in JBossESB in the first place. All the
requests are of the same form, so I would think that we would get that error message for
all of them. The messages are quite short -- about 100 to 200 bytes. I have attached my
configuration files below for a simplified example that exhibits the problem. What might
cause this problem? Matt TwoWayCourierImpl.java (in JBossESB): {code} private
Object courierFromGenericEPR(EPR epr, boolean pickUpOnly) throws
CourierException, MalformedEPRException { String addr =
null; addr = epr.getAddr().getAddress(); if
(addr.startsWith(InVMEpr.INVM_PROTOCOL)) return
CourierFactory.getInstance().getInVMCourier(new InVMEpr(epr)); if
(addr.startsWith(JMSEpr.JMS_PROTOCOL)) return new JmsCourier(new
JMSEpr(epr), pickUpOnly); if
(addr.startsWith(JDBCEpr.JDBC_PROTOCOL)) return new
SqlTableCourier(new JDBCEpr(epr), pickUpOnly); // TODO magic
strings if (addr.startsWith("file://") ||
addr.startsWith("ftp://") ||
addr.startsWith("sftp://") ||
addr.startsWith("ftps://")) return new FileCourier(new
FileEpr(epr), pickUpOnly); throw new MalformedEPRException("Courier
for " + epr.getClass().getSimpleName() + " not
supported: ESB-unaware EPR used!"); } {code} jboss-esb.xml:
{code:xml}
{code} queue-service.xml: {code:xml}
jboss.messaging:service=ServerPeer 1
jboss.messaging:service=ServerPeer 1 {code} TestServiceGatewayAction.java:
{code} public class ImageServiceGatewayAction extends AbstractActionLifecycle {
public ImageServiceGatewayAction(ConfigTree configTree) { this.configTree
= configTree; } public Message process(Message message) throws Exception
{ // invoke the remote service } } {code}
--------------------------------------------------------------
To reply to this message visit the message page:
http://community.jboss.org/message/519158#519158