OpenESB issues with XML-tags in SOAP-message

10 messages Options
Embed this post
Permalink
Frank Niedermann

OpenESB issues with XML-tags in SOAP-message

Reply Threaded More More options
Print post
Permalink
Hi,

our ERP system (BaaN) provides webservices which return data like this:

<suppliers>
  <supplier>
    <name>Sup1</name>
    <rating>AAA</rating>
  </supplier>
</suppliers>

If we use those webservices with soapUI we get the expected results.

But if we use those webservices with BPEL in OpenESB we get as result "Sup1".

Our guess is that OpenESB thinks the XML-tags in the SOAP-message don't belong to the SOAP-body so they are ignored. Is that true?

We tried to emulate those ERP webservices with a small webservice running on GlassFish that returns such XML-tags as the ERP does. Surprisingly the result is as follows:

&lt;suppliers&gt;&lt;name&gt;Sup1&lt;/name&gt;&lt;rating&gt;AAA&lt;/rating&gt;&lt;/supplier&gt;&lt;/suppliers&gt;


It seems that the webservice running in GlassFish encodes the XML-tags automatically.

The company supporting our ERP system told us that it's not possible to do this encoding on their side. Is this a misbehavior of OpenESB or is this how webservices are designed to work? (Then soapUI is wrong?)

And is there some workaround for this issue? Can we configure OpenESB/BPEL to use the result "as is", therefore ignoring XML-tags?

Thanks,
  Frank
SherryWeng

Re: OpenESB issues with XML-tags in SOAP-message

Reply Threaded More More options
Print post
Permalink
Maybe I don't quite understand the problem, but do you mean that the
BPEL webservice is not returning valid XML data in the SOAP body?  We do
have many many use cases that deal with doc/literal data, and I'm sure
we can handle XML payloads. If it's possible, could you attach the small
sample project you created?

Regards
--Sherry

Frank Niedermann wrote:

> Hi,
>
> our ERP system (BaaN) provides webservices which return data like this:
>
> <suppliers>
>   <supplier>
>     <name>Sup1</name>
>     <rating>AAA</rating>
>   </supplier>
> </suppliers>
>
> If we use those webservices with soapUI we get the expected results.
>
> But if we use those webservices with BPEL in OpenESB we get as result
> "Sup1".
>
> Our guess is that OpenESB thinks the XML-tags in the SOAP-message don't
> belong to the SOAP-body so they are ignored. Is that true?
>
> We tried to emulate those ERP webservices with a small webservice running on
> GlassFish that returns such XML-tags as the ERP does. Surprisingly the
> result is as follows:
>
> <suppliers><name>Sup1</name><rating>AAA</rating></supplier></suppliers>
>
> It seems that the webservice running in GlassFish encodes the XML-tags
> automatically.
>
> The company supporting our ERP system told us that it's not possible to do
> this encoding on their side. Is this a misbehavior of OpenESB or is this how
> webservices are designed to work? (Then soapUI is wrong?)
>
> And is there some workaround for this issue? Can we configure OpenESB/BPEL
> to use the result "as is", therefore ignoring XML-tags?
>
> Thanks,
>   Frank
>  

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Frank Niedermann

Re: OpenESB issues with XML-tags in SOAP-message

Reply Threaded More More options
Print post
Permalink
Hi Sherry,

I have attached an image to visualize the situation we have (ESB.jpg).



The problem is, that the WebService from our ERP (BaaN, on the left in the image) is creating XML as  result:
<suppliers><supplier><country>004</country></supplier></suppliers>


This result will then be placed into a SOAP envelope and sent to ESB. ESB/BPEL receives this SOAP envelope and extracts the contents. Unfortunately it only extracts 004 as content and ignores the rest of the XML.

Result we expect:
<suppliers><supplier><country>004</country>...

Result we get: 004

To test this issue I have created a EJB in NetBeans with a WebService and deployed it to GlassFish. This WebService also returns XML, here is the relevant part of the source code:

   @WebMethod(operationName = "listSuppliers")
    public String listSuppliers() {
        return "" +
                "<Suppliers><Country>004</Country><Currency>EUR</Currency><Language>3</Language</Suppliers>";
    }


Using this Dummy-WebService instead of the real WebService from our ERP we get the expected result:

<Suppliers><Country>004</Country>...


We then tested both WebServices (ERP and Dummy) with soapUI, both times we got the expected result (the XML string, not only 004). But looking at the SOAP messages in soapUI we still saw some differences:

ERP WebService with soapUI XML-view:

<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
   <S:Body>
      <listResponse xmlns="http://www.infor.com/boi_interface/Suppliers">
         <SuppliersList xmlns="">
            <Suppliers>
               <Country>004</Country>
               <Currency>EUR</Currency>
               <Language>3</Language>
            </Suppliers>
         </SuppliersList>
      </listResponse>
   </S:Body>
</S:Envelope>


ERP WebService with soapUI RAW-view:

HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Content-Type: text/xml;charset=utf-8
Transfer-Encoding: chunked
Date: Mon, 29 Jun 2009 11:53:59 GMT
<?xml version="1.0" ?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body>
<listResponse xmlns="http://www.infor.com/boi_interface/Suppliers">
<SuppliersList xmlns="">
<Suppliers>
<Country>004</Country>
<Currency>EUR</Currency>
<Language>  3</Language>
</Suppliers>
</SuppliersList>
</listResponse>
</S:Body>
</S:Envelope>


Dummy-WebService with soapUI XML-view:

<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
   <S:Body>
      <ns2:listSuppliersResponse xmlns:ns2="http://dummy/">
         <return><![CDATA[<Suppliers><Country>004</Country><Currency>EUR</Currency><Language>3</Language></Suppliers>]]></return>
      </ns2:listSuppliersResponse>
   </S:Body>
</S:Envelope>


Dummy-WebService with soapUI RAW-view:

HTTP/1.1 200 OK
X-Powered-By: Servlet/2.5
Server: Sun GlassFish Enterprise Server v2.1
Content-Type: text/xml;charset="utf-8"
Transfer-Encoding: chunked
Date: Mon, 29 Jun 2009 11:16:35 GMT
<?xml version="1.0" ?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body>
<ns2:listSuppliersResponse xmlns:ns2="http://dummy/">
<return>&lt;Suppliers&gt;&lt;Country&gt;004&lt;/Country&gt;&lt;Currency&gt;EUR&lt;/Currency&gt;&lt;Language&gt;3&lt;/Language&gt;&lt;/Suppliers&gt;</return>
</ns2:listSuppliersResponse>
</S:Body>
</S:Envelope>


So for us it looks like the Dummy-WebService in GlassFish sends XML-data encoded and ESB/BPEL is able to "extract" this XML-data out of the SOAP-envelope.

The WebService from our ERP (BaaN) on the other hand sends XML-data unencrypted and ESB/BPEL is unable to determine the real data from within this XML-data out of the SOAP-envelope.

soapUI is able to extract the XML-data in both ways: it's able to display the correct XML-data no matter if it's encoded in the SOAP-envelope or not.

Our question now is: Is this a problem on ESB/BPEL side? Or is this correct behavior and the ERP WebService from BaaN and soapUI are doing it wrong?

Or is there some configuration setting in OpenESB to solve this issue?

Sharon, was I able to explain the situation to you? I can provide the projects but I don't think that you'll see the behavior on your side because you would need the ERP WebService (BaaN).

But we can have a WebEx session if you want so you can have a look directly at our environment.

Thanks,
  Frank

SherryWeng wrote:
Maybe I don't quite understand the problem, but do you mean that the
BPEL webservice is not returning valid XML data in the SOAP body?  We do
have many many use cases that deal with doc/literal data, and I'm sure
we can handle XML payloads. If it's possible, could you attach the small
sample project you created?

Regards
--Sherry

Frank Niedermann wrote:
> Hi,
>
> our ERP system (BaaN) provides webservices which return data like this:
>
> <suppliers>
>   <supplier>
>     <name>Sup1</name>
>     <rating>AAA</rating>
>   </supplier>
> </suppliers>
>
> If we use those webservices with soapUI we get the expected results.
>
> But if we use those webservices with BPEL in OpenESB we get as result
> "Sup1".
>
> Our guess is that OpenESB thinks the XML-tags in the SOAP-message don't
> belong to the SOAP-body so they are ignored. Is that true?
>
> We tried to emulate those ERP webservices with a small webservice running on
> GlassFish that returns such XML-tags as the ERP does. Surprisingly the
> result is as follows:
>
> <suppliers><name>Sup1</name><rating>AAA</rating></supplier></suppliers>
>
> It seems that the webservice running in GlassFish encodes the XML-tags
> automatically.
>
> The company supporting our ERP system told us that it's not possible to do
> this encoding on their side. Is this a misbehavior of OpenESB or is this how
> webservices are designed to work? (Then soapUI is wrong?)
>
> And is there some workaround for this issue? Can we configure OpenESB/BPEL
> to use the result "as is", therefore ignoring XML-tags?
>
> Thanks,
>   Frank
>  

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@open-esb.dev.java.net
For additional commands, e-mail: users-help@open-esb.dev.java.net
Andreas Egloff

