Hi Guillaume,
I generate the wsdl with my own Java program from an XML description as I
do with the Java class because I found some problems with the tool in axis2 and
I prefer create it from the scratch, using my class.
If there is a simple way to correct the error using jsr181 please tell me,
instead I've to change something more in my thesis, in fact it generate,
starting from an XML description the SA in an automatic way.
I add: my POJO is not annotated.
Thank you very much, regards
Simone
-----Messaggio originale-----
Da: Guillaume Nodet [mailto:[EMAIL PROTECTED]
Inviato: sab 29/03/2008 7.59
A: [email protected]
Oggetto: Re: Spring Pojo return
Do you use a wsdl2java tool or is the wsdl generated by the component from
the java pojo ?
It seems just a problem in the wsdl generation. Anyway, xfire, which is
used internally in jsr181 is not developped anymore so if would advise to
use the servicemix-cxf-se instead.
On Fri, Mar 28, 2008 at 11:06 PM, Simone Maletta <[EMAIL PROTECTED]>
wrote:
>
> Hi Guillaume,
> I try to add style="rpc" and to add wsdlResource="classpath:CCCheck.wsdl
> "
> to my own <jsr1181:endpoint/> here is the error I got on servicemix
> console:
>
> INFO - DefaultFaultHandler - Fault occurred!
> org.codehaus.xfire.fault.XFireFault: Parameter c does not exist!
> at
> org.codehaus.xfire.service.binding.RPCBinding.readMessage(RPCBinding.java
> :87)
> at
> org.codehaus.xfire.soap.handler.SoapBodyHandler.invoke(
> SoapBodyHandler.java:42)
> at
> org.codehaus.xfire.handler.HandlerPipeline.invoke(HandlerPipeline.java
> :131)
> at
> org.codehaus.xfire.transport.DefaultEndpoint.onReceive(
> DefaultEndpoint.java:64)
> at
> org.codehaus.xfire.transport.AbstractChannel.receive(AbstractChannel.java
> :38)
> at
> org.apache.servicemix.jsr181.Jsr181ExchangeProcessor.process(
> Jsr181ExchangeProcessor.java:114)
> at
> org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(
> AsyncBaseLifeCycle.java:489)
> at
> org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(
> AsyncBaseLifeCycle.java:441)
> at
> org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(
> BaseLifeCycle.java:46)
> at
> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(
> DeliveryChannelImpl.java:595)
> at
> org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(
> AbstractFlow.java:174)
> at
> org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java
> :176)
> at
> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java
> :134)
> at
>
> edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask
> (ThreadPoolExecutor.java:665)
> at
>
> edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run
> (ThreadPoolExecutor.java:690)
> at java.lang.Thread.run(Thread.java:619)
>
>
> and here the fault message I receive in the invoking console:
>
> <?xml version='1.0' encoding='UTF-8'?><SOAP-ENV:Envelope
> xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/
> "><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Client</faultcode><faultstring>Parameter
> c does not
> exist!</faultstring><detail><stack>org.codehaus.xfire.fault.XFireFault:
> Parameter c does not exist!
> at
> org.codehaus.xfire.service.binding.RPCBinding.readMessage(RPCBinding.java
> :87)
> at
> org.codehaus.xfire.soap.handler.SoapBodyHandler.invoke(
> SoapBodyHandler.java:42)
> at
> org.codehaus.xfire.handler.HandlerPipeline.invoke(HandlerPipeline.java
> :131)
> at
> org.codehaus.xfire.transport.DefaultEndpoint.onReceive(
> DefaultEndpoint.java:64)
> at
> org.codehaus.xfire.transport.AbstractChannel.receive(AbstractChannel.java
> :38)
> at
> org.apache.servicemix.jsr181.Jsr181ExchangeProcessor.process(
> Jsr181ExchangeProcessor.java:114)
> at
> org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(
> AsyncBaseLifeCycle.java:489)
> at
> org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(
> AsyncBaseLifeCycle.java:441)
> at
> org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(
> BaseLifeCycle.java:46)
> at
> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(
> DeliveryChannelImpl.java:595)
> at
> org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(
> AbstractFlow.java:174)
> at
> org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java
> :176)
> at
> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java
> :134)
> at
>
> edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask
> (ThreadPoolExecutor.java:665)
> at
>
> edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run
> (ThreadPoolExecutor.java:690)
> at java.lang.Thread.run(Thread.java:619)
> </stack></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
>
> but now with my browser I may read the wsdl I wrote.
> Here is the package file:
>
> --CCCheck-sa.jar
> |
> |------CCCheck-http-su.jar
> | |
> | |------CCCheck.wsdl
> | \
> |
> |-------CCCheck-jsr181-su.jar
> | |
> | |-----*.class
> | |-----CCCheck.wsdl
> | |-----xbean.xml
> | \
> \
>
> Have you got any idea?? Please help me!!!
> Thank you very much, regards
>
> Simone
>
>
> gnodet wrote:
> >
> > Have you tried with style="rpc" on the <jsr181:endpoint/> element ?
> >
> > On Fri, Mar 28, 2008 at 9:40 AM, <[EMAIL PROTECTED]> wrote:
> >
> >> Hi guys,
> >> I observe a strange thing using my developed work:
> >> I create a WebService from a Spring Pojo bean and I developed it on
> >> ServiceMix using servicemix-jsr181 component.
> >> The strangers come using it: in fact I invoke it using sendsoap an a
> >> message that agree with the wsdl, for example:
> >>
> >> <SOAP-ENV:Envelope xmlns:SOAP-ENV="
> >> http://schemas.xmlsoap.org/soap/envelope/" >
> >> <SOAP-ENV:Body>
> >> <ns1:cccheck xmlns:ns1="http://localhost:8080/CCCheck">
> >> <c>3</c>
> >> </ns1:cccheck>
> >> </SOAP-ENV:Body>
> >> </SOAP-ENV:Envelope>
> >>
> >> and my return is:
> >>
> >> <?xml version='1.0' encoding='UTF-8'?><SOAP-ENV:Envelope
> xmlns:SOAP-ENV="
> >> http://schemas.xmlsoap.org/soap/envelope/
> "><SOAP-ENV:Body><cccheckResponse
> >> xmlns="http://localhost:8080/CCCheck"><out xmlns="
> >> http://localhost:8080/CCCheck
> >> ">false</out></cccheckResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
> >>
> >> That disagrees with the wsdl in fact I was waiting for a <app> tag into
> >> <cccheckResponse> one: here is the wsdl
> >>
> >> <?xml version="1.0" encoding="UTF-8" standalone="no"?>
> >> <wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
> >> xmlns="http://schemas.xmlsoap.org/wsdl/"
> >> xmlns:smix="http://servicemix.org/wsdl/jbi/"
> >> xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
> >> xmlns:tns="http://localhost:8080/CCCheck"
> >> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> >>
> >> xmlns:plnk="http://docs.oasis-open.org/wsbpel/2.0/plnktype
> >> "
> >> targetNamespace="http://localhost:8080/CCCheck">
> >>
> >> <wsdl:message name="cccheckRequestMessage">
> >> <wsdl:part name="c" type="xsd:integer"/>
> >> </wsdl:message>
> >>
> >> <wsdl:message name="cccheckResponseMessage">
> >> <wsdl:part name="app" type="xsd:boolean"/>
> >> </wsdl:message>
> >>
> >> <wsdl:portType name="cccheckPortType">
> >> <wsdl:operation name="cccheck">
> >> <wsdl:input message="tns:cccheckRequestMessage"
> >> name="cccheckRequest"/>
> >> <wsdl:output
> message="tns:cccheckResponseMessage"
> >> name="cccheckResponse"/>
> >> </wsdl:operation>
> >> </wsdl:portType>
> >>
> >> <wsdl:binding name="cccheckSOAPBinding"
> >> type="tns:cccheckPortType"><soap:binding style="rpc" transport="
> >> http://schemas.xmlsoap.org/soap/http"/>
> >> <wsdl:operation name="cccheck">
> >> <soap:operation name="cccheck" soapAction=""
> >> style="rpc"/>
> >> <wsdl:input>
> >> <soap:body namespace="
> >> http://localhost:8080/CCCheck" use="literal"/>
> >> </wsdl:input>
> >> <wsdl:output>
> >> <soap:body namespace="
> >> http://localhost:8080/CCCheck" use="literal"/>
> >> </wsdl:output>
> >> </wsdl:operation>
> >> </wsdl:binding>
> >>
> >> <wsdl:service name="CCCheckService">
> >> <wsdl:port binding="tns:cccheckSOAPBinding"
> >> name="cccheckPort">
> >> <soap:address location="
> >> http://localhost:8080/CCCheck"/>
> >> <smix:endpoint defaultMep="in-out"
> >> role="consumer"/>
> >> </wsdl:port>
> >> </wsdl:service>
> >>
> >> <plnk:partnerLinkType name="CCCheckPartnerLinkType">
> >> <plnk:role name="CCCheckRole"
> >> portType="tns:cccheckPortType"/>
> >> </plnk:partnerLinkType>
> >> </wsdl:definitions>
> >>
> >>
> >> Using it directly may seems a silliness but I invoke this ws from a
> BPEL
> >> and reading the response fails for this problem!!!
> >> To be clearest I attach here the xbean.xml too:
> >>
> >> <?xml version="1.0" encoding="UTF-8" standalone="no"?><beans
> xmlns:aop="
> >> http://www.springframework.org/schema/aop" xmlns:jsr181="
> >> http://servicemix.apache.org/jsr181/1.0" xmlns:tx="
> >> http://www.springframework.org/schema/tx" xmlns:wsdl="
> >> http://localhost:8080/CCCheck">
> >> <jsr181:endpoint annotations="none"
> service="wsdl:CCCheckService"
> >> serviceInterface="CCCheckInterface" endpoint="CCCheckPort">
> >> <jsr181:pojo>
> >> <bean class="CCCheck" id="cccheckService"/>
> >> <tx:advice id="txAdvice">
> >> <tx:attributes>
> >> <tx:method name="cccheck"
> >> readOnly="true"/>
> >> </tx:attributes>
> >> </tx:advice>
> >> <aop:config>
> >> <aop:pointcut
> >> expression="excecution(*CCCheck.*(...))" id="cccheckServiceOperation"/>
> >> <aop:advisor advice-ref="txAdvice"
> >> pointcut-ref="cccheckServiceOperation"/>
> >> </aop:config>
> >> </jsr181:pojo>
> >> </jsr181:endpoint>
> >> </beans>
> >>
> >> There is someone may give me an explanation and a way to bypass this
> >> problem?
> >> Thank you all in advance guys,
> >> regards
> >>
> >> Simone
> >>
> >
> >
> >
> > --
> > Cheers,
> > Guillaume Nodet
> > ------------------------
> > Blog: http://gnodet.blogspot.com/
> >
> >
>
> --
> View this message in context:
> http://www.nabble.com/Spring-Pojo-return-tp16347855s12049p16363130.html
> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>
>
--
Cheers,
Guillaume Nodet
------------------------
Blog: http://gnodet.blogspot.com/