I have also tried dynamic proxy call:

            QName operationQName = new QName(
                    "http://schemas.apache.org/yoko/idl/calc";,
                    "add");

                JaxWsClientFactoryBean client = new JaxWsClientFactoryBean();
                client.setAddress("http://localhost/soap/calc";);
                client.setServiceClass(ComPikeelectronicCalcCalculator.class);
                ClientImpl SOAPclient = (ClientImpl)client.create();
                Object[] SOAPresult = null;
                Object[] params = { new Double(4), new Double(2) };
                        try {
                                SOAPresult = SOAPclient.invoke(operationQName, 
params);
                        } catch (Exception e) {
                                e.printStackTrace();
                        }
                        System.out.println(SOAPresult);

I am getting the same result. Maybe I need to wrap the input
parameters (double, double) into Any type because it seems the CORBA
binding expects something else. Any pointers here?

Have a nice weekend.

2007/8/2, Lukas Zapletal <[EMAIL PROTECTED]>:
> I thought DII and Dispatch are equal. So is there a possibility to
> call a CORBA service in y dynamic way? Example of the client:
>
>                         QName svcQname = new QName(
>                                         
> "http://schemas.apache.org/yoko/idl/calc";,
>                                         
> "com.pikeelectronic.calc.CalculatorCORBAService");
>                         QName portQName = new QName(
>                                         
> "http://schemas.apache.org/yoko/idl/calc";,
>                                         
> "com.pikeelectronic.calc.CalculatorCORBAPort");
>
>                         Service svc = Service.create(svcQname);
>                         svc.addPort(portQName, SOAPBinding.SOAP11HTTP_BINDING,
>                                         "corbaloc::localhost:40000/calc");
>
>             // Create the dynamic invocation object from this service.
>             Dispatch<Source> dispatch = svc.createDispatch(
>                     portQName,
>                     Source.class,
>                     Service.Mode.PAYLOAD);
>
>             String content =
>                     "<tns:add
> xmlns:tns=\"http://schemas.apache.org/yoko/idl/calc\";>" +
>                       "<x>2</x> <y>4</y>" +
>                     "</tns:add>";
>
>             ByteArrayInputStream bais = new
> ByteArrayInputStream(content.getBytes());
>             Source input = new StreamSource(bais);
>
>             // Invoke the operation.
>             Source response = dispatch.invoke(input);
>
>             // Process the response.
>             StreamResult result = new StreamResult(new 
> ByteArrayOutputStream());
>             Transformer trans =
> TransformerFactory.newInstance().newTransformer();
>             trans.transform(response, result);
>             ByteArrayOutputStream baos = (ByteArrayOutputStream)
> result.getOutputStream();
>
>             // Write out the response content.
>             String responseContent = new String(baos.toByteArray());
>             System.out.println(responseContent);
>
> I am getting an exception:
>
> 2.8.2007 15:11:31 org.apache.cxf.jaxws.DispatchImpl invoke
> INFO: Dispatch: invoke called
> 2.8.2007 15:11:31 org.apache.cxf.phase.PhaseInterceptorChain doIntercept
> INFO: Interceptor has thrown exception, unwinding now
> java.lang.NullPointerException
>         at 
> org.apache.yoko.bindings.corba.TypeMapCache.get(TypeMapCache.java:38)
>         at 
> org.apache.yoko.bindings.corba.CorbaConduit.<init>(CorbaConduit.java:86)
>         at 
> org.apache.yoko.bindings.corba.CorbaBindingFactory.getConduit(CorbaBindingFactory.java:109)
>         at 
> org.apache.yoko.bindings.corba.CorbaBindingFactory.getConduit(CorbaBindingFactory.java:104)
>         at 
> org.apache.cxf.endpoint.AbstractConduitSelector.getSelectedConduit(AbstractConduitSelector.java:73)
>         at 
> org.apache.cxf.endpoint.UpfrontConduitSelector.selectConduit(UpfrontConduitSelector.java:71)
>         at 
> org.apache.cxf.message.ExchangeImpl.getConduit(ExchangeImpl.java:50)
>         at 
> org.apache.cxf.interceptor.MessageSenderInterceptor.getConduit(MessageSenderInterceptor.java:71)
>         at 
> org.apache.cxf.interceptor.MessageSenderInterceptor.handleMessage(MessageSenderInterceptor.java:46)
>         at 
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:206)
>         at org.apache.cxf.jaxws.DispatchImpl.invoke(DispatchImpl.java:163)
>         at org.apache.cxf.jaxws.DispatchImpl.invoke(DispatchImpl.java:112)
>         at com.pikeelectronic.calc.WSDIIClient.main(WSDIIClient.java:51)
> java.lang.ClassCastException: java.lang.NullPointerException cannot be
> cast to org.apache.cxf.interceptor.Fault
>         at org.apache.cxf.jaxws.DispatchImpl.invoke(DispatchImpl.java:171)
>         at org.apache.cxf.jaxws.DispatchImpl.invoke(DispatchImpl.java:112)
>         at com.pikeelectronic.calc.WSDIIClient.main(WSDIIClient.java:51)
>
> How sould I pass the binding information into it?
>
> Thanks, Lukas
>
> 2007/8/2, Liu, Jervis <[EMAIL PROTECTED]>:
> > JAX-WS does not support DII except the Dispatch interface, the old JAX-RPC 
> > spec does. The reason is because DII in its nature, does not work well with 
> > Doc/Lit style web services. BTW, one could also argue Dispatch interface is 
> > more powerful than DII.
> >
> > Cheers,
> > Jervis
> >
> > -----Original Message-----
> > From: Lukas Zapletal [mailto:[EMAIL PROTECTED]
> > Sent: 2007年8月2日 16:11
> > To: [EMAIL PROTECTED]
> > Subject: Re: YOKO & CXF CORBA Web Service using Provider<CorbaMessage>
> >
> >
> > Hello,
> >
> > is it possible to call CORBA service with CXF using DII? How could I
> > pass the request through the binding?
> >
> > LZ
> >
> > 2007/7/30, Liu, Jervis <[EMAIL PROTECTED]>:
> > > Hi Michal,
> > >
> > > The short answer is we do not support Provider<CorbaMessage> right now in 
> > > CXF, I will discuss into details why we can not support 
> > > Provider<CorbaMessage> with standard JAX-WS APIs in a following email. 
> > > You mentioned CORBA binding is working for you with the SEI style(client 
> > > and server generated by wsdltojava), so why you wanted to try Provider 
> > > interface? Is it because you want to access raw message that sent and 
> > > received by CORBA binding? If this is the case, interceptors might help. 
> > > I am not familiar with YOKO, but the underlying principles should be same 
> > > as other bindings, i.e., they should have some CORBA binding interceptors 
> > > that take an input stream, parse the input to get binding operation info, 
> > > such as operation name, input parameter types etc so that they know how 
> > > to dispatch the request into implementation. At the same time, some other 
> > > CORBA binding interceptors will retrieve the payload from request (maybe 
> > > the CDR format?) and turn it into some kind of objects that represent 
> > > CORBA payload (maybe the CorbaMessage u referred to?). Lets say 
> > > interceptor B, C, D are used by CORBA binding to do the work mentioned 
> > > about, at the end of interceptor D, both operation info and message 
> > > payload will be available for accessing.  So if you can ask YOKO team, 
> > > they might help you to find out what interceptors are used by CORBA 
> > > binding and how they work. You shall be able to access raw information 
> > > from these interceptor directly. If you prefer not modify or use these 
> > > CORBA interceptors directly, you can write you own interceptor. As long 
> > > as you put this interceptor in a proper position of interceptor chain, 
> > > you shall be able access all the information as well. An example of how 
> > > to write and configure your own interceptor can be found from 
> > > samples\streamInterceptor in CXF distribution.
> > >
> > > Hope this helps,
> > > Jervis
> > >
> > > -----Original Message-----
> > > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
> > > Sent: 2007?7?30? 16:31
> > > To: [EMAIL PROTECTED]
> > > Subject: RE: YOKO & CXF CORBA Web Service using Provider<CorbaMessage>
> > >
> > >
> > > Thanks guys for your helpful replies. Isn't there any way how to solve my
> > > problem using Interceptor? I'll try ServerFactoryBean as you mentioned.
> > > Thanks
> > >
> > >
> > > > Michal,
> > >
> > > > Right now, we don't support any Provider (or Dispatch) that takes the 
> > > > raw
> > > > CXF Message types.   That's a good suggestion though.  Could you log a
> > > > Jira for it?
> > > >
> > > > What's worse, looking at the code for the Dispatch/Provider stuff on
> > > > trunk, it only will work for XML and SOAP bindings.   It specifically
> > > > checks for those and does "bad" things.   I was hoping to say you could
> > > > do something like:
> > > >
> > > > public class CalculatorImpl implements Provider<XMLStreamReader> {
> > > > }
> > > >
> > > > to use the data from the CORBA stream reader, but that doesn't even work
> > > > right now. Even trying a Source doesn't work.    I think some Jira's
> > > > need to be added for that as well.
> > > >
> > > >
> > > > Dan
> > > >
> > > >
> > > > > On Friday 27 July 2007 09:29, Michal Šafr wrote:
> > > > >
> > > > > firstly I'm not sure, if this is CXF or YOKO problem, so please excuse
> > > > > me if I've sent this problem to a wrong place. I've got the problem
> > > > > described below.
> > > > >
> > > > > I started from simple WSDL describing service with CORBA binding. I
> > > > > generated standalone server and client using CXF tool wsdl2java
> > > > > -server (-client) . Implemented service and everything worked fine
> > > > > without any problem. I was able to call WS using generated client and
> > > > > WS was returning expected values. Then I decided to implement WS using
> > > > > interface javax.xml.ws.Provider so I had:
> > > >
> > > > //Service class, annotations are not mentioned here, but i changed
> > > > @WebService annotation to @WebServiceProvider and added @ServiceMode
> > > >
> > > > public class CalculatorImpl implements Provider<CorbaMessage> {
> > > >
> > > >       public CorbaMessage invoke(CorbaMessage arg0) {
> > > >
> > > >             System.out.println("corba service called");
> > > >
> > > >             return arg0;
> > > >
> > > >       }
> > > >
> > > > }
> > > >
> > > >
> > > >
> > > > Every time I try to call WS a receive following exception on the
> > > > client side:
> > > >
> > > >
> > > >
> > > > org.omg.CORBA.MARSHAL:   vmcid: SUN  minor code: 207  completed: No
> > > >
> > > >       at
> > > > com.sun.corba.se.impl.logging.ORBUtilSystemException.endOfStream(ORBUt
> > > >ilSyst emException.java:6386)
> > > >
> > > >       at
> > > > com.sun.corba.se.impl.logging.ORBUtilSystemException.endOfStream(ORBUt
> > > >ilSyst emException.java:6408)
> > > >
> > > >       at
> > > > com.sun.corba.se.impl.encoding.BufferManagerReadStream.underflow(Buffe
> > > >rManag erReadStream.java:93)
> > > >
> > > >       at
> > > > com.sun.corba.se.impl.encoding.CDRInputStream_1_1.grow(CDRInputStream_
> > > >1_1.ja va:75)
> > > >
> > > >       at
> > > > com.sun.corba.se.impl.encoding.CDRInputStream_1_2.alignAndCheck(CDRInp
> > > >utStre am_1_2.java:80)
> > > >
> > > >       at
> > > > com.sun.corba.se.impl.encoding.CDRInputStream_1_0.read_longlong(CDRInp
> > > >utStre am_1_0.java:504)
> > > >
> > > >       at
> > > > com.sun.corba.se.impl.encoding.CDRInputStream_1_0.read_double(CDRInput
> > > >Stream _1_0.java:526)
> > > >
> > > >       at
> > > > com.sun.corba.se.impl.encoding.CDRInputStream.read_double(CDRInputStre
> > > >am.jav a:153)
> > > >
> > > >       at
> > > > com.pikeelectronic.calc._CalculatorStub.add(_CalculatorStub.java:182)
> > > >
> > > >       at
> > > > com.pikeelectronic.calc.CORBAClient.Client.main(Client.java:32)
> > > >
> > > >
> > > >
> > > > And following exception on the server side:
> > > >
> > > >
> > > >
> > > > 27.7.2007 13:21:05 org.apache.cxf.phase.PhaseInterceptorChain
> > > > doIntercept
> > > >
> > > > INFO: Interceptor has thrown exception, unwinding now
> > > >
> > > > java.lang.NullPointerException
> > > >
> > > >       at java.lang.Class.isAssignableFrom(Native Method)
> > > >
> > > >       at
> > > > org.apache.cxf.databinding.source.XMLStreamDataReader.read(XMLStreamDa
> > > >taRead er.java:56)
> > > >
> > > >       at
> > > > org.apache.cxf.databinding.source.XMLStreamDataReader.read(XMLStreamDa
> > > >taRead er.java:52)
> > > >
> > > >       at
> > > > org.apache.cxf.databinding.source.XMLStreamDataReader.read(XMLStreamDa
> > > >taRead er.java:48)
> > > >
> > > >       at
> > > > org.apache.cxf.interceptor.BareInInterceptor.handleMessage(BareInInter
> > > >ceptor .java:138)
> > > >
> > > >       at
> > > > org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseIntercepto
> > > >rChain .java:206)
> > > >
> > > >       at
> > > > org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitia
> > > >tionOb server.java:67)
> > > >
> > > >       at
> > > > org.apache.yoko.bindings.corba.runtime.CorbaDSIServant.invoke(CorbaDSI
> > > >Servan t.java:156)
> > > >
> > > >       at
> > > > org.apache.yoko.orb.OBPortableServer.ServantDispatcher.dispatch(Servan
> > > >tDispa tcher.java:225)
> > > >
> > > >       at
> > > > org.apache.yoko.orb.OBPortableServer.POA_impl._OB_dispatch(POA_impl.ja
> > > >va:160 7)
> > > >
> > > >       at
> > > > org.apache.yoko.orb.OB.DispatchRequest_impl.invoke(DispatchRequest_imp
> > > >l.java
> > > >
> > > > :56)
> > > >
> > > >       at
> > > > org.apache.yoko.orb.OB.DispatchSameThread_impl.dispatch(DispatchStrate
> > > >gyFact ory_impl.java:53)
> > > >
> > > >       at org.apache.yoko.orb.OB.Upcall.invoke(Upcall.java:360)
> > > >
> > > >       at
> > > > org.apache.yoko.orb.OB.GIOPConnectionThreaded.execReceive(GIOPConnecti
> > > >onThre aded.java:502)
> > > >
> > > >       at
> > > > org.apache.yoko.orb.OB.GIOPConnectionThreaded$ReceiverThread.run(GIOPC
> > > >onnect ionThreaded.java:64)
> > > >
> > > > 27.7.2007 13:21:06 org.apache.cxf.phase.PhaseInterceptorChain
> > > > doIntercept
> > > >
> > > > INFO: Interceptor has thrown exception, unwinding now
> > > >
> > > > org.apache.yoko.bindings.corba.CorbaBindingException:
> > > > java.lang.NullPointerException
> > > >
> > > >       at
> > > > org.apache.yoko.bindings.corba.interceptors.CorbaStreamFaultOutInterce
> > > >ptor.h andleMessage(CorbaStreamFaultOutInterceptor.java:113)
> > > >
> > > >       at
> > > > org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseIntercepto
> > > >rChain .java:206)
> > > >
> > > >       at
> > > > org.apache.cxf.interceptor.AbstractFaultChainInitiatorObserver.onMessa
> > > >ge(Abs tractFaultChainInitiatorObserver.java:86)
> > > >
> > > >       at
> > > > org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseIntercepto
> > > >rChain .java:223)
> > > >
> > > >       at
> > > > org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitia
> > > >tionOb server.java:67)
> > > >
> > > >       at
> > > > org.apache.yoko.bindings.corba.runtime.CorbaDSIServant.invoke(CorbaDSI
> > > >Servan t.java:156)
> > > >
> > > >       at
> > > > org.apache.yoko.orb.OBPortableServer.ServantDispatcher.dispatch(Servan
> > > >tDispa tcher.java:225)
> > > >
> > > >       at
> > > > org.apache.yoko.orb.OBPortableServer.POA_impl._OB_dispatch(POA_impl.ja
> > > >va:160 7)
> > > >
> > > >       at
> > > > org.apache.yoko.orb.OB.DispatchRequest_impl.invoke(DispatchRequest_imp
> > > >l.java
> > > >
> > > > :56)
> > > >
> > > >       at
> > > > org.apache.yoko.orb.OB.DispatchSameThread_impl.dispatch(DispatchStrate
> > > >gyFact ory_impl.java:53)
> > > >
> > > >       at org.apache.yoko.orb.OB.Upcall.invoke(Upcall.java:360)
> > > >
> > > >       at
> > > > org.apache.yoko.orb.OB.GIOPConnectionThreaded.execReceive(GIOPConnecti
> > > >onThre aded.java:502)
> > > >
> > > >       at
> > > > org.apache.yoko.orb.OB.GIOPConnectionThreaded$ReceiverThread.run(GIOPC
> > > >onnect ionThreaded.java:64)
> > > >
> > > > Caused by: java.lang.NullPointerException
> > > >
> > > >       at java.lang.Class.isAssignableFrom(Native Method)
> > > >
> > > >       at
> > > > org.apache.cxf.databinding.source.XMLStreamDataReader.read(XMLStreamDa
> > > >taRead er.java:56)
> > > >
> > > >       at
> > > > org.apache.cxf.databinding.source.XMLStreamDataReader.read(XMLStreamDa
> > > >taRead er.java:52)
> > > >
> > > >       at
> > > > org.apache.cxf.databinding.source.XMLStreamDataReader.read(XMLStreamDa
> > > >taRead er.java:48)
> > > >
> > > >       at
> > > > org.apache.cxf.interceptor.BareInInterceptor.handleMessage(BareInInter
> > > >ceptor .java:138)
> > > >
> > > >       at
> > > > org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseIntercepto
> > > >rChain .java:206)
> > > >
> > > >       ... 9 more
> > > >
> > > >
> > > >
> > > > I have changed nothing else than WS implementation on server side.
> > > > Could anyone help please? Every advice is welcome, thank you very
> > > > much.
> > >
> > > --
> > > J. Daniel Kulp
> > > Principal Engineer
> > > IONA
> > > P: 781-902-8727    C: 508-380-7194
> > > [EMAIL PROTECTED]
> > > http://www.dankulp.com/blog
> > >
> > > ----------------------------
> > > IONA Technologies PLC (registered in Ireland)
> > > Registered Number: 171387
> > > Registered Address: The IONA Building, Shelbourne Road, Dublin 4, Ireland
> > >
> >
> >
> > --
> > Lukas Zapletal
> > http://lukas.zapletalovi.com
> >
> > ----------------------------
> > IONA Technologies PLC (registered in Ireland)
> > Registered Number: 171387
> > Registered Address: The IONA Building, Shelbourne Road, Dublin 4, Ireland
> >
>
>
> --
> Lukas Zapletal
> http://lukas.zapletalovi.com
>


-- 
Lukas Zapletal
http://lukas.zapletalovi.com

Reply via email to