Re: OpenESB issues with XML-tags in SOAP-message

Reply Threaded More More options
Print post
Permalink
If you can supply the WSDLs and the way/place you are extracting the
data (XPath/BPEL) that will help. This can help us diagnose where there
might be a mismatch; having "plain" xml is the most common use case we
support, so that should not be the problem. Did you use different WSDL
for the two test cases, calling ERP vs. GlassFish? The payloads match
what I would expect to be different WSDLs.
Andi

Frank Niedermann wrote:

> Hi Sherry,
>
> I have attached an image to visualize the situation we have (ESB.jpg).
>
> http://n2.nabble.com/file/n3187855/ESB.jpg 
>
> The problem is, that the WebService from our ERP (BaaN, on the left in the
> image) is creating XML as  result:
> <suppliers><supplier><country>004</country></supplier></suppliers>
>
> This result will then be placed into a SOAP envelope and sent to ESB.
> ESB/BPEL receives this SOAP envelope and extracts the contents.
> Unfortunately it only extracts 004 as content and ignores the rest of the
> XML.
>
> Result we expect: <suppliers><supplier><country>004</country>...
> Result we get: 004
>
> To test this issue I have created a EJB in NetBeans with a WebService and
> deployed it to GlassFish. This WebService also returns XML, here is the
> relevant part of the source code:
>
>
>    @WebMethod(operationName = "listSuppliers")
>     public String listSuppliers() {
>         return "" +
>                
> "<Suppliers><Country>004</Country><Currency>EUR</Currency><Language>3</Language</Suppliers>";
>     }
>
>
> Using this Dummy-WebService instead of the real WebService from our ERP we
> get the expected result:
>
> <Suppliers><Country>004</Country>...
>
> We then tested both WebServices (ERP and Dummy) with soapUI, both times we
> got the expected result (the XML string, not only 004). But looking at the
> SOAP messages in soapUI we still saw some differences:
>
> ERP WebService with soapUI XML-view:
>
>
> <S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
>    <S:Body>
>       <listResponse xmlns="http://www.infor.com/boi_interface/Suppliers">
>          <SuppliersList xmlns="">
>             <Suppliers>
>                <Country>004</Country>
>                <Currency>EUR</Currency>
>                <Language>3</Language>
>             </Suppliers>
>          </SuppliersList>
>       </listResponse>
>    </S:Body>
> </S:Envelope>
>
>
> ERP WebService with soapUI RAW-view:
>
>
> HTTP/1.1 200 OK
> Server: Apache-Coyote/1.1
> Content-Type: text/xml;charset=utf-8
> Transfer-Encoding: chunked
> Date: Mon, 29 Jun 2009 11:53:59 GMT
> <?xml version="1.0" ?>
> <S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
> <S:Body>
> <listResponse xmlns="http://www.infor.com/boi_interface/Suppliers">
> <SuppliersList xmlns="">
> <Suppliers>
> <Country>004</Country>
> <Currency>EUR</Currency>
> <Language>  3</Language>
> </Suppliers>
> </SuppliersList>
> </listResponse>
> </S:Body>
> </S:Envelope>
>
>
> Dummy-WebService with soapUI XML-view:
>
>
> <S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
>    <S:Body>
>       <ns2:listSuppliersResponse xmlns:ns2="http://dummy/">
>        
> <return><![CDATA[<Suppliers><Country>004</Country><Currency>EUR</Currency><Language>3</Language></Suppliers>]]></return>
>       </ns2:listSuppliersResponse>
>    </S:Body>
> </S:Envelope>
>
>
> Dummy-WebService with soapUI RAW-view:
>
>
> HTTP/1.1 200 OK
> X-Powered-By: Servlet/2.5
> Server: Sun GlassFish Enterprise Server v2.1
> Content-Type: text/xml;charset="utf-8"
> Transfer-Encoding: chunked
> Date: Mon, 29 Jun 2009 11:16:35 GMT
> <?xml version="1.0" ?>
> <S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
> <S:Body>
> <ns2:listSuppliersResponse xmlns:ns2="http://dummy/">
> <return><Suppliers><Country>004</Country><Currency>EUR</Currency><Language>3</Language></Suppliers></return>
> </ns2:listSuppliersResponse>
> </S:Body>
> </S:Envelope>
>
>
> So for us it looks like the Dummy-WebService in GlassFish sends XML-data
> encoded and ESB/BPEL is able to "extract" this XML-data out of the
> SOAP-envelope.
>
> The WebService from our ERP (BaaN) on the other hand sends XML-data
> unencrypted and ESB/BPEL is unable to determine the real data from within
> this XML-data out of the SOAP-envelope.
>
> soapUI is able to extract the XML-data in both ways: it's able to display
> the correct XML-data no matter if it's encoded in the SOAP-envelope or not.
>
> Our question now is: Is this a problem on ESB/BPEL side? Or is this correct
> behavior and the ERP WebService from BaaN and soapUI are doing it wrong?
>
> Or is there some configuration setting in OpenESB to solve this issue?
>
> Sharon, was I able to explain the situation to you? I can provide the
> projects but I don't think that you'll see the behavior on your side because
> you would need the ERP WebService (BaaN).
>
> But we can have a WebEx session if you want so you can have a look directly
> at our environment.
>
> Thanks,
>   Frank
>
>
> SherryWeng wrote:
>  
>> Maybe I don't quite understand the problem, but do you mean that the
>> BPEL webservice is not returning valid XML data in the SOAP body?  We do
>> have many many use cases that deal with doc/literal data, and I'm sure
>> we can handle XML payloads. If it's possible, could you attach the small
>> sample project you created?
>>
>> Regards
>> --Sherry
>>
>> Frank Niedermann wrote:
>>    
>>> Hi,
>>>
>>> our ERP system (BaaN) provides webservices which return data like this:
>>>
>>> <suppliers>
>>>   <supplier>
>>>     <name>Sup1</name>
>>>     <rating>AAA</rating>
>>>   </supplier>
>>> </suppliers>
>>>
>>> If we use those webservices with soapUI we get the expected results.
>>>
>>> But if we use those webservices with BPEL in OpenESB we get as result
>>> "Sup1".
>>>
>>> Our guess is that OpenESB thinks the XML-tags in the SOAP-message don't
>>> belong to the SOAP-body so they are ignored. Is that true?
>>>
>>> We tried to emulate those ERP webservices with a small webservice running
>>> on
>>> GlassFish that returns such XML-tags as the ERP does. Surprisingly the
>>> result is as follows:
>>>
>>> <suppliers><name>Sup1</name><rating>AAA</rating></supplier></suppliers>
>>>
>>> It seems that the webservice running in GlassFish encodes the XML-tags
>>> automatically.
>>>
>>> The company supporting our ERP system told us that it's not possible to
>>> do
>>> this encoding on their side. Is this a misbehavior of OpenESB or is this
>>> how
>>> webservices are designed to work? (Then soapUI is wrong?)
>>>
>>> And is there some workaround for this issue? Can we configure
>>> OpenESB/BPEL
>>> to use the result "as is", therefore ignoring XML-tags?
>>>
>>> Thanks,
>>>   Frank
>>>  
>>>      
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [hidden email]
>> For additional commands, e-mail: [hidden email]
>>
>>
>>
>>    
>
>  


---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

SherryWeng

Re: OpenESB issues with XML-tags in SOAP-message

Reply Threaded More More options
Print post
Permalink
Yes, I agree with Andi 100%. From the image file, I see that you
eventually map/save the returned xml to JMS. Another thing you might
want to look into on your side is the mapping (in BPEL) of the xml data
to the payload in the JMS WSDL...
In any case, I'm open for a webex session after the holiday weekend if
necessary.

Regards
--Sherry

Andreas Egloff wrote:

