Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » Web Tools Project (WTP) » Extending Axis 2 Webservice Wizards
Extending Axis 2 Webservice Wizards [message #222526] Wed, 01 October 2008 03:58 Go to next message
Stefan Holzknecht is currently offline Stefan Holzknecht
Messages: 31
Registered: July 2009
Member
Hi,
I want to extend the Web service creation wizards (actually I want to
extend the axis2 code generation wizards).
I figured out that there exist some extension points that are all marked
as internal (but likely to become public) which I nevertheless hopefully
started to implement.
I sucessfully added a web service runtime, web service implementation,
client service implementation, an object selection widget and much more
other things.
But I ran into major problems that are mainly connected with the fact
that my projects are no dynamic web projects. Even if my projects would
become dynamic web projects I'm wondering about several things:
- Why has a web service client using axis2 to reside inside a dynamic
web project?
- Why is the whole axis2 framework deployed into all projects?
- The ClassLoadingUtil suggests it loads classes project dependent. Due
to the caching of the URLs and the funny static implementation that is
simply not the fact. And not necessary either, why does it not just use
the classes that are given in the preferences?
- Other that axis (1), axis2 is not a plugin and needs to get downloaded
and configured in the preferences. Why is this necessary?
Could someone clarify my questions?
Stefan
Re: Extending Axis 2 Webservice Wizards [message #222589 is a reply to message #222526] Mon, 06 October 2008 18:27 Go to previous messageGo to next message
Kathy Chan is currently offline Kathy Chan
Messages: 93
Registered: July 2009
Member
Hi Stefan,

I'm not sure if you are aware of this already, there's a document called
"Contributing a Web service runtime with UI in WTP"
( http://www.eclipse.org/webtools/jst/components/ws/documents/ ContributingWebServiceRTWithUI.html)
containing instruction on how to contribute a Web service runtime in WTP.
Yes, the extension points are internal currently and we would like to make
it public someday after we get more feedback from adopters.

You can define different require facet for Web Services client so that it
can support other types of projects. Axis1 current supports Java project
and Web project. Please look at the Axis1 Web service client extension
description in org.eclipse.jst.ws.axis.creation.ui as an example. Axis2
currently only support generating client into dynamic Web project. You
could open an enhancement request if you feel that other client project
types should be considered. As far as I can tell, it should be able to
support generation of Axis2 Web services client into Java project (similar
to Axis1 support).

The reason a user need to download the Axis2 runtime, unzip it and set the
Axis2 runtime location in the preference is we want to avoid having to
constantly upgrade a plugin containing the Axis2 JARs when a new release of
Axis2 is available. We shipped Axis1 JARs in a plugin and that limits the
user from getting bug fixes in more recent releases.

I hope I answer your questions.

I'm not sure if I understand you questions on:

> - Why is the whole axis2 framework deployed into all projects?
> - The ClassLoadingUtil suggests it loads classes project dependent. Due to
> the caching of the URLs and the funny static implementation that is simply
> not the fact. And not necessary either, why does it not just use the
> classes that are given in the preferences?

Please clarify.

Regards,

"Stefan Holzknecht" <s.holzknecht@intershop.de> wrote in message
news:gbvaj1$bge$1@build.eclipse.org...
> Hi,
> I want to extend the Web service creation wizards (actually I want to
> extend the axis2 code generation wizards).
> I figured out that there exist some extension points that are all marked
> as internal (but likely to become public) which I nevertheless hopefully
> started to implement.
> I sucessfully added a web service runtime, web service implementation,
> client service implementation, an object selection widget and much more
> other things.
> But I ran into major problems that are mainly connected with the fact that
> my projects are no dynamic web projects. Even if my projects would become
> dynamic web projects I'm wondering about several things:
> - Why has a web service client using axis2 to reside inside a dynamic web
> project?
> - Why is the whole axis2 framework deployed into all projects?
> - The ClassLoadingUtil suggests it loads classes project dependent. Due to
> the caching of the URLs and the funny static implementation that is simply
> not the fact. And not necessary either, why does it not just use the
> classes that are given in the preferences?
> - Other that axis (1), axis2 is not a plugin and needs to get downloaded
> and configured in the preferences. Why is this necessary?
> Could someone clarify my questions?
> Stefan
Re: Extending Axis 2 Webservice Wizards [message #222590 is a reply to message #222589] Tue, 07 October 2008 02:35 Go to previous messageGo to next message
Stefan Holzknecht is currently offline Stefan Holzknecht
Messages: 31
Registered: July 2009
Member
Hi Kathy,
thanks for your answer. Thanks also for your hint about the document. It
actually covers most of the things that I already figured out. I'm going
to file a bug request about unnecessary restrictions of projects that
can (not) be used with the Axis2 web service client wizard.
To clarify:
The axis2 facet has a handler which copies the whole axis2 distribution
into the projects web folder. In my (probably poor) opinion this is not
necessary for most of the web projects (I'm pretty sure that it is e.g.
possible to install axis2 at tomcat on server level rather than web
application level). I would really prefer a solution were this behaviour
might be changeable per configuration, or class path containers, or
something else.
About the ClassLoadingUtil: I think that is really poor coded. Just have
a look into the code and you will see, that the class loader is not
project dependent (it just caches the urls of the first project it is
invoked with). I'm not sure what's the reason for that design either.
Should it be possible to maintain custom xsl code generators, handlers
etc. on a project level? I just know that it does not really work if you
change the projects class path (everything is stored in static vars) or
if you change the axis2 distribution in the preferences. And in my case
it is just not possible to re-use any code of neither axis2 core or ui
plugins (because this class loader code fails with NPEs if it has never
been intialized with a web project. If so, some (most) things work fine).
Stefan


Kathy Chan wrote:
> Hi Stefan,
>
> I'm not sure if you are aware of this already, there's a document called
> "Contributing a Web service runtime with UI in WTP"
> ( http://www.eclipse.org/webtools/jst/components/ws/documents/ ContributingWebServiceRTWithUI.html)
> containing instruction on how to contribute a Web service runtime in WTP.
> Yes, the extension points are internal currently and we would like to make
> it public someday after we get more feedback from adopters.
>
> You can define different require facet for Web Services client so that it
> can support other types of projects. Axis1 current supports Java project
> and Web project. Please look at the Axis1 Web service client extension
> description in org.eclipse.jst.ws.axis.creation.ui as an example. Axis2
> currently only support generating client into dynamic Web project. You
> could open an enhancement request if you feel that other client project
> types should be considered. As far as I can tell, it should be able to
> support generation of Axis2 Web services client into Java project (similar
> to Axis1 support).
>
> The reason a user need to download the Axis2 runtime, unzip it and set the
> Axis2 runtime location in the preference is we want to avoid having to
> constantly upgrade a plugin containing the Axis2 JARs when a new release of
> Axis2 is available. We shipped Axis1 JARs in a plugin and that limits the
> user from getting bug fixes in more recent releases.
>
> I hope I answer your questions.
>
> I'm not sure if I understand you questions on:
>
>> - Why is the whole axis2 framework deployed into all projects?
>> - The ClassLoadingUtil suggests it loads classes project dependent. Due to
>> the caching of the URLs and the funny static implementation that is simply
>> not the fact. And not necessary either, why does it not just use the
>> classes that are given in the preferences?
>
> Please clarify.
>
> Regards,
>
> "Stefan Holzknecht" <s.holzknecht@intershop.de> wrote in message
> news:gbvaj1$bge$1@build.eclipse.org...
>> Hi,
>> I want to extend the Web service creation wizards (actually I want to
>> extend the axis2 code generation wizards).
>> I figured out that there exist some extension points that are all marked
>> as internal (but likely to become public) which I nevertheless hopefully
>> started to implement.
>> I sucessfully added a web service runtime, web service implementation,
>> client service implementation, an object selection widget and much more
>> other things.
>> But I ran into major problems that are mainly connected with the fact that
>> my projects are no dynamic web projects. Even if my projects would become
>> dynamic web projects I'm wondering about several things:
>> - Why has a web service client using axis2 to reside inside a dynamic web
>> project?
>> - Why is the whole axis2 framework deployed into all projects?
>> - The ClassLoadingUtil suggests it loads classes project dependent. Due to
>> the caching of the URLs and the funny static implementation that is simply
>> not the fact. And not necessary either, why does it not just use the
>> classes that are given in the preferences?
>> - Other that axis (1), axis2 is not a plugin and needs to get downloaded
>> and configured in the preferences. Why is this necessary?
>> Could someone clarify my questions?
>> Stefan
>
>
Re: Extending Axis 2 Webservice Wizards [message #224015 is a reply to message #222590] Tue, 18 November 2008 16:49 Go to previous message
Kathy Chan is currently offline Kathy Chan
Messages: 93
Registered: July 2009
Member
Hi Stefan,

Please open RFE for having a way to customize what Axis2 JARs to copy on the
Web project. This would be beneficial if the server already has those JARs.
You can open a defect on the problem with the ClassLoadingUtil.

Regards,
Kathy Chan
"Stefan Holzknecht" <s.holzknecht@intershop.de> wrote in message
news:gcevvl$caj$1@build.eclipse.org...
> Hi Kathy,
> thanks for your answer. Thanks also for your hint about the document. It
> actually covers most of the things that I already figured out. I'm going
> to file a bug request about unnecessary restrictions of projects that can
> (not) be used with the Axis2 web service client wizard.
> To clarify:
> The axis2 facet has a handler which copies the whole axis2 distribution
> into the projects web folder. In my (probably poor) opinion this is not
> necessary for most of the web projects (I'm pretty sure that it is e.g.
> possible to install axis2 at tomcat on server level rather than web
> application level). I would really prefer a solution were this behaviour
> might be changeable per configuration, or class path containers, or
> something else.
> About the ClassLoadingUtil: I think that is really poor coded. Just have a
> look into the code and you will see, that the class loader is not project
> dependent (it just caches the urls of the first project it is invoked
> with). I'm not sure what's the reason for that design either. Should it be
> possible to maintain custom xsl code generators, handlers etc. on a
> project level? I just know that it does not really work if you change the
> projects class path (everything is stored in static vars) or if you change
> the axis2 distribution in the preferences. And in my case it is just not
> possible to re-use any code of neither axis2 core or ui plugins (because
> this class loader code fails with NPEs if it has never been intialized
> with a web project. If so, some (most) things work fine).
> Stefan
>
>
> Kathy Chan wrote:
>> Hi Stefan,
>>
>> I'm not sure if you are aware of this already, there's a document called
>> "Contributing a Web service runtime with UI in WTP"
>> ( http://www.eclipse.org/webtools/jst/components/ws/documents/ ContributingWebServiceRTWithUI.html)
>> containing instruction on how to contribute a Web service runtime in WTP.
>> Yes, the extension points are internal currently and we would like to
>> make it public someday after we get more feedback from adopters.
>>
>> You can define different require facet for Web Services client so that it
>> can support other types of projects. Axis1 current supports Java project
>> and Web project. Please look at the Axis1 Web service client extension
>> description in org.eclipse.jst.ws.axis.creation.ui as an example. Axis2
>> currently only support generating client into dynamic Web project. You
>> could open an enhancement request if you feel that other client project
>> types should be considered. As far as I can tell, it should be able to
>> support generation of Axis2 Web services client into Java project
>> (similar to Axis1 support).
>>
>> The reason a user need to download the Axis2 runtime, unzip it and set
>> the Axis2 runtime location in the preference is we want to avoid having
>> to constantly upgrade a plugin containing the Axis2 JARs when a new
>> release of Axis2 is available. We shipped Axis1 JARs in a plugin and
>> that limits the user from getting bug fixes in more recent releases.
>>
>> I hope I answer your questions.
>>
>> I'm not sure if I understand you questions on:
>>
>>> - Why is the whole axis2 framework deployed into all projects?
>>> - The ClassLoadingUtil suggests it loads classes project dependent. Due
>>> to the caching of the URLs and the funny static implementation that is
>>> simply not the fact. And not necessary either, why does it not just use
>>> the classes that are given in the preferences?
>>
>> Please clarify.
>>
>> Regards,
>>
>> "Stefan Holzknecht" <s.holzknecht@intershop.de> wrote in message
>> news:gbvaj1$bge$1@build.eclipse.org...
>>> Hi,
>>> I want to extend the Web service creation wizards (actually I want to
>>> extend the axis2 code generation wizards).
>>> I figured out that there exist some extension points that are all marked
>>> as internal (but likely to become public) which I nevertheless hopefully
>>> started to implement.
>>> I sucessfully added a web service runtime, web service implementation,
>>> client service implementation, an object selection widget and much more
>>> other things.
>>> But I ran into major problems that are mainly connected with the fact
>>> that my projects are no dynamic web projects. Even if my projects would
>>> become dynamic web projects I'm wondering about several things:
>>> - Why has a web service client using axis2 to reside inside a dynamic
>>> web project?
>>> - Why is the whole axis2 framework deployed into all projects?
>>> - The ClassLoadingUtil suggests it loads classes project dependent. Due
>>> to the caching of the URLs and the funny static implementation that is
>>> simply not the fact. And not necessary either, why does it not just use
>>> the classes that are given in the preferences?
>>> - Other that axis (1), axis2 is not a plugin and needs to get downloaded
>>> and configured in the preferences. Why is this necessary?
>>> Could someone clarify my questions?
>>> Stefan
>>
Previous Topic:Developing web applications on Debian Etch with Tomcat5 & Eclipse
Next Topic:New to JSP +
Goto Forum:
  


Current Time: Thu Jul 24 04:28:15 EDT 2014

Powered by FUDForum. Page generated in 0.01960 seconds