Description
I am using apache-cxf-2.7.6. I generated soap client from wsdl. In Java code I set values for the request object and send request. Soap xml request is not valid. In the header is request body and soap:body is empty. This is generated xml which is not valid:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Header> <ns7:MetaHeader xmlns:ns12="http://www.csob.cz/common/v1" xmlns:ns11="http://www.csob.cz/infrastructure/MessageDelivery/SendSMS/res/v1" xmlns:ns10="http://www.csob.cz/infrastructure/MessageDelivery/SendSMS/req/v1" xmlns:ns9="http://www.csob.cz/infrastructure/SMS/v1" xmlns:ns8="http://www.csob.cz/infrastructure/SMS/core" xmlns:ns7="http://ed6.kbc.com/metaheader.1" xmlns:ns6="http://www.csob.cz/common/core" xmlns:ns5="http://services.csob.cz/base_v1" xmlns:ns4="http://www.csob.cz/infrastructure/MessageDelivery/SendEmail/res/v1" xmlns:ns3="http://www.csob.cz/infrastructure/Email/v1" xmlns:ns2="http://www.csob.cz/infrastructure/MessageDelivery/SendEmail/req/v1" xmlns="http://www.csob.cz/infrastructure/Email/core"> <ns2:EmailToFields> <EmailToField>test@test.sk</EmailToField> </ns2:EmailToFields> <EmailSubject>test</EmailSubject> <EmailFromField>test@test.sk</EmailFromField> <ns2:EmailBody>Hello World!</ns2:EmailBody> <DeliveryPriority>1</DeliveryPriority> </ns7:MetaHeader> </soap:Header> <soap:Body/> </soap:Envelope>
Here is the code how I am sending request:
MessageDelivery messageDelivery = new MessageDelivery(); SendEmailPortType client = messageDelivery.getSendEmailPortTypeBindingPort(); org.apache.cxf.endpoint.Client clientEnd = ClientProxy.getClient(client); clientEnd.getOutInterceptors().add(new MyLogInterceptor()); SendEmailReq sendEmailReq = new SendEmailReq(); sendEmailReq.setEmailSubject("test"); sendEmailReq.setEmailBody(body); sendEmailReq.setEmailFromField("test@test.sk"); sendEmailReq.setEmailToFields(new SendEmailReq.EmailToFields()); sendEmailReq.getEmailToFields().getEmailToField().add("test@test.sk"); sendEmailReq.setDeliveryPriority(new Integer(1)); client.sendEmailV1(sendEmailReq);