> If you can supply the WSDLs and the way/place you are extracting the
> data (XPath/BPEL) that will help. This can help us diagnose where
> there might be a mismatch; having "plain" xml is the most common use
> case we support, so that should not be the problem. Did you use
> different WSDL for the two test cases, calling ERP vs. GlassFish? The
> payloads match what I would expect to be different WSDLs.
> Andi
>
> Frank Niedermann wrote:
>> Hi Sherry,
>>
>> I have attached an image to visualize the situation we have (ESB.jpg).
>>
>> http://n2.nabble.com/file/n3187855/ESB.jpg
>> The problem is, that the WebService from our ERP (BaaN, on the left
>> in the
>> image) is creating XML as  result:
>> <suppliers><supplier><country>004</country></supplier></suppliers>
>>
>> This result will then be placed into a SOAP envelope and sent to ESB.
>> ESB/BPEL receives this SOAP envelope and extracts the contents.
>> Unfortunately it only extracts 004 as content and ignores the rest of
>> the
>> XML.
>>
>> Result we expect: <suppliers><supplier><country>004</country>...
>> Result we get: 004
>>
>> To test this issue I have created a EJB in NetBeans with a WebService
>> and
>> deployed it to GlassFish. This WebService also returns XML, here is the
>> relevant part of the source code:
>>
>>
>>    @WebMethod(operationName = "listSuppliers")
>>     public String listSuppliers() {
>>         return "" +
>>                
>> "<Suppliers><Country>004</Country><Currency>EUR</Currency><Language>3</Language</Suppliers>";
>>
>>     }
>>
>>
>> Using this Dummy-WebService instead of the real WebService from our
>> ERP we
>> get the expected result:
>>
>> <Suppliers><Country>004</Country>...
>>
>> We then tested both WebServices (ERP and Dummy) with soapUI, both
>> times we
>> got the expected result (the XML string, not only 004). But looking
>> at the
>> SOAP messages in soapUI we still saw some differences:
>>
>> ERP WebService with soapUI XML-view:
>>
>>
>> <S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
>>    <S:Body>
>>       <listResponse
>> xmlns="http://www.infor.com/boi_interface/Suppliers">
>>          <SuppliersList xmlns="">
>>             <Suppliers>
>>                <Country>004</Country>
>>                <Currency>EUR</Currency>
>>                <Language>3</Language>
>>             </Suppliers>
>>          </SuppliersList>
>>       </listResponse>
>>    </S:Body>
>> </S:Envelope>
>>
>>
>> ERP WebService with soapUI RAW-view:
>>
>>
>> HTTP/1.1 200 OK
>> Server: Apache-Coyote/1.1
>> Content-Type: text/xml;charset=utf-8
>> Transfer-Encoding: chunked
>> Date: Mon, 29 Jun 2009 11:53:59 GMT
>> <?xml version="1.0" ?>
>> <S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
>> <S:Body>
>> <listResponse xmlns="http://www.infor.com/boi_interface/Suppliers">
>> <SuppliersList xmlns="">
>> <Suppliers>
>> <Country>004</Country>
>> <Currency>EUR</Currency>
>> <Language>  3</Language>
>> </Suppliers>
>> </SuppliersList>
>> </listResponse>
>> </S:Body>
>> </S:Envelope>
>>
>>
>> Dummy-WebService with soapUI XML-view:
>>
>>
>> <S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
>>    <S:Body>
>>       <ns2:listSuppliersResponse xmlns:ns2="http://dummy/">
>>        
>> <return><![CDATA[<Suppliers><Country>004</Country><Currency>EUR</Currency><Language>3</Language></Suppliers>]]></return>
>>
>>       </ns2:listSuppliersResponse>
>>    </S:Body>
>> </S:Envelope>
>>
>>
>> Dummy-WebService with soapUI RAW-view:
>>
>>
>> HTTP/1.1 200 OK
>> X-Powered-By: Servlet/2.5
>> Server: Sun GlassFish Enterprise Server v2.1
>> Content-Type: text/xml;charset="utf-8"
>> Transfer-Encoding: chunked
>> Date: Mon, 29 Jun 2009 11:16:35 GMT
>> <?xml version="1.0" ?>
>> <S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
>> <S:Body>
>> <ns2:listSuppliersResponse xmlns:ns2="http://dummy/">
>> <return><Suppliers><Country>004</Country><Currency>EUR</Currency><Language>3</Language></Suppliers></return>
>>
>> </ns2:listSuppliersResponse>
>> </S:Body>
>> </S:Envelope>
>>
>>
>> So for us it looks like the Dummy-WebService in GlassFish sends XML-data
>> encoded and ESB/BPEL is able to "extract" this XML-data out of the
>> SOAP-envelope.
>>
>> The WebService from our ERP (BaaN) on the other hand sends XML-data
>> unencrypted and ESB/BPEL is unable to determine the real data from
>> within
>> this XML-data out of the SOAP-envelope.
>>
>> soapUI is able to extract the XML-data in both ways: it's able to
>> display
>> the correct XML-data no matter if it's encoded in the SOAP-envelope
>> or not.
>>
>> Our question now is: Is this a problem on ESB/BPEL side? Or is this
>> correct
>> behavior and the ERP WebService from BaaN and soapUI are doing it wrong?
>>
>> Or is there some configuration setting in OpenESB to solve this issue?
>>
>> Sharon, was I able to explain the situation to you? I can provide the
>> projects but I don't think that you'll see the behavior on your side
>> because
>> you would need the ERP WebService (BaaN).
>>
>> But we can have a WebEx session if you want so you can have a look
>> directly
>> at our environment.
>>
>> Thanks,
>>   Frank
>>
>>
>> SherryWeng wrote:
>>  
>>> Maybe I don't quite understand the problem, but do you mean that the
>>> BPEL webservice is not returning valid XML data in the SOAP body?  
>>> We do have many many use cases that deal with doc/literal data, and
>>> I'm sure we can handle XML payloads. If it's possible, could you
>>> attach the small sample project you created?
>>>
>>> Regards
>>> --Sherry
>>>
>>> Frank Niedermann wrote:
>>>    
>>>> Hi,
>>>>
>>>> our ERP system (BaaN) provides webservices which return data like
>>>> this:
>>>>
>>>> <suppliers>
>>>>   <supplier>
>>>>     <name>Sup1</name>
>>>>     <rating>AAA</rating>
>>>>   </supplier>
>>>> </suppliers>
>>>>
>>>> If we use those webservices with soapUI we get the expected results.
>>>>
>>>> But if we use those webservices with BPEL in OpenESB we get as result
>>>> "Sup1".
>>>>
>>>> Our guess is that OpenESB thinks the XML-tags in the SOAP-message
>>>> don't
>>>> belong to the SOAP-body so they are ignored. Is that true?
>>>>
>>>> We tried to emulate those ERP webservices with a small webservice
>>>> running
>>>> on
>>>> GlassFish that returns such XML-tags as the ERP does. Surprisingly the
>>>> result is as follows:
>>>>
>>>> <suppliers><name>Sup1</name><rating>AAA</rating></supplier></suppliers>
>>>>
>>>>
>>>> It seems that the webservice running in GlassFish encodes the XML-tags
>>>> automatically.
>>>>
>>>> The company supporting our ERP system told us that it's not
>>>> possible to
>>>> do
>>>> this encoding on their side. Is this a misbehavior of OpenESB or is
>>>> this
>>>> how
>>>> webservices are designed to work? (Then soapUI is wrong?)
>>>>
>>>> And is there some workaround for this issue? Can we configure
>>>> OpenESB/BPEL
>>>> to use the result "as is", therefore ignoring XML-tags?
>>>>
>>>> Thanks,
>>>>   Frank
>>>>        
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: [hidden email]
>>> For additional commands, e-mail: [hidden email]
>>>
>>>
>>>
>>>    
>>
>>  
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [hidden email]
> For additional commands, e-mail: [hidden email]
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Frank Niedermann

Re: OpenESB issues with XML-tags in SOAP-message

Reply Threaded More More options
Print post
Permalink
In reply to this post by Andreas Egloff
Hi,

WSDL-ERP.xml
WSDL-Dummy.xml

WSDL-ERP.xml (the WebService from our ERP system BaaN) and
WSDL-Dummy.xml (the Dummy-WebService I have created) are attached now.

I've also uploaded the two NetBeans-Projects.
NetBeanProjects.zip

One difference in BPEL I see is that the ERP WebService provides more than one return attribute, in BPEL mapping I select the top to get all attributes. I did not simulate this in my dummy WebService, this one is only returning one attribute. Screenshots of that mapping is attached.

mapping-ERP.jpg
mappign-Dummy.jpg

Could that mapping be the issue? Do I have to select every single attribute and concat them in BPEL? But I would not know how to create the XML structure then? I would rather forward the return from ERP WebService into JMS as it comes ...

Thanks,
  Frank

Andreas Egloff wrote:
If you can supply the WSDLs and the way/place you are extracting the
data (XPath/BPEL) that will help. This can help us diagnose where there
might be a mismatch; having "plain" xml is the most common use case we
support, so that should not be the problem. Did you use different WSDL
for the two test cases, calling ERP vs. GlassFish? The payloads match
what I would expect to be different WSDLs.
Andi

