<!-- <questionid="arch-overall"when="init"> Describetheoverallarchitecture. <hint> WhatwillbeAPIfor <ahref="http://openide.netbeans.org/tutorial/api-design.html#design.apiandspi"> clientsandwhatsupportAPI</a>? Whatpartswillbepluggable? Howwillplug-insberegistered?Pleaseuse<code><apitype="export"/></code> todescribeyourgeneralAPIsandspecifytheir <ahref="http://openide.netbeans.org/tutorial/api-design.html#category-private"> stabilitycategories</a>. Ifpossiblepleaseprovidesimplediagrams. </hint> </question>
-->
<answer id="arch-overall">
<api
name="WS_Stack_API" type="export"
category="devel"
group="java" url="http://wiki.netbeans.org/WebServicesServerApi">
WS Stack API provides the contract between J2EE Server and particular Web Service technology.<br/>
WS Stack API describes WS Stack features supported of particular J2EE Server.<br/>
WS Stack API describes the list of libraries - jar files - related to particular WS Stack tool
that represents the subset of J2EE Server libraries included in J2EE Server classpath.<br/>
WS Stack API consists of SPI part (intended to implement by J2EE Server plugin) and API part (used by particular WS Stack support)
</api>
<!-- <questionid="arch-usecases"when="init"> <hint> Contentofthisanswerwillbedisplayedaspartofpageat http://www.netbeans.org/download/dev/javadoc/usecases.html Youcanusetags<usecasename="name>regularhtmldescription</usecase> andifyouwanttouseanURLyoucanprefixifwith@TOP@tobegin attherootofyourjavadoc </hint> Describethemain<ahref="http://openide.netbeans.org/tutorial/api-design.html#usecase"> usecases</a>ofthenewAPI.Whowilluseitunder whatcircumstances?Whatkindofcodewouldtypicallyneedtobewritten tousethemodule? </question>
-->
<answer id="arch-usecases">
<p>
WS Stack API is a contract between J2EE Server and IDE support for particular Web Service technology. The API is used to
separate web services capabilities, of J2EE Server, from other J2EE Server features.<br/>
On other side, a specific web service support in IDE doesn't have to comunicate with entire J2EE Server but only with the part describing
the particular web service technology available in particular J2EE Server.<br/>
Use cases:
</p>
<usecase id="1" name="SPI Provider in general">
Implements {@link org.netbeans.modules.websvc.wsstack.spi.WSStackImplementation} interface using the specific WS Stack descriptor class.
Then creates the {@link org.netbeans.modules.websvc.wsstack.api.WSStack} - API object, using {@link org.netbeans.modules.websvc.wsstack.spi.WSStackFactory#createWSStack WSStackFactory.createWSStack()},
and stores this WSStack instance into J2EE Servler lookup. This should be done by implementing
{@link org.netbeans.modules.j2ee.deployment.plugins.spi.LookupProvider} for particuler J2EE Server plugin.
The lookup provider should be registered in layer.xml file under the folder specified by that plugin.
The folder path is specified in {@link org.netbeans.modules.j2ee.deployment.plugins.spi.J2eePlatformImpl} implementation.
</usecase>
<usecase id="2" name="API Client in general">
Client starts with obtaining {@link org.netbeans.modules.websvc.wsstack.api.WSStack} object - by using the static {@link org.netbeans.modules.websvc.wsstack.api.WSStack#findWSStack WSStack.findWSStack} method
for particular J2EE Server plugin lookup and specific WS Stack descriptor class. Then uses this object to obtain particular {@link org.netbeans.modules.websvc.wsstack.api.WSTool} or
to find if particular {@link org.netbeans.modules.websvc.wsstack.api.WSStack.Feature WSStack.Feature} is supported or not.
</usecase>
<usecase id="3" name="JAX-WS Stack in GlassFish and JSR109 deployment">
GlassFish supports JSR109 deployment style for JAX-WS technology.
JAX-WS technology creates a specific JAX-WS stack descriptor class (e.g. JaxWS.class), which describes JAX-WS tools and features.
GlassFish plugin implements {@link org.netbeans.modules.websvc.wsstack.spi.WSStackImplementation} interface and specifies which tools and features are supported by GlassFish.
E.g. {@link org.netbeans.modules.websvc.wsstack.spi.WSStackImplementation#isFeatureSupported WSStackImplementation.isFeatureSupported()} for JaxWS.Feature.JSR109 will return true.<br/>
The IDE support for JAX-WS obtains the {@link org.netbeans.modules.websvc.wsstack.api.WSStack} object using
{@link org.netbeans.modules.websvc.wsstack.api.WSStack#findWSStack WSStack.findWSStack} for particular stack descriptor (JaxWS class) and for particular J2EE Server.
By using {@link org.netbeans.modules.websvc.wsstack.api.WSStack#isFeatureSupported WSStack.isFeatureSupported()} the client knows if JSR109 deployment is supported or not.<br/>
(This means WSDL file shouldn't be generated in project, since WSDL file is generated automatically by the server from WS Metadata annotations)
</usecase>
<usecase id="4" name="JAX-RPC Stack in GlassFish">
GlassFish supports JAX-RPC 1.6 technology.
JAX-RPC technology creates a specific JAX-RPC stack descriptor class (e.g. JaxRPC.class), which describes JAX-RPC tools and features.
GlassFish plugin implements a {@link org.netbeans.modules.websvc.wsstack.spi.WSStackImplementation} interface for JAX-RPC technology, by using the JaxRPC descriptor class,
and provides information about jar files containing JAX-RPC runtime for <b>wscompile</b> tool.
IDE support for JAX-RPC obtains the {@link org.netbeans.modules.websvc.wsstack.api.WSStack} object from J2EE Server lookup, then gets a {@link org.netbeans.modules.websvc.wsstack.api.WSTool} object by calling
{@link org.netbeans.modules.websvc.wsstack.api.WSStack#getWSTool WSStack.getWSTool} for JaxRPC.Tool.WSCOMPILE,
and calls {@link org.netbeans.modules.websvc.wsstack.api.WSTool#getLibraries WSTool.getLibraries} method that returns the array of jar files required by wscompile ant task.
The IDE then uses those jars in wscomile ant task.
</usecase>
<usecase id="5" name="JAX-WS Stack in Tomcat">
Tomcat supports JAX-WS technology. However it doesn't support JSR109 deployment style.
Tomcat plugin creates s {@link org.netbeans.modules.websvc.wsstack.spi.WSStackImplementation} containing information that JSR109 is not suported.
</usecase>
</answer>
<!-- <questionid="arch-what"when="init"> Whatisthisprojectgoodfor? <hint> Pleaseprovidehereafewlinesdescribingtheproject, whatproblemitshouldsolve,providelinkstodocumentation, specifications,etc. </hint> </question>
-->
<answer id="arch-what">
<p>
WS Stack API provides the contract betwee J2EE Server plugin and web service functionality.<br/>
SPI should be implemented by J2EE Server plugin such as GlassFish, Tomcat, JBoss, ...<br/>
API should be implemented by IDE support for particular Web service stack, like JAX-WS support, JAX-RPC support, Axis support etc.
</p>
</answer>
<!-- <questionid="compat-version"when="impl"> Canyourmodulecoexistwithearlierandfuture versionsofitself?Canyoucorrectlyreadalloldsettings?Willfuture versionsbeabletoreadyourcurrentsettings?Canyouread orpolitelyignoresettingsstoredbyafutureversion? <hint> Veryhelpfulforreadingsettingsistostoreversionnumber there,sofutureversionscandecidewhetherhowtoread/convert thesettingsandolderversionscanignorethenewones. </hint> </question>
-->
<answer id="compat-version">
<p>
Yes. The main API class is a final class (not interface) that can be extended easily.
</p>
</answer>
<!-- <questionid="dep-jre"when="final"> WhichversionofJREdoyouneed(1.2,1.3,1.4,etc.)? <hint> Itisexpectedthatifyourmodulerunson1.xthatitwillrun on1.x+1ifno,statethatplease.Alsodescribeherecaseswhere yourundifferentcodeondifferentversionsofJREandwhy. </hint> </question>
-->
<answer id="dep-jre">
<p> 1.5 or later
</p>
</answer>
<!-- <questionid="lookup-register"when="final"> Doyouregisteranythingintolookupforothercodetofind? <hint> Doyouregisterusinglayerfileorusing<code>META-INF/services</code>? Whoissupposedtofindyourcomponent? </hint> </question>
-->
<answer id="lookup-register">
<p>
Not directly, but J2EE Server plugin registers WS Stack objects to its lookup.
No layer.xml used, no META-INF/services. WS Support in ide is retrievingWS Stack objects from J2EE Server lookup.
</p>
</answer>
¤ Diese beiden folgenden Angebotsgruppen bietet das Unternehmen0.45Angebot
(Wie Sie bei der Firma Beratungs- und Dienstleistungen beauftragen können 2026-09-27)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.