thanks i see now. quick question, now that I have the org.jdom.Element representing data in my header, is there a nice way to turn that XML into a UserInfo object?
thanks! On 4/29/07, Tomek Sztelak <[EMAIL PROTECTED]> wrote:
Have you ever ready any documentation from XFire site ? If you take a look at http://xfire.codehaus.org/Client+and+Server+Stub+Generation+from+WSDL you will see how to add handler to generated code. On 4/29/07, craig w <[EMAIL PROTECTED]> wrote: > ok I also tried this: > > > public static class MyInvoker extends ObjectInvoker { > > private ObjectInvoker delegate; > > public MyInvoker(ObjectInvoker delegate) { > > super(delegate.getScope ()); > > this. delegate = delegate; > > } > > @Override > > public Object invoke(Method arg0, Object[] arg1, MessageContext arg2) > throws XFireFault { > > System.out.println( "Invoking: " + arg0 + ", " + arg1 + ", mc: " + > arg2); > > return delegate.invoke(arg0, arg1, arg2); > > } > > @Override > > public ScopePolicy getScope() { > > return delegate.getScope(); > > } > > @Override > > public Object getServiceObject(MessageContext arg0) throws XFireFault { > > return delegate.getServiceObject(arg0); > > } > > } > > in my HelloServiceClient.... > > .... > > > AnnotationServiceFactory asf = new AnnotationServiceFactory(new > Jsr181WebAnnotations(), tm, new AegisBindingProvider(new > JaxbTypeRegistry())); > > asf.setBindingCreationEnabled(false); > > service0 = asf.create((blah.HelloServiceSoap.class), props); > ObjectInvoker oi = (ObjectInvoker) service0.getInvoker(); > service0.setInvoker(new MyInvoker(oi)); > > > When I run my "main" method again....I don't even see anything printed out, > I should at least see the "Invoking...." message as printed from MyInvoker. > It almost seems like the "service0" object is not being used or something. > > > On 4/28/07, craig w <[EMAIL PROTECTED]> wrote: > > > > I found the example....and i see how to create the handler. Problem is > with my generated code the handler doesn't seemed to be used. I went into > my auto-generated HelloServiceClient.java and when it creates the service0 > object, I then do... > > > > // i tried in handler and out handler, same results (none) > > service0.addInHandler(new MyHandler()); > > > > class MyHandler extends AbstractHandler { > > public void invoke(MessageContext mc) { > > > > Element header = ctx.getInMessage().getHeader(); > > System.out.println("HEADER: " + header); > > > > } > > } > > > > The "Book" example does things differently than my auto-generated code: > > > > HelloServiceClient service = new HelloServiceClient(); > > HelloServiceSoap client = service.getHelloServiceSoap(); > > Holder<UserInfo> holder = new Holder<UserInfo>(); > > SayHelloResult result = client.sayHello("bob", holder); > > > > The output from this does not show "HEADER: ...." , as though my handler > is never being called. > > > > any ideas why? > > > > > > > > > > On 4/28/07, craig w <[EMAIL PROTECTED]> wrote: > > > > > > where can I find these? I currently have > xfire-all-1.2-20070425.101013-38.jar and > xfire-all-1.2.5.jar...but they dont seem to have an examples folder in them. > > > > > > thanks again! > > > > > > > > > > > > On 4/28/07, Tomek Sztelak <[EMAIL PROTECTED] > wrote: > > > > Check book example and CheckVersionHandler . > > > > > > > > On 4/28/07, craig w < [EMAIL PROTECTED]> wrote: > > > > > anyone have an idea??? > > > > > > > > > > > > > > > > > > > > On 4/27/07, craig w < [EMAIL PROTECTED]> wrote: > > > > > > ...things are very quiet... > > > > > > > > > > > > > > > > > > > > > > > > On 4/26/07, craig w < [EMAIL PROTECTED]> wrote: > > > > > > > Hi, > > > > > > > I have the following WSDL2Java generated client code: > > > > > > > > > > > > > > public static void main(String[] args) { > > > > > > > HelloServiceClient service = new HelloServiceClient(); > > > > > > > HelloServiceSoap client = service.getHelloServiceSoap(); > > > > > > > Holder<UserInfo> holder = new Holder<UserInfo>(); > > > > > > > SayHelloResult result = client.sayHello ("bob", holder); > > > > > > > System.out.println("context: " + AbstractInvoker.getContext > ()); > > > > > > > } > > > > > > > > > > > > > > This prints out null. > > > > > > > > > > > > > > In my HelloServiceClient I put a method to retrieve the > > > > > > > org.codehaus.xfire.service.Service object. So > in my > > > > > > > HelloServiceClient there is this line: > > > > > > > > > > > > > > service0 = asf.create ((blah.HelloServiceSoap.class), props); > > > > > > > > > > > > > > and I added: > > > > > > > service0.addInHandler(new ReadHeadersHandler()); > > > > > > > > > > > > > > So in my "main" I put a print at the end, such as: > > > > > > > > > > > > > > for (Handler h : service.getService ().getInHandlers()) { > > > > > > > System.out.println(h + ", " + h.getBefore() + ", " + > h.getAfter () > > > > > > > + ", " + h.getUnderstoodHeaders()); > > > > > > > } > > > > > > > > > > > > > > each function call to the Handler "h" ( i.e. getBefore, > getAfter, etc) > > > > > > > just returns null or an empty list (depending on what it should > > > > > > > return). I even tried adding the ReadHeadersHandler to the > > > > > > > "OutHandlers" list of my client. Still no luck. > > > > > > > > > > > > > > One last thing I tried was to add my own handler to the In and > Out > > > > > > > handlers list. > > > > > > > > > > > > > > service.getService().addInHandler(new AbstractHandler() { > > > > > > > public void invoke(MessageContext mc) { > > > > > > > System.out.println("Message: " + mc); > > > > > > > } > > > > > > > }); > > > > > > > > > > > > > > This doesn't print anything. > > > > > > > > > > > > > > Any ideas??? The "sayHello" operation does return a soap > envelope > > > > > > > which has a UserInfo header and a body. > > > > > > > > > > > > > > thanks > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > -- > > > > ----- > > > > When one of our products stops working, we'll blame another vendor > > > > within 24 hours. > > > > > > > > > --------------------------------------------------------------------- > > > > To unsubscribe from this list please visit: > > > > > > > > http://xircles.codehaus.org/manage_email > > > > > > > > > > > > > > > > > > > > -- ----- When one of our products stops working, we'll blame another vendor within 24 hours. --------------------------------------------------------------------- To unsubscribe from this list please visit: http://xircles.codehaus.org/manage_email