Frank Niedermann wrote:
> Hi Sherry,
>
> I have attached an image to visualize the situation we have (ESB.jpg).
>
> http://n2.nabble.com/file/n3187855/ESB.jpg 
>
> The problem is, that the WebService from our ERP (BaaN, on the left in the
> image) is creating XML as  result:
> <suppliers><supplier><country>004</country></supplier></suppliers>
>
> This result will then be placed into a SOAP envelope and sent to ESB.
> ESB/BPEL receives this SOAP envelope and extracts the contents.
> Unfortunately it only extracts 004 as content and ignores the rest of the
> XML.
>
> Result we expect: <suppliers><supplier><country>004</country>...
> Result we get: 004
>
> To test this issue I have created a EJB in NetBeans with a WebService and
> deployed it to GlassFish. This WebService also returns XML, here is the
> relevant part of the source code:
>
>
>    @WebMethod(operationName = "listSuppliers")
>     public String listSuppliers() {
>         return "" +
>                
> "<Suppliers><Country>004</Country><Currency>EUR</Currency><Language>3</Language</Suppliers>";
>     }
>
>
> Using this Dummy-WebService instead of the real WebService from our ERP we
> get the expected result:
>
> <Suppliers><Country>004</Country>...
>
> We then tested both WebServices (ERP and Dummy) with soapUI, both times we
> got the expected result (the XML string, not only 004). But looking at the
> SOAP messages in soapUI we still saw some differences:
>
> ERP WebService with soapUI XML-view:
>
>
> <S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
>    <S:Body>
>       <listResponse xmlns="http://www.infor.com/boi_interface/Suppliers">
>          <SuppliersList xmlns="">
>             <Suppliers>
>                <Country>004</Country>
>                <Currency>EUR</Currency>
>                <Language>3</Language>
>             </Suppliers>
>          </SuppliersList>
>       </listResponse>
>    </S:Body>
> </S:Envelope>
>
>
> ERP WebService with soapUI RAW-view:
>
>
> HTTP/1.1 200 OK
> Server: Apache-Coyote/1.1
> Content-Type: text/xml;charset=utf-8
> Transfer-Encoding: chunked
> Date: Mon, 29 Jun 2009 11:53:59 GMT
> <?xml version="1.0" ?>
> <S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
> <S:Body>
> <listResponse xmlns="http://www.infor.com/boi_interface/Suppliers">
> <SuppliersList xmlns="">
> <Suppliers>
> <Country>004</Country>
> <Currency>EUR</Currency>
> <Language>  3</Language>
> </Suppliers>
> </SuppliersList>
> </listResponse>
> </S:Body>
> </S:Envelope>
>
>
> Dummy-WebService with soapUI XML-view:
>
>
> <S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
>    <S:Body>
>       <ns2:listSuppliersResponse xmlns:ns2="http://dummy/">
>        
> <return><![CDATA[<Suppliers><Country>004</Country><Currency>EUR</Currency><Language>3</Language></Suppliers>]]></return>
>       </ns2:listSuppliersResponse>
>    </S:Body>
> </S:Envelope>
>
>
> Dummy-WebService with soapUI RAW-view:
>
>
> HTTP/1.1 200 OK
> X-Powered-By: Servlet/2.5
> Server: Sun GlassFish Enterprise Server v2.1
> Content-Type: text/xml;charset="utf-8"
> Transfer-Encoding: chunked
> Date: Mon, 29 Jun 2009 11:16:35 GMT
> <?xml version="1.0" ?>
> <S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
> <S:Body>
> <ns2:listSuppliersResponse xmlns:ns2="http://dummy/">
> <return><Suppliers><Country>004</Country><Currency>EUR</Currency><Language>3</Language></Suppliers></return>
> </ns2:listSuppliersResponse>
> </S:Body>
> </S:Envelope>
>
>
> So for us it looks like the Dummy-WebService in GlassFish sends XML-data
> encoded and ESB/BPEL is able to "extract" this XML-data out of the
> SOAP-envelope.
>
> The WebService from our ERP (BaaN) on the other hand sends XML-data
> unencrypted and ESB/BPEL is unable to determine the real data from within
> this XML-data out of the SOAP-envelope.
>
> soapUI is able to extract the XML-data in both ways: it's able to display
> the correct XML-data no matter if it's encoded in the SOAP-envelope or not.
>
> Our question now is: Is this a problem on ESB/BPEL side? Or is this correct
> behavior and the ERP WebService from BaaN and soapUI are doing it wrong?
>
> Or is there some configuration setting in OpenESB to solve this issue?
>
> Sharon, was I able to explain the situation to you? I can provide the
> projects but I don't think that you'll see the behavior on your side because
> you would need the ERP WebService (BaaN).
>
> But we can have a WebEx session if you want so you can have a look directly
> at our environment.
>
> Thanks,
>   Frank
>
>
> SherryWeng wrote:
>  
>> Maybe I don't quite understand the problem, but do you mean that the
>> BPEL webservice is not returning valid XML data in the SOAP body?  We do
>> have many many use cases that deal with doc/literal data, and I'm sure
>> we can handle XML payloads. If it's possible, could you attach the small
>> sample project you created?
>>
>> Regards
>> --Sherry
>>
>> Frank Niedermann wrote:
>>    
>>> Hi,
>>>
>>> our ERP system (BaaN) provides webservices which return data like this:
>>>
>>> <suppliers>
>>>   <supplier>
>>>     <name>Sup1</name>
>>>     <rating>AAA</rating>
>>>   </supplier>
>>> </suppliers>
>>>
>>> If we use those webservices with soapUI we get the expected results.
>>>
>>> But if we use those webservices with BPEL in OpenESB we get as result
>>> "Sup1".
>>>
>>> Our guess is that OpenESB thinks the XML-tags in the SOAP-message don't
>>> belong to the SOAP-body so they are ignored. Is that true?
>>>
>>> We tried to emulate those ERP webservices with a small webservice running
>>> on
>>> GlassFish that returns such XML-tags as the ERP does. Surprisingly the
>>> result is as follows:
>>>
>>> <suppliers><name>Sup1</name><rating>AAA</rating></supplier></suppliers>
>>>
>>> It seems that the webservice running in GlassFish encodes the XML-tags
>>> automatically.
>>>
>>> The company supporting our ERP system told us that it's not possible to
>>> do
>>> this encoding on their side. Is this a misbehavior of OpenESB or is this
>>> how
>>> webservices are designed to work? (Then soapUI is wrong?)
>>>
>>> And is there some workaround for this issue? Can we configure
>>> OpenESB/BPEL
>>> to use the result "as is", therefore ignoring XML-tags?
>>>
>>> Thanks,
>>>   Frank
>>>  
>>>      
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@open-esb.dev.java.net
>> For additional commands, e-mail: users-help@open-esb.dev.java.net
>>
>>
>>
>>    
>
>  


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@open-esb.dev.java.net
For additional commands, e-mail: users-help@open-esb.dev.java.net
Frank Niedermann

Re: OpenESB issues with XML-tags in SOAP-message

Reply Threaded More More options
Print post
Permalink
In reply to this post by Andreas Egloff
Hi,

WSDL-ERP.xml
WSDL-Dummy.xml

WSDL-ERP.xml (the WebService from our ERP system BaaN) and
WSDL-Dummy.xml (the Dummy-WebService I have created) are attached now.

I've also uploaded the two NetBeans-Projects.
NetBeanProjects.zip

One difference in BPEL I see is that the ERP WebService provides more than one return attribute, in BPEL mapping I select the top to get all attributes. I did not simulate this in my dummy WebService, this one is only returning one attribute. Screenshots of that mapping is attached.

mapping-ERP.jpg
mappign-Dummy.jpg

Could that mapping be the issue? Do I have to select every single attribute and concat them in BPEL? But I would not know how to create the XML structure then? I would rather forward the return from ERP WebService into JMS as it comes ...

Thanks,
  Frank

Andreas Egloff wrote:
If you can supply the WSDLs and the way/place you are extracting the
data (XPath/BPEL) that will help. This can help us diagnose where there
might be a mismatch; having "plain" xml is the most common use case we
support, so that should not be the problem. Did you use different WSDL
for the two test cases, calling ERP vs. GlassFish? The payloads match
what I would expect to be different WSDLs.
Andi

