Hi again,

maybe people are a little annoyed, cause this issue isn't coming to an end.

But still I would really like to know about this:

But I what I don't understand is, when just adding a DOMOut/InHandler to the client, at which point in my code can I access the MessageContext? As far as I understand, the MessageContext can only be accessed from within the DOMOut/InHandler's invoke() method.

I really don't get it and did not find anything in the archives or elsewhere which explains this issue.

Would be great if someone could help me.

Best regards,

Abid


As an alternative I tried to override the DOMOutHandler like this:
public class MyOutHandler extends DOMOutHandler {

    //...
@Override
    public void invoke(MessageContext msgContext) throws Exception {
super.invoke(msgContext);

        AbstractMessage msg = msgContext.getCurrentMessage();
        logger.debug(msg);
Document doc = (Document) msg.getProperty(DOMOutHandler.DOM_MESSAGE);
        logger.debug(doc);

But then an Exception is thrown, so what can I do?

scatterwebservice_client.WebServiceOperationException: Failed retrieving network. at scatterwebservice_client.ServiceClient.getNetwork(ServiceClient.java:59) at scatterwebservice_client.actions.RefreshAction.run(RefreshAction.java:38) at org.eclipse.ui.actions.BaseSelectionListenerAction.runWithEvent(BaseSelectionListenerAction.java:168) at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:539) at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:488) at org.eclipse.jface.action.ActionContributionItem$6.handleEvent(ActionContributionItem.java:441)
    at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:928)
    at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3348)
    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2968)
    at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1930)
    at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1894)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:422)
    at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:95) at org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:78) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:92) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:68) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:400) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:177)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:585)
    at org.eclipse.core.launcher.Main.invokeFramework(Main.java:336)
    at org.eclipse.core.launcher.Main.basicRun(Main.java:280)
    at org.eclipse.core.launcher.Main.run(Main.java:977)
    at org.eclipse.core.launcher.Main.main(Main.java:952)
Caused by: org.codehaus.xfire.XFireRuntimeException: Could not invoke service.. Nested exception is org.codehaus.xfire.fault.XFireFault: Fau
lt: java.lang.NullPointerException
at org.codehaus.xfire.client.XFireProxy.handleRequest(XFireProxy.java:92)
    at org.codehaus.xfire.client.XFireProxy.invoke(XFireProxy.java:57)
    at $Proxy12.getNetwork(Unknown Source)
at scatterwebservice_client.ServiceClient.getNetwork(ServiceClient.java:56)
    ... 27 more
Caused by: org.codehaus.xfire.fault.XFireFault: Fault: java.lang.NullPointerException at org.codehaus.xfire.fault.Soap11FaultSerializer.readMessage(Soap11FaultSerializer.java:31) at org.codehaus.xfire.fault.SoapFaultSerializer.readMessage(SoapFaultSerializer.java:28) at org.codehaus.xfire.soap.handler.ReadHeadersHandler.checkForFault(ReadHeadersHandler.java:111) at org.codehaus.xfire.soap.handler.ReadHeadersHandler.invoke(ReadHeadersHandler.java:67) at org.codehaus.xfire.handler.HandlerPipeline.invoke(HandlerPipeline.java:131)
    at org.codehaus.xfire.client.Client.onReceive(Client.java:382)
at org.codehaus.xfire.transport.http.HttpChannel.sendViaClient(HttpChannel.java:139) at org.codehaus.xfire.transport.http.HttpChannel.send(HttpChannel.java:48) at org.codehaus.xfire.handler.OutMessageSender.invoke(OutMessageSender.java:26) at org.codehaus.xfire.handler.HandlerPipeline.invoke(HandlerPipeline.java:131)
    at org.codehaus.xfire.client.Invocation.invoke(Invocation.java:75)
    at org.codehaus.xfire.client.Client.invoke(Client.java:335)
at org.codehaus.xfire.client.XFireProxy.handleRequest(XFireProxy.java:77)
    ... 30 more


Andres Bernasconi schrieb:
sorry, typo..that was... ADD the standard DOMOutHandler to the list, OR call the super...

