Eerst even een situatieschets:
Ik moet een Java webservice aanspreken, daarvoor moet ik helaas een eigen gemaakte client proxy schrijven omdat de WSDL niet compliant is aan de WS-I basic profile.
De webservice heeft een methode die heet "Request"; aan deze request geef ik een aantal parameters mee. Uiteindelijk wordt door de call op deze webservice een SOAP bericht verstuurd. Dit heb ik gedaan met de volgende code en het werkt:
De volgende fase is opnieuw een call naar Request, echter.. nu kan ik attachments meegeven in de vorm van MIME. Het betreft hier SOAP with Attachments. Dit wordt niet door WSE 2.0 of WSE 3.0 ondersteund. WSE 2.0 maakt namelijk gebruik van DIME en WSE 3.0 van MTOM.
Hoe kan ik MIME berichten toevoegen aan de Request method waarbij het compatible blijf met SOAP with Attachments(SwA)?
Ik moet een Java webservice aanspreken, daarvoor moet ik helaas een eigen gemaakte client proxy schrijven omdat de WSDL niet compliant is aan de WS-I basic profile.
De webservice heeft een methode die heet "Request"; aan deze request geef ik een aantal parameters mee. Uiteindelijk wordt door de call op deze webservice een SOAP bericht verstuurd. Dit heb ik gedaan met de volgende code en het werkt:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
| [System.Web.Services.WebServiceBindingAttribute(Name = "EbmsSoapHttpSend", Namespace = "http://service.ebms.edi.cecid.hku.hk/")]
[System.ComponentModel.DesignerCategoryAttribute("code")] //zorgt er voor dat er geen designer in beeld komt bij dubbelklik op deze file in de solution explorer.
internal class EbmsMessageSenderServiceProxy : SoapHttpClientProtocol
{
/// <remarks/>
[System.Web.Services.Protocols.SoapDocumentMethod("ebmssend", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Bare)]
[return: System.Xml.Serialization.XmlElement("message_id", Namespace = "http://service.ebms.edi.cecid.hku.hk/")]
public string Request(
string cpaId,
string service,
string action,
string convId,
string fromPartyId,
string fromPartyType,
string toPartyId,
string toPartyType,
string refToMessageId)
{
object[] results = this.Invoke("Request", new object[] {
cpaId,
service,
action,
convId,
fromPartyId,
fromPartyType,
toPartyId,
toPartyType,
refToMessageId});
return ((string)(results[0]));
}
} |
De volgende fase is opnieuw een call naar Request, echter.. nu kan ik attachments meegeven in de vorm van MIME. Het betreft hier SOAP with Attachments. Dit wordt niet door WSE 2.0 of WSE 3.0 ondersteund. WSE 2.0 maakt namelijk gebruik van DIME en WSE 3.0 van MTOM.
Hoe kan ik MIME berichten toevoegen aan de Request method waarbij het compatible blijf met SOAP with Attachments(SwA)?