Frank Niedermann wrote:
> Hi Sherry,
>
> I have attached an image to visualize the situation we have (ESB.jpg).
>
> http://n2.nabble.com/file/n3187855/ESB.jpg 
>
> The problem is, that the WebService from our ERP (BaaN, on the left in the
> image) is creating XML as  result:
> <suppliers><supplier><country>004</country></supplier></suppliers>
>
> This result will then be placed into a SOAP envelope and sent to ESB.
> ESB/BPEL receives this SOAP envelope and extracts the contents.
> Unfortunately it only extracts 004 as content and ignores the rest of the
> XML.
>
> Result we expect: <suppliers><supplier><country>004</country>...
> Result we get: 004
>
> To test this issue I have created a EJB in NetBeans with a WebService and
> deployed it to GlassFish. This WebService also returns XML, here is the
> relevant part of the source code:
>
>
>    @WebMethod(operationName = "listSuppliers")
>     public String listSuppliers() {
>         return "" +
>                
> "<Suppliers><Country>004</Country><Currency>EUR</Currency><Language>3</Language</Suppliers>";
>     }
>
>
> Using this Dummy-WebService instead of the real WebService from our ERP we
> get the expected result:
>
> <Suppliers><Country>004</Country>...
>
> We then tested both WebServices (ERP and Dummy) with soapUI, both times we
> got the expected result (the XML string, not only 004). But looking at the
> SOAP messages in soapUI we still saw some differences:
>
> ERP WebService with soapUI XML-view:
>
>
> <S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
>    <S:Body>
>       <listResponse xmlns="http://www.infor.com/boi_interface/Suppliers">
>          <SuppliersList xmlns="">
>             <Suppliers>
>                <Country>004</Country>
>                <Currency>EUR</Currency>
>                <Language>3</Language>
>             </Suppliers>
>          </SuppliersList>
>       </listResponse>
>    </S:Body>
> </S:Envelope>
>
>
> ERP WebService with soapUI RAW-view:
>
>
> HTTP/1.1 200 OK
> Server: Apache-Coyote/1.1
> Content-Type: text/xml;charset=utf-8
> Transfer-Encoding: chunked
> Date: Mon, 29 Jun 2009 11:53:59 GMT
> <?xml version="1.0" ?>
> <S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
> <S:Body>
> <listResponse xmlns="http://www.infor.com/boi_interface/Suppliers">
> <SuppliersList xmlns="">
> <Suppliers>
> <Country>004</Country>
> <Currency>EUR</Currency>
> <Language>  3</Language>
> </Suppliers>
> </SuppliersList>
> </listResponse>
> </S:Body>
> </S:Envelope>
>
>
> Dummy-WebService with soapUI XML-view:
>
>
> <S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
>    <S:Body>
>       <ns2:listSuppliersResponse xmlns:ns2="http://dummy/">
>        
> <return><![CDATA[<Suppliers><Country>004</Country><Currency>EUR</Currency><Language>3</Language></Suppliers>]]></return>
>       </ns2:listSuppliersResponse>
>    </S:Body>
> </S:Envelope>
>
>
> Dummy-WebService with soapUI RAW-view:
>
>
> HTTP/1.1 200 OK
> X-Powered-By: Servlet/2.5
> Server: Sun GlassFish Enterprise Server v2.1
> Content-Type: text/xml;charset="utf-8"
> Transfer-Encoding: chunked
> Date: Mon, 29 Jun 2009 11:16:35 GMT
> <?xml version="1.0" ?>
> <S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
> <S:Body>
> <ns2:listSuppliersResponse xmlns:ns2="http://dummy/">
> <return><Suppliers><Country>004</Country><Currency>EUR</Currency><Language>3</Language></Suppliers></return>
> </ns2:listSuppliersResponse>
> </S:Body>
> </S:Envelope>
>
>
> So for us it looks like the Dummy-WebService in GlassFish sends XML-data
> encoded and ESB/BPEL is able to "extract" this XML-data out of the
> SOAP-envelope.
>
> The WebService from our ERP (BaaN) on the other hand sends XML-data
> unencrypted and ESB/BPEL is unable to determine the real data from within
> this XML-data out of the SOAP-envelope.
>
> soapUI is able to extract the XML-data in both ways: it's able to display
> the correct XML-data no matter if it's encoded in the SOAP-envelope or not.
>
> Our question now is: Is this a problem on ESB/BPEL side? Or is this correct
> behavior and the ERP WebService from BaaN and soapUI are doing it wrong?
>
> Or is there some configuration setting in OpenESB to solve this issue?
>
> Sharon, was I able to explain the situation to you? I can provide the
> projects but I don't think that you'll see the behavior on your side because
> you would need the ERP WebService (BaaN).
>
> But we can have a WebEx session if you want so you can have a look directly
> at our environment.
>
> Thanks,
>   Frank
>
>
> SherryWeng wrote:
>  
>> Maybe I don't quite understand the problem, but do you mean that the
>> BPEL webservice is not returning valid XML data in the SOAP body?  We do
>> have many many use cases that deal with doc/literal data, and I'm sure
>> we can handle XML payloads. If it's possible, could you attach the small
>> sample project you created?
>>
>> Regards
>> --Sherry
>>
>> Frank Niedermann wrote:
>>    
>>> Hi,
>>>
>>> our ERP system (BaaN) provides webservices which return data like this:
>>>
>>> <suppliers>
>>>   <supplier>
>>>     <name>Sup1</name>
>>>     <rating>AAA</rating>
>>>   </supplier>
>>> </suppliers>
>>>
>>> If we use those webservices with soapUI we get the expected results.
>>>
>>> But if we use those webservices with BPEL in OpenESB we get as result
>>> "Sup1".
>>>
>>> Our guess is that OpenESB thinks the XML-tags in the SOAP-message don't
>>> belong to the SOAP-body so they are ignored. Is that true?
>>>
>>> We tried to emulate those ERP webservices with a small webservice running
>>> on
>>> GlassFish that returns such XML-tags as the ERP does. Surprisingly the
>>> result is as follows:
>>>
>>> <suppliers><name>Sup1</name><rating>AAA</rating></supplier></suppliers>
>>>
>>> It seems that the webservice running in GlassFish encodes the XML-tags
>>> automatically.
>>>
>>> The company supporting our ERP system told us that it's not possible to
>>> do
>>> this encoding on their side. Is this a misbehavior of OpenESB or is this
>>> how
>>> webservices are designed to work? (Then soapUI is wrong?)
>>>
>>> And is there some workaround for this issue? Can we configure
>>> OpenESB/BPEL
>>> to use the result "as is", therefore ignoring XML-tags?
>>>
>>> Thanks,
>>>   Frank
>>>  
>>>      
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@open-esb.dev.java.net
>> For additional commands, e-mail: users-help@open-esb.dev.java.net
>>
>>
>>
>>    
>
>  


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@open-esb.dev.java.net
For additional commands, e-mail: users-help@open-esb.dev.java.net
Frank Niedermann

Re: OpenESB issues with XML-tags in SOAP-message

Reply Threaded More More options
Print post
Permalink
In reply to this post by Andreas Egloff
Hi,

WSDL-ERP.xml (the WebService from our ERP system BaaN) and
WSDL-Dummy.xml (the Dummy-WebService I have created) are attached now.

WSDL-ERP.xml
WSDL-Dummy.xml

I've also uploaded the two NetBeans-Projects.
NetBeanProjects.zip

One difference in BPEL I see is that the ERP WebService provides more than one return attribute, in BPEL mapping I select the top to get all attributes. I did not simulate this in my dummy WebService, this one is only returning one attribute. Screenshots of that mapping is attached.

mapping-ERP.jpg
mappign-Dummy.jpg

Could that mapping be the issue? Do I have to select every single attribute and concat them in BPEL? But I would not know how to create the XML structure then? I would rather forward the return from ERP WebService into JMS as it comes ...

Thanks,
  Frank

Andreas Egloff wrote:
If you can supply the WSDLs and the way/place you are extracting the
data (XPath/BPEL) that will help. This can help us diagnose where there
might be a mismatch; having "plain" xml is the most common use case we
support, so that should not be the problem. Did you use different WSDL
for the two test cases, calling ERP vs. GlassFish? The payloads match
what I would expect to be different WSDLs.
Andi