On 3/27/07, *Andres Bernasconi* < [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>> wrote:

    first add the standard DOMOutHandler to the list, all call the
    super.invoke() method...just by extending it and overriding the
    invoke method you are doing nothing.


    On 3/27/07, * Abid Hussain* <[EMAIL PROTECTED]
    <mailto:[EMAIL PROTECTED]>> wrote:

        Hi again,

        I now try to get the messages with the following DOMOutHandler
        (and did
        almost the same with the DOMInHandler):

        public class MyOutHandler extends DOMOutHandler {

                //...

                @Override
                public void invoke(MessageContext msgContext) throws
        Exception {

                        AbstractMessage msg =
        msgContext.getCurrentMessage();
                        logger.debug(msg);
                        Document doc = (Document)
        msg.getProperty(DOMOutHandler.DOM_MESSAGE);
                        logger.debug(doc);
                }
        }

        No I initialize my client with the following code:

        service = new ScatterwebServiceClient();
        port = service.getScatterwebServiceHttpPort ();
        Client client = Client.getInstance(port);
        client.addInHandler(new MyInHandler());
        client.addOutHandler(new MyOutHandler());

        Now I call a web service method (called "getNetwork") using:
        wsn = port.getNetwork();

        But the document which I want to log (see above
        logger.debug(doc)) is null.

        And this happens in both cases, when using the eclipse-plugin to
        generate code and when I do it using an ant task.

        How can this be respectively what am I doing wrong?

        Best regards,

        Abid


        >  Sorry, I forgot this:
        >
        >  In the xfire-FAQ it says that one adds a handler using
        >  GeoIPServiceClient service = new GeoIPServiceClient();
        >  GeoIPServiceSoap geoIPClient = service.getGeoIPServiceSoap();
        >  Client client = Client.getInstance(geoIPClient);
        >  client.addInHandler(new DOMOutHandler());
        >
        >  But in my ServiceClient (which i initialize: service = new
        >  ScatterwebServiceClient();) there is no method like
        >  service.get...ServiceSoap().
        >
        >  I somehow don't get it...:-(
        >
        >  Best regards,
        >
        >  Abid
        >
        > > Hi again,
        > >
        > > thanks for help.
> > But I still don't get it. I'm using xfire 1.2.4 together with the
        > > Eclipse-Plugin for Codegeneration and there is no possibility
        to add a
        > > handler to my ...ServiceClient.
        > >
        > > May it be the case that in this version it works in another
        way (or
        > > doesn't work at all) than with the newer versions?
        > >
        > > Best regards,
        > >
        > > Abid
        > >
        > > Tomek Sztelak schrieb:
> >> And you expected correctly, question was posted many times :)
        > >>
        > >> client.addInHandler(new
        org.codehaus.xfire.util.dom.DOMInHandler ());
        > >> client.addOutHandler(new
        org.codehaus.xfire.util.dom.DOMOutHandler());
        > >>
        > >> Then you can access current message with
        > >>
        > >> AbstractMessage sm = msgContext.getCurrentMessage ();
        > >>  Document doc = (Document)
        sm.getProperty(DOMInHandler.DOM_MESSAGE);
        > >>
        > >>
        > >> OutMessage msg = context.getOutMessage();
        > >> Document doc = (Document)
        msg.getProperty(DOMOutHandler.DOM_MESSAGE);
        > >>
        > >>
        > >> On 3/22/07, Abid Hussain < [EMAIL PROTECTED]
        <mailto:[EMAIL PROTECTED]>> wrote:
        > >>> Hi everybody,
        > >>>
        > >>> I would expect this question to be posted already in the
        past, but I
        > >>> didn't find anything when using google (the search in the
        archives
        > >>> doesn't work currently).
        > >>>
        > >>> I'm using xfire as client in a desktop application and
        would like to
        > >>> display the request/response SOAP Messages in the
        application's GUI.
        > >>>
> >>> Is there a way to fetch those messages when incoming/outgoing?
        > >>>
        > >>> Best regards,
        > >>>
        > >>> Abid
        > >>>


--

Abid Hussain
Mail: [EMAIL PROTECTED]
Web: http://www.abid76.de

---------------------------------------------------------------------
To unsubscribe from this list please visit:

   http://xircles.codehaus.org/manage_email

Reply via email to