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

Reply via email to