Frank Niedermann wrote:
> Hi Sherry,
>
> I have attached an image to visualize the situation we have (ESB.jpg).
>
> http://n2.nabble.com/file/n3187855/ESB.jpg 
>
> The problem is, that the WebService from our ERP (BaaN, on the left in the
> image) is creating XML as  result:
> <suppliers><supplier><country>004</country></supplier></suppliers>
>
> This result will then be placed into a SOAP envelope and sent to ESB.
> ESB/BPEL receives this SOAP envelope and extracts the contents.
> Unfortunately it only extracts 004 as content and ignores the rest of the
> XML.
>
> Result we expect: <suppliers><supplier><country>004</country>...
> Result we get: 004
>
> To test this issue I have created a EJB in NetBeans with a WebService and
> deployed it to GlassFish. This WebService also returns XML, here is the
> relevant part of the source code:
>
>
>    @WebMethod(operationName = "listSuppliers")
>     public String listSuppliers() {
>         return "" +
>                
> "<Suppliers><Country>004</Country><Currency>EUR</Currency><Language>3</Language</Suppliers>";
>     }
>
>
> Using this Dummy-WebService instead of the real WebService from our ERP we
> get the expected result:
>
> <Suppliers><Country>004</Country>...
>
> We then tested both WebServices (ERP and Dummy) with soapUI, both times we
> got the expected result (the XML string, not only 004). But looking at the
> SOAP messages in soapUI we still saw some differences:
>
> ERP WebService with soapUI XML-view:
>
>
> <S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
>    <S:Body>
>       <listResponse xmlns="http://www.infor.com/boi_interface/Suppliers">
>          <SuppliersList xmlns="">
>             <Suppliers>
>                <Country>004</Country>
>                <Currency>EUR</Currency>
>                <Language>3</Language>
>             </Suppliers>
>          </SuppliersList>
>       </listResponse>
>    </S:Body>
> </S:Envelope>
>
>
> ERP WebService with soapUI RAW-view:
>
>
> HTTP/1.1 200 OK
> Server: Apache-Coyote/1.1
> Content-Type: text/xml;charset=utf-8
> Transfer-Encoding: chunked
> Date: Mon, 29 Jun 2009 11:53:59 GMT
> <?xml version="1.0" ?>
> <S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
> <S:Body>
> <listResponse xmlns="http://www.infor.com/boi_interface/Suppliers">
> <SuppliersList xmlns="">
> <Suppliers>
> <Country>004</Country>
> <Currency>EUR</Currency>
> <Language>  3</Language>
> </Suppliers>
> </SuppliersList>
> </listResponse>
> </S:Body>
> </S:Envelope>
>
>
> Dummy-WebService with soapUI XML-view:
>
>
> <S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
>    <S:Body>
>       <ns2:listSuppliersResponse xmlns:ns2="http://dummy/">
>        
> <return><![CDATA[<Suppliers><Country>004</Country><Currency>EUR</Currency><Language>3</Language></Suppliers>]]></return>
>       </ns2:listSuppliersResponse>
>    </S:Body>
> </S:Envelope>
>
>
> Dummy-WebService with soapUI RAW-view:
>
>
> HTTP/1.1 200 OK
> X-Powered-By: Servlet/2.5
> Server: Sun GlassFish Enterprise Server v2.1
> Content-Type: text/xml;charset="utf-8"
> Transfer-Encoding: chunked
> Date: Mon, 29 Jun 2009 11:16:35 GMT
> <?xml version="1.0" ?>
> <S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
> <S:Body>
> <ns2:listSuppliersResponse xmlns:ns2="http://dummy/">
> <return><Suppliers><Country>004</Country><Currency>EUR</Currency><Language>3</Language></Suppliers></return>
> </ns2:listSuppliersResponse>
> </S:Body>
> </S:Envelope>
>
>
> So for us it looks like the Dummy-WebService in GlassFish sends XML-data
> encoded and ESB/BPEL is able to "extract" this XML-data out of the
> SOAP-envelope.
>
> The WebService from our ERP (BaaN) on the other hand sends XML-data
> unencrypted and ESB/BPEL is unable to determine the real data from within
> this XML-data out of the SOAP-envelope.
>
> soapUI is able to extract the XML-data in both ways: it's able to display
> the correct XML-data no matter if it's encoded in the SOAP-envelope or not.
>
> Our question now is: Is this a problem on ESB/BPEL side? Or is this correct
> behavior and the ERP WebService from BaaN and soapUI are doing it wrong?
>
> Or is there some configuration setting in OpenESB to solve this issue?
>
> Sharon, was I able to explain the situation to you? I can provide the
> projects but I don't think that you'll see the behavior on your side because
> you would need the ERP WebService (BaaN).
>
> But we can have a WebEx session if you want so you can have a look directly
> at our environment.
>
> Thanks,
>   Frank
>
>
> SherryWeng wrote:
>  
>> Maybe I don't quite understand the problem, but do you mean that the
>> BPEL webservice is not returning valid XML data in the SOAP body?  We do
>> have many many use cases that deal with doc/literal data, and I'm sure
>> we can handle XML payloads. If it's possible, could you attach the small
>> sample project you created?
>>
>> Regards
>> --Sherry
>>
>> Frank Niedermann wrote:
>>    
>>> Hi,
>>>
>>> our ERP system (BaaN) provides webservices which return data like this:
>>>
>>> <suppliers>
>>>   <supplier>
>>>     <name>Sup1</name>
>>>     <rating>AAA</rating>
>>>   </supplier>
>>> </suppliers>
>>>
>>> If we use those webservices with soapUI we get the expected results.
>>>
>>> But if we use those webservices with BPEL in OpenESB we get as result
>>> "Sup1".
>>>
>>> Our guess is that OpenESB thinks the XML-tags in the SOAP-message don't
>>> belong to the SOAP-body so they are ignored. Is that true?
>>>
>>> We tried to emulate those ERP webservices with a small webservice running
>>> on
>>> GlassFish that returns such XML-tags as the ERP does. Surprisingly the
>>> result is as follows:
>>>
>>> <suppliers><name>Sup1</name><rating>AAA</rating></supplier></suppliers>
>>>
>>> It seems that the webservice running in GlassFish encodes the XML-tags
>>> automatically.
>>>
>>> The company supporting our ERP system told us that it's not possible to
>>> do
>>> this encoding on their side. Is this a misbehavior of OpenESB or is this
>>> how
>>> webservices are designed to work? (Then soapUI is wrong?)
>>>
>>> And is there some workaround for this issue? Can we configure
>>> OpenESB/BPEL
>>> to use the result "as is", therefore ignoring XML-tags?
>>>
>>> Thanks,
>>>   Frank
>>>  
>>>      
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@open-esb.dev.java.net
>> For additional commands, e-mail: users-help@open-esb.dev.java.net
>>
>>
>>
>>    
>
>  


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@open-esb.dev.java.net
For additional commands, e-mail: users-help@open-esb.dev.java.net
Andreas Egloff

Re: OpenESB issues with XML-tags in SOAP-message

Reply Threaded More More options
Print post
Permalink
 From a quick look at your WSDL I didn't notice an issue; I'll have to
ask Sherry and crew to take a closer look at what's going on.
Andi

Frank Niedermann wrote:

