[ http://issues.apache.org/jira/browse/AXIS2-1381?page=all ]
Brennan Spies updated AXIS2-1381:
---------------------------------
Attachment: patch.zip
This is a patch to fix this issue.
Notes:
1. Have not dealt with native JMS binding, but the more common use case of SOAP
JMS binding with a JMS address as the <port> subelement.
2. See changelog notes on how to set the WSDL4J ExtensionRegistry, so that
WSDL4J can auto-discover the correct implmentation.
Changelog (also included in attachment):
CHANGELOG for JMS extensions patch:
Module: codegen
1. Added JMS WSDL extensions for WSDL4J from the Apache WSIF project. Minor
modifications to get them to work with WSDL4J 1.6.1 and Axis 2 (change to
method call and removal of custom trace logging). To enable them, you must use
the META-INF/services/ properties file in the attached zip (or use System
property).
2. Added two methods, getJmsAttributes(String,Document,Element) and
getJmsAddress(Port) to AxisServiceBasedMultiLanguageEmitter. Modified
getServiceElement(string,String,Document) to use these. The result is that the
custom XML that gets passed to the XSLT is modified with extra attributes if
jms:address extensibility elements are present.
3. Modified ServiceXMLTemplate.xsl to detect the extra attributes in #2, and
generate the <transports> block and appropriate JMS <property> elements.
Module: kernel
1. Added two custom classes for registering and using extensibility elements
with WSDL4J, org.apache.axis.wsdl.WSDLExtensionRegistry and AxisWSDLFactory
(which uses the former).
2. AxisService2OM. Current version before patch only generates bindings for
HTTP (SOAP 1.1 and 1.2). I've modified this class to generate SOAP 1.1 and 1.2
bindings for each endpoint/transport that is passed into the constructor (the
String[] urls). Added code to generate the appropriate transport URI to the
binding, as well as map the appropriate binding to a port.
3. Fixed a bug where AxisService2OM would generate <soap:body> subelements of
an operation's fault element rather than the appropriate <soap:fault>.
4. Added utility method in JMSUtils to convert a jms:address into a
soap:address of the form
jms:/topicOrQueue?[property=value]&[property=value]...(entity ref for
ampersand for valid XML). This is used to set the endpoint on the AxisService
so that the generated client stub has the correct default endpoint.
5. Added some constants for namespaces, etc.
6. Added ability to recognize JMSAddress as legitimate element in both
findSOAPPort() and copyExtensibilityElements() in WSDL11ToAxisServiceBuilder.
> Need to enhance code generation from WSDL to support JMS extensions
> -------------------------------------------------------------------
>
> Key: AXIS2-1381
> URL: http://issues.apache.org/jira/browse/AXIS2-1381
> Project: Apache Axis 2.0 (Axis2)
> Issue Type: New Feature
> Components: codegen
> Affects Versions: 1.1
> Environment: All
> Reporter: Brennan Spies
> Assigned To: Davanum Srinivas
> Attachments: files.zip, patch.zip
>
>
> Currently, there is no support for JMS WSDL extensions in Axis 2.0. Code
> generation for a WSDL service with JMS bindings succeeds, but the client stub
> is missing a default JMS endpoint reference, and transport elements and
> appropriate properties from <jms:address> should be placed into the generated
> services.xml file.
> To do this, the appropriate extension elements for JMS in the WSDL must be
> recognized. This requires adding them to WSDL4J's extensibility mechanism.
> The appropriate implementations already exist in the Apache WSIF project:
> http://ws.apache.org/wsif/providers/wsdl_extensions/jms_extension.html.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]