geronimo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Davanum Srinivas" <dava...@gmail.com>
Subject Re: Questions for Axis2 folks re: JAXWS
Date Fri, 16 Mar 2007 13:46:06 GMT
Lin,

There may be a way around it...i need to re-read this entire thread.
will do later today.

thanks,
dims

On 3/16/07, Lin Sun <linsun.unc@gmail.com> wrote:
> Hi, thanks everyone for their input!  I really like this list - it is
> very friendly! :-)
>
> Jeff, I'd be happy to do it... a bit booked today but I should be able
> to come up with a patch soon to handle the 2nd case where wsdlLocation
> is specified in webservice annotation.
>
> As for the first case (when wsdl file doesn't exist), my understanding
> is that Axis2 doesn't have such a tool with JAX-WS features.  This is a
> big feature, not just a bug.:-(   The Java2WSDL tool is the only tool
> that I am aware of in Axis2 and it doesn't do annotation.    That's the
> only reason why I propose to use the wsgen tool provided by sun.
>
> Lin
>
>
> Jeff Genender wrote:
> > Yup...filling in the PortInfo map with some of the WebService annotation
> > info (minimally the wsdl location) should get us past this issue.
> >
> > If Lin doesn't do it I may give it a SWAG this morning.
> >
> > Jeff
> >
> > Jarek Gawor wrote:
> >> If Axis2 has a tool to generate WSDL from Java code (with annotations)
> >> then we should definitely used that. Hopefully, it also has good
> >> programmatic API so that we can call it at runtime (or at deployment
> >> time) and generate the WSDL dynamically to a file or a byte array or
> >> whatever. In G we would just check if the @WebService annotation has
> >> wsdlLocation attribute set (there is a bit of logic to that) and call
> >> that tool only if it is not. I don't think we should do anything more
> >> then that in G. That is, I don't think we should write any code in G
> >> to generate WSDL from Java code.
> >>
> >> Jarek
> >>
> >> On 3/15/07, Lasantha Ranaweera <lasantha@opensource.lk> wrote:
> >>> Hi Lin,
> >>>
> >>> I checked your email in the Axis2 dev list and I am also not sure
> >>> whether this is a bug or a missing feature in the Axis2 (since I didn't
> >>> go through the problem deep). If this is a bug we might able to help
> >>> Axis2 source code too (as I did couple of times with my patches) ;-) .
> >>> Make sure to cross link issues in JIRA in such situation. Otherwise as
> >>> Jeff mentioned we might need to implement in the G side if the Axis2
> >>> doesn't have any plans of support the feature soon.
> >>>
> >>> Regarding your last part of reading annotations have a look at
> >>> JAXWSUtils.java file comes in a org.apache.geronimo.jaxws package, I
> >>> think it has a way of reading such annotations (line 86).
> >>>
> >>> Thanks,
> >>> Lasantha
> >>>
> >>> Lin Sun wrote:
> >>>> Hi Jeff,
> >>>>
> >>>> Yes I totally agree that the tool needs to be for axis2 only and
> >>>> handled during deployment time!  Basically, during deployment of the
> >>>> module, we'll invoke the tool on the fly and generate the .wsdl file
> >>>> for the user, and set the PortInfo's wsdlLocation property.  Then the
> >>>> code will be executed as if the .wsdl is provided by the user, which
> >>>> we know works right now.   I was just trying to run the tool
> >>>> stand-alone first to make sure it is good for our need.:-)  I'll
> >>>> investigate if there is any license issue.
> >>>>
> >>>> Also, this doesn't cover the second scenario, when .wsdl file is
> >>>> provided  but the location of the .wsdl file is specified in
> >>>> annotation but not in webservices.xml.   In this case, we 'll need to
> >>>> figure out the location of the .wsdl file from annotation (not sure
> >>>> how to do that yet) and set the PortInfo's wsdlLocation property.
> >>>>
> >>>> Thanks,
> >>>>
> >>>> Lin
> >>>>
> >>>> Jeff Genender wrote:
> >>>>> I think this is supposed to happen on deployment, not from a tool.
 If
> >>>>> Axis is not going to handle this, then this code will need to be
> >>> written
> >>>>> in the Axis2 deployer for Geronimo.  Currently CXF does handle
> >>>>> Webservice annotations, so this type of deployment code would be
an
> >>>>> Axis2 only necessity.  I think the PortInfo objects will need to
be
> >>>>> filled out before handing off to Axis2.
> >>>>>
> >>>>> Jeff
> >>>>>
> >>>>>
> >>>>> Lin Sun wrote:
> >>>>>> Hi Jeff/Lasantha,
> >>>>>>
> >>>>>> I just posted this prob on axis2-dev list [1].   Currently the
> >>>>>> Java2WSDL
> >>>>>> tool which is what is being used to generate the targetnamespace
> >>>>>> doesn't
> >>>>>> seem to handle any of the annotation stuff... not sure if it
will
> >>> ever
> >>>>>> handle.:-(
> >>>>>>
> >>>>>> An alternative is to use the sun's wsgen tool provided by
> >>>>>> jaxws-tools.jar to generate the wsdl file from Java in the geronimo
> >>>>>> integration code.  I tried to use the tool and it did generate
the
> >>>>>> targetnamespace correctly.
> >>>>>>
> >>>>>> [1]: http://marc.theaimsgroup.com/?l=axis-dev&m=117397929613538&w=2
> >>>>>>
> >>>>>> Lin
> >>>>>>
> >>>>>> Jeff Genender wrote:
> >>>>>>> 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
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>>
> >>>>
> >>>>
> >>>
> >
>
>


-- 
Davanum Srinivas :: http://wso2.org/ :: Oxygen for Web Services Developers

Mime
View raw message