> Hi,
>
> http://n2.nabble.com/file/n3193796/WSDL-ERP.xml WSDL-ERP.xml
> http://n2.nabble.com/file/n3193796/WSDL-Dummy.xml WSDL-Dummy.xml
>
> WSDL-ERP.xml (the WebService from our ERP system BaaN) and
> WSDL-Dummy.xml (the Dummy-WebService I have created) are attached now.
>
> I've also uploaded the two NetBeans-Projects.
> http://n2.nabble.com/file/n3193796/NetBeanProjects.zip NetBeanProjects.zip
>
> One difference in BPEL I see is that the ERP WebService provides more than
> one return attribute, in BPEL mapping I select the top to get all
> attributes. I did not simulate this in my dummy WebService, this one is only
> returning one attribute. Screenshots of that mapping is attached.
>
> http://n2.nabble.com/file/n3193796/mapping-ERP.jpg mapping-ERP.jpg
> http://n2.nabble.com/file/n3193796/mappign-Dummy.jpg mappign-Dummy.jpg
>
> Could that mapping be the issue? Do I have to select every single attribute
> and concat them in BPEL? But I would not know how to create the XML
> structure then? I would rather forward the return from ERP WebService into
> JMS as it comes ...
>
> Thanks,
>   Frank
>
>
> Andreas Egloff wrote:
>  
>> If you can supply the WSDLs and the way/place you are extracting the
>> data (XPath/BPEL) that will help. This can help us diagnose where there
>> might be a mismatch; having "plain" xml is the most common use case we
>> support, so that should not be the problem. Did you use different WSDL
>> for the two test cases, calling ERP vs. GlassFish? The payloads match
>> what I would expect to be different WSDLs.
>> Andi
>>
>> Frank Niedermann wrote:
>>    
>>> Hi Sherry,
>>>
>>> I have attached an image to visualize the situation we have (ESB.jpg).
>>>
>>> http://n2.nabble.com/file/n3187855/ESB.jpg 
>>>
>>> The problem is, that the WebService from our ERP (BaaN, on the left in
>>> the
>>> image) is creating XML as  result:
>>> <suppliers><supplier><country>004</country></supplier></suppliers>
>>>
>>> This result will then be placed into a SOAP envelope and sent to ESB.
>>> ESB/BPEL receives this SOAP envelope and extracts the contents.
>>> Unfortunately it only extracts 004 as content and ignores the rest of the
>>> XML.
>>>
>>> Result we expect: <suppliers><supplier><country>004</country>...
>>> Result we get: 004
>>>
>>> To test this issue I have created a EJB in NetBeans with a WebService and
>>> deployed it to GlassFish. This WebService also returns XML, here is the
>>> relevant part of the source code:
>>>
>>>
>>>    @WebMethod(operationName = "listSuppliers")
>>>     public String listSuppliers() {
>>>         return "" +
>>>                
>>> "<Suppliers><Country>004</Country><Currency>EUR</Currency><Language>3</Language</Suppliers>";
>>>     }
>>>
>>>
>>> Using this Dummy-WebService instead of the real WebService from our ERP
>>> we
>>> get the expected result:
>>>
>>> <Suppliers><Country>004</Country>...
>>>
>>> We then tested both WebServices (ERP and Dummy) with soapUI, both times
>>> we
>>> got the expected result (the XML string, not only 004). But looking at
>>> the
>>> SOAP messages in soapUI we still saw some differences:
>>>
>>> ERP WebService with soapUI XML-view:
>>>
>>>
>>> <S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
>>>    <S:Body>
>>>       <listResponse xmlns="http://www.infor.com/boi_interface/Suppliers">
>>>          <SuppliersList xmlns="">
>>>             <Suppliers>
>>>                <Country>004</Country>
>>>                <Currency>EUR</Currency>
>>>                <Language>3</Language>
>>>             </Suppliers>
>>>          </SuppliersList>
>>>       </listResponse>
>>>    </S:Body>
>>> </S:Envelope>
>>>
>>>
>>> ERP WebService with soapUI RAW-view:
>>>
>>>
>>> HTTP/1.1 200 OK
>>> Server: Apache-Coyote/1.1
>>> Content-Type: text/xml;charset=utf-8
>>> Transfer-Encoding: chunked
>>> Date: Mon, 29 Jun 2009 11:53:59 GMT
>>> <?xml version="1.0" ?>
>>> <S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
>>> <S:Body>
>>> <listResponse xmlns="http://www.infor.com/boi_interface/Suppliers">
>>> <SuppliersList xmlns="">
>>> <Suppliers>
>>> <Country>004</Country>
>>> <Currency>EUR</Currency>
>>> <Language>  3</Language>
>>> </Suppliers>
>>> </SuppliersList>
>>> </listResponse>
>>> </S:Body>
>>> </S:Envelope>
>>>
>>>
>>> Dummy-WebService with soapUI XML-view:
>>>
>>>
>>> <S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
>>>    <S:Body>
>>>       <ns2:listSuppliersResponse xmlns:ns2="http://dummy/">
>>>        
>>> <return><![CDATA[<Suppliers><Country>004</Country><Currency>EUR</Currency><Language>3</Language></Suppliers>]]></return>
>>>       </ns2:listSuppliersResponse>
>>>    </S:Body>
>>> </S:Envelope>
>>>
>>>
>>> Dummy-WebService with soapUI RAW-view:
>>>
>>>
>>> HTTP/1.1 200 OK
>>> X-Powered-By: Servlet/2.5
>>> Server: Sun GlassFish Enterprise Server v2.1
>>> Content-Type: text/xml;charset="utf-8"
>>> Transfer-Encoding: chunked
>>> Date: Mon, 29 Jun 2009 11:16:35 GMT
>>> <?xml version="1.0" ?>
>>> <S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
>>> <S:Body>
>>> <ns2:listSuppliersResponse xmlns:ns2="http://dummy/">
>>> <return><Suppliers><Country>004</Country><Currency>EUR</Currency><Language>3</Language></Suppliers></return>
>>> </ns2:listSuppliersResponse>
>>> </S:Body>
>>> </S:Envelope>
>>>
>>>
>>> So for us it looks like the Dummy-WebService in GlassFish sends XML-data
>>> encoded and ESB/BPEL is able to "extract" this XML-data out of the
>>> SOAP-envelope.
>>>
>>> The WebService from our ERP (BaaN) on the other hand sends XML-data
>>> unencrypted and ESB/BPEL is unable to determine the real data from within
>>> this XML-data out of the SOAP-envelope.
>>>
>>> soapUI is able to extract the XML-data in both ways: it's able to display
>>> the correct XML-data no matter if it's encoded in the SOAP-envelope or
>>> not.
>>>
>>> Our question now is: Is this a problem on ESB/BPEL side? Or is this
>>> correct
>>> behavior and the ERP WebService from BaaN and soapUI are doing it wrong?
>>>
>>> Or is there some configuration setting in OpenESB to solve this issue?
>>>
>>> Sharon, was I able to explain the situation to you? I can provide the
>>> projects but I don't think that you'll see the behavior on your side
>>> because
>>> you would need the ERP WebService (BaaN).
>>>
>>> But we can have a WebEx session if you want so you can have a look
>>> directly
>>> at our environment.
>>>
>>> Thanks,
>>>   Frank
>>>
>>>
>>> SherryWeng wrote:
>>>  
>>>      
>>>> Maybe I don't quite understand the problem, but do you mean that the
>>>> BPEL webservice is not returning valid XML data in the SOAP body?  We do
>>>> have many many use cases that deal with doc/literal data, and I'm sure
>>>> we can handle XML payloads. If it's possible, could you attach the small
>>>> sample project you created?
>>>>
>>>> Regards
>>>> --Sherry
>>>>
>>>> Frank Niedermann wrote:
>>>>    
>>>>        
>>>>> Hi,
>>>>>
>>>>> our ERP system (BaaN) provides webservices which return data like this:
>>>>>
>>>>> <suppliers>
>>>>>   <supplier>
>>>>>     <name>Sup1</name>
>>>>>     <rating>AAA</rating>
>>>>>   </supplier>
>>>>> </suppliers>
>>>>>
>>>>> If we use those webservices with soapUI we get the expected results.
>>>>>
>>>>> But if we use those webservices with BPEL in OpenESB we get as result
>>>>> "Sup1".
>>>>>
>>>>> Our guess is that OpenESB thinks the XML-tags in the SOAP-message don't
>>>>> belong to the SOAP-body so they are ignored. Is that true?
>>>>>
>>>>> We tried to emulate those ERP webservices with a small webservice
>>>>> running
>>>>> on
>>>>> GlassFish that returns such XML-tags as the ERP does. Surprisingly the
>>>>> result is as follows:
>>>>>
>>>>> <suppliers><name>Sup1</name><rating>AAA</rating></supplier></suppliers>
>>>>>
>>>>> It seems that the webservice running in GlassFish encodes the XML-tags
>>>>> automatically.
>>>>>
>>>>> The company supporting our ERP system told us that it's not possible to
>>>>> do
>>>>> this encoding on their side. Is this a misbehavior of OpenESB or is
>>>>> this
>>>>> how
>>>>> webservices are designed to work? (Then soapUI is wrong?)
>>>>>
>>>>> And is there some workaround for this issue? Can we configure
>>>>> OpenESB/BPEL
>>>>> to use the result "as is", therefore ignoring XML-tags?
>>>>>
>>>>> Thanks,
>>>>>   Frank
>>>>>  
>>>>>      
>>>>>          
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: [hidden email]
>>>> For additional commands, e-mail: [hidden email]
>>>>
>>>>
>>>>
>>>>    
>>>>        
>>>  
>>>      
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [hidden email]
>> For additional commands, e-mail: [hidden email]
>>
>>
>>
>>    
>
>  


---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

SherryWeng

Re: OpenESB issues with XML-tags in SOAP-message

Reply Threaded More More options
Print post
Permalink
Just looked at the attached artifacts. And yes, the problem is in the
BPEL mapping. Basically, there is a type mismatch to map the returned
xml node directly to the (JMS) string.
You should see a warning message when you build the bpel project,
something like: The types of "From" and "To" activities are different...
Right?
There are 2 ways to get the expected result into JMS:
1. Modify the JMS WSDL to have an xml payload that matches the returned
xml structure
2. You can use the doMarshal() function in BPEL to serialize the xml
payload to string. But I noticed a possibly undesirable side effect of
calling the marshal function directly on the "Suppliers" node. the
marshaled string is enclosed in the <jbi:part> tag, which is our
internal (ESB) representation of the payload. I'll let the BPEL folks
comment on if this is expected, or if there is a better way at it.

Hope this helps
--Sherry

Andreas Egloff wrote:

