geronimo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jeff Genender <jgenen...@apache.org>
Subject Re: Questions for Axis2 folks re: JAXWS
Date Wed, 07 Mar 2007 13:55:22 GMT


Lasantha Ranaweera wrote:
> Not exactly sure whether I am getting your problem exactly or not  :-( .
> 
> Line 99 decides whether application archive contains WSDL file or not
> (according to Axis2 builder). If it is there we are going to fill WSDL
> information from G side. Otherwise it will be handed over to Axis2 side
> (services with annotations). So looking at your problem regarding
> annotations what I say is it should be handled by Axis2 (all the
> validation & execution stuff). The annotation processing will be handled
> as a web service receives SOAP requests. Starting point for JAXWS based
> SOAP messages is receive() method of JAXWSMessageReciever.
> 

The problem is, Axis2 is generating a wsdl upon the client request for a
wsdl, and not looking at the WebService annotation to get the wsdl's
location.  The code step through below shows the problem clearly.


> HTH.
> 
> Lasantha
> 
> Jeff Genender wrote:
>> o.a.g.Axis2WebserviceContainer, line 99. A not-filled in PortInfo is
>> passed in since G is not processing a WebService annotation, and thus an
>> AxisService.create is called on line 104.
>>
>> When Axis2WebserviceContainer.getWsdl() is ultimately called,
>> doService2() is called (line 212), then to processGetRequest (line 398),
>> leading us to line 435 where the PortInfo is checked as to whether a
>> wsdl file has been passed in or not.  If it has, it spits out the wsdl.
>>  If it has not, then the AxisService.printWsdl() is called and that call
>> spits out a generated wsdl.
>>
>> The crux here is that the PortInfo object does not have all of the info
>> filled in such as seiClass, wsdl file, etc.  That stuff would have been
>> gotten from examining the WebService annotation.
>>
>> The question is, where does that examination or, should that
>> examination, take place? Geronimo or Axis2?
>>
>> Jeff
>>
>> Lasantha Ranaweera wrote:
>>  
>>> Jeff,
>>>
>>> Sorry for a late reply due to my time stamp difference and don't know
>>> exactly you have solved this problem right now or not. Anyway here is my
>>> comment.
>>>
>>> Since you haven't given me exact source code I won't be able to point
>>> you in to the exact source code in the Axis2. May be remote debugging
>>> ...  ;-) .
>>>
>>> Thanks,
>>> Lasantha
>>>
>>> Jeff Genender wrote:
>>>    
>>>> Ok...
>>>>
>>>> I am pretty certain at this stage that the WebService annotation is not
>>>> getting processed.  Can you point me to the code that handles this in
>>>> Axis2?
>>>>
>>>> Thanks,
>>>>
>>>> Jeff
>>>>
>>>>
>>>>
>>>> Jeff Genender wrote:
>>>>  
>>>>      
>>>>> Thanks...this is very helpful.
>>>>>
>>>>> Then by this, looking at the PortInfo, it appears as though it is not
>>>>> stuffing in the WSDL file, which tells me it's a G thang ;-)
>>>>>
>>>>> Jeff
>>>>>
>>>>> Lasantha Ranaweera wrote:
>>>>>           
>>>>>> Hi Jeff,
>>>>>>
>>>>>> To my understanding if we have given a WSDL in an archive it
>>>>>> should get
>>>>>> the priority than the information in the annotations.
>>>>>>
>>>>>> In Axis2 integration there are two parts of implementation with
>>>>>> one for
>>>>>> with WSDL which is mainly handling by G side while with annotations
>>>>>> from
>>>>>> Axis2. For me it is something missing in G side.
>>>>>>
>>>>>> Somebody in the list please correct me  if I am wrong here .
>>>>>>
>>>>>> Thanks,
>>>>>> Lasantha
>>>>>> Jeff Genender wrote:
>>>>>>               
>>>>>>> Hi,
>>>>>>>
>>>>>>> I have noticed when I deploy a war file (with a WSDL), I have
a
>>>>>>> certain
>>>>>>> target name specified both in the WSDL and in the code that uses
a
>>>>>>> WebService annotation.
>>>>>>>
>>>>>>> However, when I go retrieve the WSDL, I notice the target name
>>>>>>> seems to
>>>>>>> be munged according to the package name (backwards) of the code
that
>>>>>>> contains the WebService annotation.
>>>>>>>
>>>>>>> Example...
>>>>>>>
>>>>>>> I have include a WSDL called Hello.wsdl that is in the war file
>>>>>>> in the
>>>>>>> web-inf/wsdl directory and starts with:
>>>>>>>
>>>>>>> <wsdl:definitions targetNamespace="http://example.com/hello/xsd">
>>>>>>> ...
>>>>>>>
>>>>>>> I have a HelloWorld.java that has this:
>>>>>>>
>>>>>>> package test.mypackage;
>>>>>>>
>>>>>>> import javax.jws.WebMethod;
>>>>>>> import javax.jws.WebService;
>>>>>>>
>>>>>>> @WebService(name="HelloWorld", targetNamespace =
>>>>>>> "http://example.org/hello/xsd")
>>>>>>> public class HelloWorld {
>>>>>>>
>>>>>>>     @WebMethod
>>>>>>>     public String sayHello(String me){
>>>>>>>         return "Hello "+me;
>>>>>>>     }
>>>>>>> }
>>>>>>>
>>>>>>> However, when I request the wsdl...I get something like this:
>>>>>>>
>>>>>>> <wsdl:definitions targetNamespace="http://mypackage.test/xsd">
>>>>>>> ...
>>>>>>>
>>>>>>> Notice the targetnamespace was munged and changed from it's
>>>>>>> originally
>>>>>>> declared namespace of "http://example.com/hello/xsd".  I want
the
>>>>>>> one
>>>>>>> that is both declared in the included wsdl (or the one declared
>>>>>>> in the
>>>>>>> annotation).
>>>>>>>
>>>>>>> Is this a facet of Axis2 or is Geronimo not passing a proper
>>>>>>> PortInfo
>>>>>>> object with the necessary stuff filled in?
>>>>>>>
>>>>>>> Any light on this subject would be greatly appreciated ;-)
>>>>>>>
>>>>>>> Thanks,
>>>>>>>
>>>>>>> Jeff
>>>>>>>
>>>>>>>                       
>>>>         
>>
>>   

Mime
View raw message