You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by "Andreas Veithen (JIRA)" <ji...@apache.org> on 2009/01/27 18:30:59 UTC
[jira] Resolved: (AXIS2-1014)
org.apache.asix2.saaj.SOAPConnectionImpl does not handle MimeHeaders
(SOAPAction)
[ https://issues.apache.org/jira/browse/AXIS2-1014?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Andreas Veithen resolved AXIS2-1014.
------------------------------------
Resolution: Fixed
Fix Version/s: post-1.5
Fixed in trunk.
> org.apache.asix2.saaj.SOAPConnectionImpl does not handle MimeHeaders (SOAPAction)
> ---------------------------------------------------------------------------------
>
> Key: AXIS2-1014
> URL: https://issues.apache.org/jira/browse/AXIS2-1014
> Project: Axis 2.0 (Axis2)
> Issue Type: Bug
> Components: saaj
> Reporter: Jian Wu
> Assignee: Andreas Veithen
> Fix For: post-1.5
>
>
> I looked into org.apache.axis2.saaj.SOAPConnectionImpl.java in the
> Axis2 Source Repositoy, as the following code snippet shown, it
> never pass down MimeHeaders from SOAPMessage to the ServiceClient,
> so all the SOAPMessages with empty SOAPAction as ""
> ==========================================
> public SOAPMessage call(SOAPMessage request, Object endpoint) throws SOAPException {
> if (closed) {
> throw new SOAPException("SOAPConnection closed");
> }
> // initialize URL
> URL url;
> try {
> url = (endpoint instanceof URL) ? (URL) endpoint : new URL(endpoint.toString());
> } catch (MalformedURLException e) {
> throw new SOAPException(e);
> }
> // initialize and set Options
> Options options = new Options();
> options.setTo(new EndpointReference(url.toString()));
> // initialize the Sender
> OperationClient opClient;
> try {
> serviceClient = new ServiceClient();
> opClient = serviceClient.createClient(ServiceClient.ANON_OUT_IN_OP);
> } catch (AxisFault e) {
> throw new SOAPException(e);
> }
> opClient.setOptions(options);
> if (request.countAttachments() != 0) { // SOAPMessage with attachments
> opClient.getOptions().setProperty(Constants.Configuration.ENABLE_MTOM,
> Constants.VALUE_TRUE);
> return handleSOAPMessage(request, opClient);
> } else { // simple SOAPMessage
> return handleSOAPMessage(request, opClient);
> }
> }
> private SOAPMessage handleSOAPMessage(SOAPMessage request,
> OperationClient opClient) throws SOAPException {
> MessageContext requestMsgCtx = new MessageContext();
> try {
> requestMsgCtx.setEnvelope(toOMSOAPEnvelope(request));
> opClient.addMessageContext(requestMsgCtx);
> opClient.execute(true);
> MessageContext msgCtx = opClient.getMessageContext(WSDLConstants.MESSAGE_LABEL_IN_VALUE);
> //TODO: get attachments
> return getSOAPMessage(msgCtx.getEnvelope());
> } catch (AxisFault e) {
> throw new SOAPException(e);
> }
> }
> protected org.apache.axiom.soap.SOAPEnvelope toOMSOAPEnvelope(SOAPMessage saajSOAPMsg)
> throws SOAPException {
> final org.apache.axiom.soap.SOAPEnvelope omSOAPEnv =
> SAAJUtil.toOMSOAPEnvelope(saajSOAPMsg.getSOAPPart().getDocumentElement());
> System.err.println("#### req OM Soap Env=" + omSOAPEnv);
> Map attachmentMap = new HashMap();
> final Iterator attachments = saajSOAPMsg.getAttachments();
> while (attachments.hasNext()) {
> final AttachmentPart attachment = (AttachmentPart) attachments.next();
> if (attachment.getContentId() == null ||
> attachment.getContentId().trim().length() == 0) {
> attachment.setContentId(IDGenerator.generateID());
> }
> if (attachment.getDataHandler() == null) {
> throw new SOAPException("Attachment with NULL DataHandler");
> }
> attachmentMap.put(attachment.getContentId(), attachment);
> }
> insertAttachmentNodes(attachmentMap, omSOAPEnv);
> // printOMSOAPEnvelope(omSOAPEnv);
> return omSOAPEnv;
> }
> ======================================
> As suggested by Davanum Srinivas, I file this bug to track this problem
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.