> From a quick look at your WSDL I didn't notice an issue; I'll have to
> ask Sherry and crew to take a closer look at what's going on.
> Andi
>
> Frank Niedermann wrote:
>> Hi,
>>
>> http://n2.nabble.com/file/n3193796/WSDL-ERP.xml WSDL-ERP.xml
>> http://n2.nabble.com/file/n3193796/WSDL-Dummy.xml WSDL-Dummy.xml
>> WSDL-ERP.xml (the WebService from our ERP system BaaN) and
>> WSDL-Dummy.xml (the Dummy-WebService I have created) are attached now.
>>
>> I've also uploaded the two NetBeans-Projects.
>> http://n2.nabble.com/file/n3193796/NetBeanProjects.zip 
>> NetBeanProjects.zip
>> One difference in BPEL I see is that the ERP WebService provides more
>> than
>> one return attribute, in BPEL mapping I select the top to get all
>> attributes. I did not simulate this in my dummy WebService, this one
>> is only
>> returning one attribute. Screenshots of that mapping is attached.
>>
>> http://n2.nabble.com/file/n3193796/mapping-ERP.jpg mapping-ERP.jpg
>> http://n2.nabble.com/file/n3193796/mappign-Dummy.jpg mappign-Dummy.jpg
>> Could that mapping be the issue? Do I have to select every single
>> attribute
>> and concat them in BPEL? But I would not know how to create the XML
>> structure then? I would rather forward the return from ERP WebService
>> into
>> JMS as it comes ...
>>
>> Thanks,
>>   Frank
>>
>>
>> Andreas Egloff wrote:
>>  
>>> If you can supply the WSDLs and the way/place you are extracting the
>>> data (XPath/BPEL) that will help. This can help us diagnose where
>>> there might be a mismatch; having "plain" xml is the most common use
>>> case we support, so that should not be the problem. Did you use
>>> different WSDL for the two test cases, calling ERP vs. GlassFish?
>>> The payloads match what I would expect to be different WSDLs.
>>> Andi
>>>
>>> Frank Niedermann wrote:
>>>    
>>>> Hi Sherry,
>>>>
>>>> I have attached an image to visualize the situation we have (ESB.jpg).
>>>>
>>>> http://n2.nabble.com/file/n3187855/ESB.jpg
>>>> The problem is, that the WebService from our ERP (BaaN, on the left in
>>>> the
>>>> image) is creating XML as  result:
>>>> <suppliers><supplier><country>004</country></supplier></suppliers>
>>>>
>>>> This result will then be placed into a SOAP envelope and sent to ESB.
>>>> ESB/BPEL receives this SOAP envelope and extracts the contents.
>>>> Unfortunately it only extracts 004 as content and ignores the rest
>>>> of the
>>>> XML.
>>>>
>>>> Result we expect: <suppliers><supplier><country>004</country>...
>>>> Result we get: 004
>>>>
>>>> To test this issue I have created a EJB in NetBeans with a
>>>> WebService and
>>>> deployed it to GlassFish. This WebService also returns XML, here is
>>>> the
>>>> relevant part of the source code:
>>>>
>>>>
>>>>    @WebMethod(operationName = "listSuppliers")
>>>>     public String listSuppliers() {
>>>>         return "" +
>>>>                
>>>> "<Suppliers><Country>004</Country><Currency>EUR</Currency><Language>3</Language</Suppliers>";
>>>>
>>>>     }
>>>>
>>>>
>>>> Using this Dummy-WebService instead of the real WebService from our
>>>> ERP
>>>> we
>>>> get the expected result:
>>>>
>>>> <Suppliers><Country>004</Country>...
>>>>
>>>> We then tested both WebServices (ERP and Dummy) with soapUI, both
>>>> times
>>>> we
>>>> got the expected result (the XML string, not only 004). But looking at
>>>> the
>>>> SOAP messages in soapUI we still saw some differences:
>>>>
>>>> ERP WebService with soapUI XML-view:
>>>>
>>>>
>>>> <S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
>>>>    <S:Body>
>>>>       <listResponse
>>>> xmlns="http://www.infor.com/boi_interface/Suppliers">
>>>>          <SuppliersList xmlns="">
>>>>             <Suppliers>
>>>>                <Country>004</Country>
>>>>                <Currency>EUR</Currency>
>>>>                <Language>3</Language>
>>>>             </Suppliers>
>>>>          </SuppliersList>
>>>>       </listResponse>
>>>>    </S:Body>
>>>> </S:Envelope>
>>>>
>>>>
>>>> ERP WebService with soapUI RAW-view:
>>>>
>>>>
>>>> HTTP/1.1 200 OK
>>>> Server: Apache-Coyote/1.1
>>>> Content-Type: text/xml;charset=utf-8
>>>> Transfer-Encoding: chunked
>>>> Date: Mon, 29 Jun 2009 11:53:59 GMT
>>>> <?xml version="1.0" ?>
>>>> <S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
>>>> <S:Body>
>>>> <listResponse xmlns="http://www.infor.com/boi_interface/Suppliers">
>>>> <SuppliersList xmlns="">
>>>> <Suppliers>
>>>> <Country>004</Country>
>>>> <Currency>EUR</Currency>
>>>> <Language>  3</Language>
>>>> </Suppliers>
>>>> </SuppliersList>
>>>> </listResponse>
>>>> </S:Body>
>>>> </S:Envelope>
>>>>
>>>>
>>>> Dummy-WebService with soapUI XML-view:
>>>>
>>>>
>>>> <S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
>>>>    <S:Body>
>>>>       <ns2:listSuppliersResponse xmlns:ns2="http://dummy/">
>>>>        
>>>> <return><![CDATA[<Suppliers><Country>004</Country><Currency>EUR</Currency><Language>3</Language></Suppliers>]]></return>
>>>>
>>>>       </ns2:listSuppliersResponse>
>>>>    </S:Body>
>>>> </S:Envelope>
>>>>
>>>>
>>>> Dummy-WebService with soapUI RAW-view:
>>>>
>>>>
>>>> HTTP/1.1 200 OK
>>>> X-Powered-By: Servlet/2.5
>>>> Server: Sun GlassFish Enterprise Server v2.1
>>>> Content-Type: text/xml;charset="utf-8"
>>>> Transfer-Encoding: chunked
>>>> Date: Mon, 29 Jun 2009 11:16:35 GMT
>>>> <?xml version="1.0" ?>
>>>> <S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
>>>> <S:Body>
>>>> <ns2:listSuppliersResponse xmlns:ns2="http://dummy/">
>>>> <return><Suppliers><Country>004</Country><Currency>EUR</Currency><Language>3</Language></Suppliers></return>
>>>>
>>>> </ns2:listSuppliersResponse>
>>>> </S:Body>
>>>> </S:Envelope>
>>>>
>>>>
>>>> So for us it looks like the Dummy-WebService in GlassFish sends
>>>> XML-data
>>>> encoded and ESB/BPEL is able to "extract" this XML-data out of the
>>>> SOAP-envelope.
>>>>
>>>> The WebService from our ERP (BaaN) on the other hand sends XML-data
>>>> unencrypted and ESB/BPEL is unable to determine the real data from
>>>> within
>>>> this XML-data out of the SOAP-envelope.
>>>>
>>>> soapUI is able to extract the XML-data in both ways: it's able to
>>>> display
>>>> the correct XML-data no matter if it's encoded in the SOAP-envelope or
>>>> not.
>>>>
>>>> Our question now is: Is this a problem on ESB/BPEL side? Or is this
>>>> correct
>>>> behavior and the ERP WebService from BaaN and soapUI are doing it
>>>> wrong?
>>>>
>>>> Or is there some configuration setting in OpenESB to solve this issue?
>>>>
>>>> Sharon, was I able to explain the situation to you? I can provide the
>>>> projects but I don't think that you'll see the behavior on your side
>>>> because
>>>> you would need the ERP WebService (BaaN).
>>>>
>>>> But we can have a WebEx session if you want so you can have a look
>>>> directly
>>>> at our environment.
>>>>
>>>> Thanks,
>>>>   Frank
>>>>
>>>>
>>>> SherryWeng wrote:
>>>>        
>>>>> Maybe I don't quite understand the problem, but do you mean that
>>>>> the BPEL webservice is not returning valid XML data in the SOAP
>>>>> body?  We do have many many use cases that deal with doc/literal
>>>>> data, and I'm sure we can handle XML payloads. If it's possible,
>>>>> could you attach the small sample project you created?
>>>>>
>>>>> Regards
>>>>> --Sherry
>>>>>
>>>>> Frank Niedermann wrote:
>>>>>            
>>>>>> Hi,
>>>>>>
>>>>>> our ERP system (BaaN) provides webservices which return data like
>>>>>> this:
>>>>>>
>>>>>> <suppliers>
>>>>>>   <supplier>
>>>>>>     <name>Sup1</name>
>>>>>>     <rating>AAA</rating>
>>>>>>   </supplier>
>>>>>> </suppliers>
>>>>>>
>>>>>> If we use those webservices with soapUI we get the expected results.
>>>>>>
>>>>>> But if we use those webservices with BPEL in OpenESB we get as
>>>>>> result
>>>>>> "Sup1".
>>>>>>
>>>>>> Our guess is that OpenESB thinks the XML-tags in the SOAP-message
>>>>>> don't
>>>>>> belong to the SOAP-body so they are ignored. Is that true?
>>>>>>
>>>>>> We tried to emulate those ERP webservices with a small webservice
>>>>>> running
>>>>>> on
>>>>>> GlassFish that returns such XML-tags as the ERP does.
>>>>>> Surprisingly the
>>>>>> result is as follows:
>>>>>>
>>>>>> <suppliers><name>Sup1</name><rating>AAA</rating></supplier></suppliers>
>>>>>>
>>>>>>
>>>>>> It seems that the webservice running in GlassFish encodes the
>>>>>> XML-tags
>>>>>> automatically.
>>>>>>
>>>>>> The company supporting our ERP system told us that it's not
>>>>>> possible to
>>>>>> do
>>>>>> this encoding on their side. Is this a misbehavior of OpenESB or is
>>>>>> this
>>>>>> how
>>>>>> webservices are designed to work? (Then soapUI is wrong?)
>>>>>>
>>>>>> And is there some workaround for this issue? Can we configure
>>>>>> OpenESB/BPEL
>>>>>> to use the result "as is", therefore ignoring XML-tags?
>>>>>>
>>>>>> Thanks,
>>>>>>   Frank
>>>>>>                  
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: [hidden email]
>>>>> For additional commands, e-mail: [hidden email]
>>>>>
>>>>>
>>>>>
>>>>>            
>>>>        
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: [hidden email]
>>> For additional commands, e-mail: [hidden email]
>>>
>>>
>>>
>>>    
>>
>>  
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [hidden email]
> For additional commands, e-mail: [hidden email]
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]