[Design of JBoss Web Services] - Re: JBWS-1260 - such a part must refer to an element named a
by darran.lofthouse@jboss.com
I am not sure if that is the case, this requirement is described within chapter 2 of the JAX-RPC specification and the purpose of this chapter is to describe how to generate the service endpoint interface from the WSDL.
Also the terminology used is WSDL terminology, they are saying the element must be named after the operation not that the parameter must be named after the method. When refering to java methods and parameters they do refer to them as methods and parameters.
So I am interpreting it as: -
When you are generating a SEI from a WSDL
If the operation meets these requirements you can treat it as wrapped an unwrap it.
Having said that this check was one of the last checks I added just to be complete with the list of requirements in the spec so there shouldn't be a problem if it is removed.
Looking at your WSDL your message 'attachRequest' contains two message parts so based on the first requirement for a message to contain only a single part this should also be rejected so I am surprised you are not seeing that - I will have a look and see what happened to that check.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4000916#4000916
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4000916
19 years, 2 months
[Design of JBoss Web Services] - Re: JBWS-1260 - such a part must refer to an element named a
by thomas.diesler@jboss.com
In that case a wsdl like this
| <types>
| <schema ...>
| <complexType name="paraListType">
| <sequence>
| <element name="username" type="string" nillable="true"/>
| <element name="password" type="string" nillable="true"/>
| <element name="operationName" type="string" nillable="true"/>
| <element name="inputXML" type="string" nillable="true"/>
| </sequence>
| </complexType>
| <complexType name="responseType">
| <sequence>
| <element name="result" type="string" nillable="true"/>
| </sequence>
| </complexType>
| <element name="paraList2" type="tns:paraListType"/>
| <element name="responseXML" type="tns:responseType"/>
| </schema>
| </types>
| <message name="attachRequest">
| <part name="parameters" element="ns2:paraList2"/>
| <part name="attachmentContents" type="xsd:string"/>
| </message>
| <message name="attachResponse">
| <part name="result" element="ns2:responseXML"/>
| </message>
| <portType name="TransmulatorInterface">
| <operation name="invokeAttach">
| <input message="tns:attachRequest"/>
| <output message="tns:attachResponse"/>
| </operation>
| </portType>
|
should work and the generated java method name should be paraList2 instead of invokeAttach.
AFAICS the requriment pertains only the the java realm and not to the abstract contract in wsdl.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4000885#4000885
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4000885
19 years, 2 months
[Design of JBoss Web Services] - Re: JBWS-1260 - such a part must refer to an element named a
by darran.lofthouse@jboss.com
BP only mentions a naming requirement for the wrappers for RPC, for document it just says that each operation must have a unique signature so that they can be identified.
It is the JAX-RPC spec and JAX-WS spec that specified requirements that must be met for an operation to be considered a wrapped operation.
>From JAX-RPC 6.4.1: -
anonymous wrote : In order to qualify as using the ?wrapper? style, an operation must fulfill the following
| conditions:
| ? its input and output messages (if present) must contain exactly one part;
| ? such a part must refer to an element named after the operation;
| ? such an element (a wrapper) must be of a complex type defined using the
| xsd:sequence compositor and containing only elements declarations.
>From JAX-WS 2.3.1.2 this is refined slightly: -
anonymous wrote : A WSDL operation qualifies for wrapper style mapping only if the following criteria are met:
| (i) The operation?s input and output messages (if present) each contain only a single part
| (ii) The input message part refers to a global element declaration whose localname is equal to the operation
| name
| (iii) The output message part refers to a global element declaration
| (iv) The elements referred to by the input and output message parts (henceforth referred to as wrapper
| elements) are both complex types defined using the xsd:sequence compositor
| (v) The wrapper elements only contain child elements, they must not contain other structures such as
| wildcards (element or attribute), xsd:choice, substitution groups (element references are not permitted)
| or attributes; furthermore, they must not be nillable.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4000882#4000882
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4000882
19 years, 2 months
[Design of JBoss Web Services] - doclit request message element name not equal to operation n
by thomas.diesler@jboss.com
I have
| <types>
| <schema ...>
| <complexType name="paraListType">
| <sequence>
| <element name="username" type="string" nillable="true"/>
| <element name="password" type="string" nillable="true"/>
| <element name="operationName" type="string" nillable="true"/>
| <element name="inputXML" type="string" nillable="true"/>
| </sequence>
| </complexType>
| <complexType name="responseType">
| <sequence>
| <element name="result" type="string" nillable="true"/>
| </sequence>
| </complexType>
| <element name="paraList2" type="tns:paraListType"/>
| <element name="responseXML" type="tns:responseType"/>
| </schema>
| </types>
| <message name="attachRequest">
| <part name="parameters" element="ns2:paraList2"/>
| <part name="attachmentContents" type="xsd:string"/>
| </message>
| <message name="attachResponse">
| <part name="result" element="ns2:responseXML"/>
| </message>
| <portType name="TransmulatorInterface">
| <operation name="invokeAttach">
| <input message="tns:attachRequest"/>
| <output message="tns:attachResponse"/>
| </operation>
| </portType>
|
When running tools I get
| Exception in thread "main" org.jboss.ws.WSException: Unable to unwrap parameters, wrapper element name must match operation name. operationName=invokeAttach elementName=paraList2
| at org.jboss.ws.tools.WSDLToJava.appendParameters(WSDLToJava.java:421)
| at org.jboss.ws.tools.WSDLToJava.appendDocParameters(WSDLToJava.java:387)
|
Do we have a reference to the relevant part in a spec?
Generally, we please document (read MUST) why we make assertions like this. A future version of the spec might invalidate the assertion.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4000809#4000809
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4000809
19 years, 2 months