<jaxws:endpoint
        id="EchoService"
        implementor="dk.something.EchoServiceImpl"
        address="/EchoService">
    </jaxws:endpoint>


The EchoService class:

@WebService(name="EchoService", targetNamespace="http://echo/2008/11/16";)
public interface EchoService {
        
        @WebMethod
        public String echo(
                                @WebParam(name = "hello") String hello) throws 
WebServiceException ;

...

The EchoServiceImpl class:


@WebService(endpointInterface = "dk.something.EchoService", serviceName = 
"EchoService", targetNamespace = "http://echo/2008/11/16";)
public class EchoServiceImpl implements EchoService {

        @Resource
        private WebServiceContext context;

        public String echo(String hello) throws WebServiceException {

....



-----Original Message-----
From: Benson Margulies [mailto:[email protected]] 
Sent: 19. december 2008 15:53
To: [email protected]
Subject: Re: Figuring out why params turn to null

Hmm. Can I see your spring endpoint configuration?

On Fri, Dec 19, 2008 at 9:32 AM, Christian Landbo Frederiksen
<[email protected]> wrote:
> Yes that is exactly the situation.
>
> And yes the package-info.class is right there next to the other classes.
>
> It is not mentioned anywhere in any spring xml file.
>
> /Chr
>
>
> -----Original Message-----
> From: Benson Margulies [mailto:[email protected]]
> Sent: 19. december 2008 15:22
> To: [email protected]
> Subject: Re: Figuring out why params turn to null
>
> So, the net is that you add the package-info.java, compile it, and the
> wsdl from ?wsdl does not change? You're sure that the
> package-info.class is sitting there with your other .class files?
>
> Dan, am I missing something? Is there a JAX-WS versus JAX-B issue here?
>
> On Fri, Dec 19, 2008 at 9:11 AM, Christian Landbo Frederiksen
> <[email protected]> wrote:
>> Version 2.1
>>
>> We don't use java2wsdl directly.
>>
>> We use Spring and the jaxws:endpoint tag
>>
>> /Chr
>>
>>
>>
>> -----Original Message-----
>> From: Benson Margulies [mailto:[email protected]]
>> Sent: 19. december 2008 14:43
>> To: [email protected]
>> Subject: Re: Figuring out why params turn to null
>>
>> What version of CXF? What command-line args to java2wsdl?
>>
>> On Thu, Dec 18, 2008 at 5:41 PM, Christian Landbo Frederiksen
>> <[email protected]> wrote:
>>> OK Thanks.
>>>
>>> So now I try change it to qualified, since I have a client (Delphi) that
>>> cannot handle this.
>>>
>>> Searching for how to do this I saw the package-info.java thing.
>>>
>>> So I put a package-info.java file into the package of the service with
>>> this content:
>>>
>>> @javax.xml.bind.annotation.XmlSchema(
>>>                namespace = "http://echo/2008/11/16";,
>>>
>>> attributeFormDefault=javax.xml.bind.annotation.XmlNsForm.UNQUALIFIED,
>>>
>>> elementFormDefault=javax.xml.bind.annotation.XmlNsForm.QUALIFIED)
>>> package dk.something;
>>>
>>>
>>> But nothing happens to the generated WSDL it still has both set to
>>> unqualified.
>>>
>>> Am I missing something or is there another way?
>>>
>>> /Chr
>>>
>>> -----Original Message-----
>>> From: Daniel Kulp [mailto:[email protected]]
>>> Sent: 15. december 2008 17:52
>>> To: [email protected]
>>> Cc: Christian Landbo Frederiksen
>>> Subject: Re: Figuring out why params turn to null
>>>
>>>
>>> The schema has:
>>>
>>> <xs:schema attributeFormDefault="unqualified"
>>>   elementFormDefault="unqualified"
>>>
>>> Thus, the "hello" child element MUST be unqualified.  That's per the
>>> schema
>>> rules.   If it's sent qualified, then it doesn't match the schema.
>>>
>>> Dan
>>>
>>>
>>>
>>>
>>> On Monday 15 December 2008 9:57:19 am Christian Landbo Frederiksen
>>> wrote:
>>>> I am using CXF 2.1
>>>>
>>>>
>>>>
>>>> I expose a java class/method like this
>>>>
>>>>
>>>>
>>>> @WebService(name="EchoService",
>>>> targetNamespace="http://echo.dk/2008/11/16";)
>>>>
>>>> public interface EchoService {
>>>>
>>>>
>>>>
>>>>             @WebMethod
>>>>
>>>>             public String echo(@WebParam(name = "hello") String hello)
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> This turns into this wsdl:
>>>>
>>>>
>>>>
>>>> <xs:schema attributeFormDefault="unqualified"
>>>> elementFormDefault="unqualified"
>>>> targetNamespace="http://echo.dk/2008/11/16";
>>>> xmlns="http://echo.dk/2008/11/16";
>>>> xmlns:xs="http://www.w3.org/2001/XMLSchema";>
>>>>
>>>>       <xs:element name="echo" type="echo"/>
>>>>
>>>>       <xs:complexType name="echo">
>>>>
>>>>         <xs:sequence>
>>>>
>>>>           <xs:element minOccurs="0" name="hello" type="xs:string"/>
>>>>
>>>>         </xs:sequence>
>>>>
>>>>       </xs:complexType>
>>>>
>>>>       <xs:element name="echoResponse" type="echoResponse"/>
>>>>
>>>>       <xs:complexType name="echoResponse">
>>>>
>>>>         <xs:sequence>
>>>>
>>>>           <xs:element minOccurs="0" name="return" type="xs:string"/>
>>>>
>>>>         </xs:sequence>
>>>>
>>>>       </xs:complexType>
>>>>
>>>>     </xs:schema>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> Can successfully be called in SOAP-UI:
>>>>
>>>>
>>>>
>>>> <soapenv:Envelope
>>>> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
>>>> xmlns:ns="http://optagelse.dk/2008/11/16";>
>>>>
>>>>    <soapenv:Header/>
>>>>
>>>>    <soapenv:Body>
>>>>
>>>>       <ns:echo>
>>>>
>>>>                                             <hello>Champ</hello>
>>>>
>>>>       </ns:echo>
>>>>
>>>>    </soapenv:Body>
>>>>
>>>> </soapenv:Envelope>
>>>>
>>>>
>>>>
>>>> But another client generates this:
>>>>
>>>>
>>>>
>>>> <soapenv:Envelope
>>>> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"; >
>>>>
>>>>    <soapenv:Header/>
>>>>
>>>>    <soapenv:Body>
>>>>
>>>>       <echo xmlns="http://optagelse.dk/2008/11/16";>
>>>>
>>>>                                             <hello>Champ</hello>
>>>>
>>>>       </echo>
>>>>
>>>>    </soapenv:Body>
>>>>
>>>> </soapenv:Envelope>
>>>>
>>>>
>>>>
>>>> And this results in the param being null in the method
>>>>
>>>>
>>>>
>>>> The problem is that the param only works when it is given without
>>>> namespace.
>>>>
>>>> ns:hello gives the same result in the first example.
>>>>
>>>>
>>>>
>>>> Is this not a bug? The schema in the wsdl has targetNamespace set so
>>> you
>>>> would assume that the client namespace on the param would work.
>>>>
>>>>
>>>>
>>>> /Chr
>>>
>>>
>>>
>>> --
>>> Daniel Kulp
>>> [email protected]
>>> http://dankulp.com/blog
>>>
>>
>

Reply via email to