You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ode.apache.org by "Milinda Lakmal Pathirage (JIRA)" <ji...@apache.org> on 2009/08/27 19:52:59 UTC

[jira] Commented: (ODE-656) ODE strips namespaces and namespace prefix in request

    [ https://issues.apache.org/jira/browse/ODE-656?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12748474#action_12748474 ] 

Milinda Lakmal Pathirage commented on ODE-656:
----------------------------------------------

When creating request for the external service, ODE wraps the RPC style request with a element which has name equals to the calling operation name. The namespace for this element is extracted using binding input(I'm not sure about this). But ODE couldn't detect the namesapces you are going to use in other parts of the message which was created by user. So the  best thing is to define those namespace prefixes in your elements using literal notation. For example, you can modify your copy operation like following:

 <bpel:copy>
                <bpel:from>
                    <bpel:literal xml:space="preserve"><Attributes xmlns:odens="urn://epages.de/WebService/OrderService/2009/01"  soapenc:arrayType="xs:string[]" type="odens:type_AttributeNames_In"></Attributes></bpel:literal>
                </bpel:from>
                <bpel:to part="Attributes" variable="OrderDetailPLRequest"></bpel:to>
            </bpel:copy>
          
Can you try this and let me know the result. 
I can check for a solution from ODE side. Can you please upload test BPEL and a service if you have. It'll help us to regenerate this situation. Also Axis2 doesn't fully support RPC literal and it's better you can use document lietral style web services. In that way you can get rid of ODE creating your wrapper element. Then you can create whole soap payload in BPEL.

> ODE strips namespaces and namespace prefix in request
> -----------------------------------------------------
>
>                 Key: ODE-656
>                 URL: https://issues.apache.org/jira/browse/ODE-656
>             Project: ODE
>          Issue Type: Bug
>          Components: BPEL Runtime
>    Affects Versions: 1.3.2
>         Environment: Eclipse BPEL Designer, ODE, ...
>            Reporter: Andreas Christiani
>
> Hi!
> It seems that ODE (or Axis?) is deleting namespace declarations and the according namespace prefixes from a variable that is initialized correctly (I gave my best at least). I tried a lot of things to heal this, but nothing worked. The called webservice throws a fault, because it cannot process the input correctly.
> This is the request coming from ODE:
> ######################################################################################
> <?xml version='1.0' encoding='UTF-8'?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
> <soapenv:Header>
> <addr:To xmlns:addr="http://www.w3.org/2005/08/addressing">http://localhost:8090/epages/OSCStore.soap</addr:To>
> <addr:Action xmlns:addr="http://www.w3.org/2005/08/addressing">urn://epages.de/WebService/OrderService/2009/01/getInfo</addr:Action>
> <addr:ReplyTo xmlns:addr="http://www.w3.org/2005/08/addressing">
>   <addr:Address>http://www.w3.org/2005/08/addressing/anonymous</addr:Address>
> </addr:ReplyTo>
> <addr:MessageID xmlns:addr="http://www.w3.org/2005/08/addressing">uuid:hqejbhcnphr4ji9g01nlk2</addr:MessageID>
> </soapenv:Header>
> <soapenv:Body>
> <odens:getInfo xmlns:odens="urn://epages.de/WebService/OrderService/2009/01">
> <Orders arrayType="xs:string[]" type="odens:type_GetInfo_In">
> 	<Path type="xs:string">EMPTY2</Path>
> </Orders>
> <Attributes arrayType="xs:string[]" type="odens:type_AttributeNames_In" />
> <AddressAttributes arrayType="xs:string[]" type="odens:type_AttributeNames_In" />
> <LineItemAttributes arrayType="xs:string[]" type="odens:type_AttributeNames_In" />
> <LanguageCodes arrayType="xs:string[]" type="odens:type_LanguageCodes_In" />
> </odens:getInfo>
> </soapenv:Body>
> </soapenv:Envelope>
> ######################################################################################
> It is initialized this way:
> ######################################################################################
> <bpel:assign validate="no" name="Assign">
>             <bpel:copy>
>                 <bpel:from>
>                     <bpel:literal xml:space="preserve"><Orders soapenc:arrayType="xs:string[]" type="odens:type_GetInfo_In">
> 	<Path type="xs:string">EMPTY2</Path>
> </Orders></bpel:literal>
>                 </bpel:from>
>                 <bpel:to part="Orders" variable="OrderDetailPLRequest"></bpel:to>
>             </bpel:copy>
>             <bpel:copy>
>                 <bpel:from>
>                     <bpel:literal xml:space="preserve"><Attributes soapenc:arrayType="xs:string[]" type="odens:type_AttributeNames_In"></Attributes></bpel:literal>
>                 </bpel:from>
>                 <bpel:to part="Attributes" variable="OrderDetailPLRequest"></bpel:to>
>             </bpel:copy>
>             <bpel:copy>
>                 <bpel:from>
>                     <bpel:literal xml:space="preserve"><AddressAttributes soapenc:arrayType="xs:string[]" type="odens:type_AttributeNames_In"></AddressAttributes></bpel:literal>
>                 </bpel:from>
>                 <bpel:to part="AddressAttributes" variable="OrderDetailPLRequest"></bpel:to>
>             </bpel:copy>
>             <bpel:copy>
>                 <bpel:from>
>                     <bpel:literal xml:space="preserve"><LineItemAttributes soapenc:arrayType="xs:string[]" type="odens:type_AttributeNames_In"></LineItemAttributes></bpel:literal>
>                 </bpel:from>
>                 <bpel:to part="LineItemAttributes" variable="OrderDetailPLRequest"></bpel:to>
>             </bpel:copy>
>             <bpel:copy>
>                 <bpel:from>
>                     <bpel:literal xml:space="preserve"><LanguageCodes soapenc:arrayType="xs:string[]" type="odens:type_LanguageCodes_In"></LanguageCodes></bpel:literal>
>                 </bpel:from>
>                 <bpel:to part="LanguageCodes" variable="OrderDetailPLRequest"></bpel:to>
>             </bpel:copy>
>         </bpel:assign>
> ######################################################################################
> This modified request works fine, when called from SoapUI:
> ######################################################################################
> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
> <soapenv:Header>
> 	<addr:To xmlns:addr="http://www.w3.org/2005/08/addressing">http://localhost:8090/epages/OSCStore.soap</addr:To>
> 	<addr:Action xmlns:addr="http://www.w3.org/2005/08/addressing">urn://epages.de/WebService/OrderService/2009/01/getInfo</addr:Action>
> 	<addr:ReplyTo xmlns:addr="http://www.w3.org/2005/08/addressing">
> 		<addr:Address>http://www.w3.org/2005/08/addressing/anonymous</addr:Address>
> 	</addr:ReplyTo>
> 	<addr:MessageID xmlns:addr="http://www.w3.org/2005/08/addressing">uuid:hqejbhcnphr4ji9g01nljq</addr:MessageID>
> </soapenv:Header>
> <soapenv:Body>
> 	<odens:getInfo 
> 		xmlns:odens="urn://epages.de/WebService/OrderService/2009/01"
> 		xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
> 		xmlns:xs="http://www.w3.org/2001/XMLSchema">
> 		<Orders soapenc:arrayType="xs:string[]" type="odens:type_GetInfo_In">
> 			<Path type="xs:string">EMPTY2</Path>
> 		</Orders>
> 		<Attributes soapenc:arrayType="xs:string[]" type="odens:type_AttributeNames_In" />
> 		<AddressAttributes soapenc:arrayType="xs:string[]" type="odens:type_AttributeNames_In" />
> 		<LineItemAttributes soapenc:arrayType="xs:string[]" type="odens:type_AttributeNames_In" />
> 		<LanguageCodes soapenc:arrayType="xs:string[]" type="odens:type_LanguageCodes_In" />
> 	</odens:getInfo>
> </soapenv:Body>
> </soapenv:Envelope>
> ######################################################################################
> On the service side it is only about the namspace prefix soapenc: and xs:.
> I don't have any idea how to declare the namespaces in a way that the according prefixes are preserved in the requests.
> Can anybody help me with this?
> Thanks in advance!
> Andreas

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.