<apachesoap/> subtask

Apache SOAP

Generates Apache-SOAP deployment descriptor. It generates a file named "soap-dds-{0}.xml" in destdir, where {0} is substituted by symbolic class name of the class implementing a SOAP service. For an EJBean it is the value of ejb:bean's ejb-name parameter, for an ordinary class it is the full qualified class name.

Parameters

Attribute Description Required
xmlencoding The encoding of the soap dds xml file. No, default is "UTF-8"
destdir Destination directory for output SOAP-specific deployment descriptor files. No, default is destdir parameter of ejbdoclet task
mergedir Merge directory where ejbdoclet looks for files to be merged with generated files. No, required, if the merge feature used
statelessSessionEjbProvider Specifies the provider to be used for stateless session beans. No, default is "org.apache.soap.providers.StatelessEJBProvider"
statefulSessionEjbProvider Specifies the provider to be used for stateful session beans. No, default is "org.apache.soap.providers.StatefulEJBProvider"
entityEjbProvider Specifies the provider to be used for entity beans. No, default is "org.apache.soap.providers.EntityEJBProvider"
providerClasspath Specifies the path to where the provider classes are stored. Yes if using a user-written provider class, No otherwise
contextProviderUrl Specifies the context provider URL to be used for looking up the EJBeans. For example, for IBM Websphere it should be something like iiop://localhost:900. It's EJB container dependent. Yes, if EJBs used.
contextFactoryName Specifies the context factory class name to be used for looking up the EJBeans. For example, for IBM Websphere it's com.ibm.ejs.ns.jndi.CNInitialContextFactory. It's EJB container dependent. Yes, if EJBs used.
validateXml Validates the generated xml file according to the DTD file contained inside xdoclet.jar. No, default is false

Merge Points

Merge File Name Description Required
soap-mappings-{0}.xml The file where Apache-SOAP type mappings are defined. {0}designates the symbolic class name. For an EJBean it is the value of ejb:bean's ejb-name parameter, for an ordinary class it is the full qualified class name. See <isd:mappings> in Apache-SOAP deployment descriptor docs. No

Class level tags.

@soap:service

Declares the class a SOAP service.

Parameter Usage
[scope]: "Page" | "Request" | "Session" | "Application" Define the service scope.
[provider]: String Specifies the provider class name. There's special support for EJB beans, so if you do not specify the provider parameter apachesoap tries to assign the correct provider name to the service based on the type of the EJB bean. The provider name for the EJB is taken from statelessSessionEjbProvider or statefulSessionEjbProvider or entityEjbProvider configuration parameters based on the EJBean type.

Method level tags.

@soap:method

Declares the method a SOAP service method. Does not have any parameters.

Note: By default "create" methods of session bean is used, no need to explicitly specify a method as soap:method. All methods declared in remote interface of an EJB are automatically exposed to SOAP clients by default.