Incidently, I'm not sure what one would do here on:

else if (messageContext.getFLOW() == MessageContext.OUT_FAULT_FLOW)

As I don't see how to get the EPR in this case. That might not be a valid case though.

Robert
http://www.braziloutsource.com/

On 4/25/06, robert lazarski < [EMAIL PROTECTED]> wrote:
You need to be able to determine how to get the endpoint via the Flows, such as:

EndpointReference ref = null;

    // Get id, type and content
    Long    id;
    Integer type;
    // 'soap request' must be called first
    if (messageContext.getFLOW() == MessageContext.IN_FLOW) {
        // show soap message inside the 'soap request' pane in the applet
        id = assignMessageId(messageContext);
        type = new Integer(SOAPMonitorConstants.SOAP_MONITOR_REQUEST);
        ref = messageContext.getTo();
    } else if (messageContext.getFLOW() == MessageContext.OUT_FLOW) {
        id = getMessageId(messageContext);
        // show soap message inside the 'soap response' pane in the applet
        type = new Integer(SOAPMonitorConstants.SOAP_MONITOR_RESPONSE);
        ref = messageContext.getFrom();
    } else if (messageContext.getFLOW() == MessageContext.IN_FAULT_FLOW) {
        id = getMessageId(messageContext);
        // show soap message inside the 'soap response' pane in the applet
        type = new Integer(SOAPMonitorConstants.SOAP_MONITOR_RESPONSE);
        ref = messageContext.getFaultTo();
    } else {
        throw new IllegalStateException("unknown FLOW detected in messageContext: " + messageContext.getFLOW());
    }

Another way to do this would be labels.

HTH,
Robert
http://www.braziloutsource.com/


On 4/25/06, Thomas Van de Velde < [EMAIL PROTECTED]> wrote:
Hello,

I am trying to set the endpointreference in a module so that the client code does not need to be aware of the endpoint details.  The goal is that  this module takes over responsibility of  setting the endpoint. 

When taking out options.setTo(...) from the client, I get an error indicating that the transport cannot be determined.("Cannot infer transport information from the URL information provided")  I've fixed this by setting the TransportIn and TransportOut options.  Now Axis is able to determine the transport details.  However I am getting now getting a nullpointer exception in AxisEngine.send() line 544.

I am using axis2 v0.95

Client options:

            Options options = new Options();
            options.setTransportInProtocol(Constants.TRANSPORT_HTTP);
            options.setTranportOut(new TransportOutDescription(new QName(
                    Constants.TRANSPORT_HTTP)));
            options.setUseSeparateListener(false);

Handler code:

public void invoke(MessageContext msgContext) throws AxisFault {
    public static EndpointReference EPR = new EndpointReference(
            " http://localhost:8080/axis2/services/sample-provider");
        msgContext.setTo(EPR);
        log.info(msgContext.getEnvelope().toString());
    }

All the rest of the configuration (axis2.xml and module.xml) is identical to the LoggingModule sample.

I guess this should be raised as a JIRA issue.  Anything I can do to get past the nullpointer?

Cheers,
Thomas


Reply via email to