You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by Rainer Menzner <rm...@L1id.com> on 2007/11/06 10:38:17 UTC
[Axis2] How to enforce AxisFault message to MTOM encoded?
Hi,
Microsoft WSE3 requires that MTOM is to be used either not at all or for
every message involved in a request (the reasoning behind this can
questioned ...). So in order to work with WSE3 and MTOM, WSE3 expects
all input-, output- and possible error message as MTOM encoded message.
Thilina recently helped me out on how to enforce the output encoding to
be MTOM if input is also MTOM, using this kind of code:
> MessageContext inMessageContextL =
> MessageContext.getCurrentMessageContext();
> OperationContext operationContextL =
> inMessageContextL.getOperationContext();
> MessageContext outMessageContextL =
> operationContextL.getMessageContext(WSDLConstants.MESSAGE_LABEL_OUT_VALUE);
> boolean isInputMtomL =
> inMessageContextL.isDoingMTOM();
>
> outMessageContextL.setProperty(Constants.Configuration.ENABLE_MTOM,
> isInputMtomL);
The problem I now encounter is that WSE3 also expects AxisFaults to be
dummy-encoded in MTOM. In ...MessageReceiverInOut.java I have tried to
use code similar to the above like
> MessageContext inMessageContextL =
> MessageContext.getCurrentMessageContext();
> OperationContext operationContextL =
> inMessageContextL.getOperationContext();
> MessageContext outMessageContextL =
> operationContextL.getMessageContext(WSDLConstants.MESSAGE_LABEL_FAULT_VALUE);
> boolean isInputMtomL =
> inMessageContextL.isDoingMTOM();
>
> outMessageContextL.setProperty(Constants.Configuration.ENABLE_MTOM,
> isInputMtomL);
which did not work. Neither did a
>
> msgContext.setProperty(Constants.Configuration.ENABLE_MTOM,
> isInputMtomL);
in the catch-handler of invokeBusinessLogic() do it. The AxisFault is
always formatted as XML/Text message.
I would appreciate if anybody could give me a hint on how to resolve
this final issue. Axis seems to be flexible enough to compensate the
peculiarities of other well-known vendor's software.
Thanks,
-Rainer
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-user-help@ws.apache.org
Re: [Axis2] How to enforce AxisFault message to MTOM encoded?
Posted by Rainer Menzner <rm...@L1id.com>.
Hi,
after verification of the behavior I filed a JIRA (AXIS2-3340).
Thanks again,
-Rainer
Thilina Gunarathne wrote:
> Hi,
> When the flag is set to "optional" and the request message is a
> MTOMized one, then the system is expected to work as MTOM was enabled.
> Does the "optional" work for non-fault cases.. Please log a jira if
> it is not working even for the non-fault scenarios.
>
> Not sure what is going wrong.. I'll do some testing when I find a time.
>
> thanks,
> Thilina
>
> On Nov 7, 2007 8:52 AM, Rainer Menzner <rm...@l1id.com> wrote:
>
>> Hi,
>>
>> Thilina Gunarathne wrote:
>>
>>> Hi,
>>>
>>>
>>>
>>>> Thilina recently helped me out on how to enforce the output encoding to
>>>> be MTOM if input is also MTOM, using this kind of code:
>>>>
>>>>
>>> This is little bit more easy with the 1.3 release.. You can change the
>>> enableMTOM parameter as follows to get the behaviour you wanted..
>>> <parameter name="enableMTOM">optional</parameter>
>>> But unfortunately Axis2 1.3 release seems to have a problem with
>>> interoperating MTOM with .net. That issue is fixed in the nightly
>>> builds..
>>>
>>> I'm not sure whether the above would work for faults though...
>>>
>>>
>>>
>> after checking several combination of settings and source code
>> modifications I would say it does not work for faults. Setting
>> enableMTOM to false or optional has no effect.
>>
>>
>>> What is the behaviour you get if you set the parameter to "true"..
>>> Does it send the faults using MTOM encoding..
>>>
>>>
>>>
>> If enableMTOM is set to true, it sends the AxisFault as MTOM mime
>> multipart message. But then it does this always, even for clients and
>> that do not send and are not able to process MTOM messages. Hence this
>> is not a viable way for us.
>>
>> Anyhow, the only drawback is that the true error message is not
>> propagated to the end user. We can still log it internally, and after
>> all, I think that WSE3 is not acting properly. I do not see much sense
>> in sending and error message as MTOM.
>>
>> All I said refers to Axis2-1.3. I did not check the nightly build.
>>
>> Greetings,
>> -Rainer
>>
>>
>>
>>> thanks,
>>> Thilina
>>>
>>>
>>>
>>>>> MessageContext inMessageContextL =
>>>>> MessageContext.getCurrentMessageContext();
>>>>> OperationContext operationContextL =
>>>>> inMessageContextL.getOperationContext();
>>>>> MessageContext outMessageContextL =
>>>>> operationContextL.getMessageContext(WSDLConstants.MESSAGE_LABEL_OUT_VALUE);
>>>>> boolean isInputMtomL =
>>>>> inMessageContextL.isDoingMTOM();
>>>>>
>>>>> outMessageContextL.setProperty(Constants.Configuration.ENABLE_MTOM,
>>>>> isInputMtomL);
>>>>>
>>>>>
>>>> The problem I now encounter is that WSE3 also expects AxisFaults to be
>>>> dummy-encoded in MTOM. In ...MessageReceiverInOut.java I have tried to
>>>> use code similar to the above like
>>>>
>>>>
>>>>
>>>>> MessageContext inMessageContextL =
>>>>> MessageContext.getCurrentMessageContext();
>>>>> OperationContext operationContextL =
>>>>> inMessageContextL.getOperationContext();
>>>>> MessageContext outMessageContextL =
>>>>> operationContextL.getMessageContext(WSDLConstants.MESSAGE_LABEL_FAULT_VALUE);
>>>>> boolean isInputMtomL =
>>>>> inMessageContextL.isDoingMTOM();
>>>>>
>>>>> outMessageContextL.setProperty(Constants.Configuration.ENABLE_MTOM,
>>>>> isInputMtomL);
>>>>>
>>>>>
>>>> which did not work. Neither did a
>>>>
>>>>
>>>>
>>>>> msgContext.setProperty(Constants.Configuration.ENABLE_MTOM,
>>>>> isInputMtomL);
>>>>>
>>>>>
>>>> in the catch-handler of invokeBusinessLogic() do it. The AxisFault is
>>>> always formatted as XML/Text message.
>>>>
>>>> I would appreciate if anybody could give me a hint on how to resolve
>>>> this final issue. Axis seems to be flexible enough to compensate the
>>>> peculiarities of other well-known vendor's software.
>>>>
>>>> Thanks,
>>>> -Rainer
>>>>
>>>>
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
>>>> For additional commands, e-mail: axis-user-help@ws.apache.org
>>>>
>>>>
>>>>
>>>>
>>>
>>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
>> For additional commands, e-mail: axis-user-help@ws.apache.org
>>
>>
>>
>
>
>
>
--
______________________________________________
*Dr. Rainer Menzner*
Principal Engineer, R&D
*L-1 Identity Solutions AG*
/Protecting and Securing Personal Identities and Assets/
Universitätsstr. 160
44801 Bochum, Germany
Telephone: +49-234-9787-41
Facsimile: +49-234-9787-77
Mobile: 0160 / 700 99 07
email: rmenzner@L1id.com <ma...@L1id.com>
www.L1ID.com <http://www.l1id.com/>
This message is only for the use of the intended recipient and may
contain information that is CONFIDENTIAL and PROPRIETARY to L-1 Identity
Solutions. If you are not the intended recipient, please erase all
copies of the message and its attachments and notify the sender immediately.
VORSTAND / EXECUTIVE BOARD Hartmuth von Maltzahn (Vors. / Chairman), Dr.
Stefan Gehlen | AUFSICHTSRAT / SUPERVISORY BOARD James H. Moar (Vors. /
Chairman) | GERICHTSSTAND / REGISTER COURT Amtsgericht Bochum, HRB 69 54
| UST-ID / VAT-REG.-NO. DE 813124378
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-user-help@ws.apache.org
Re: [Axis2] How to enforce AxisFault message to MTOM encoded?
Posted by Thilina Gunarathne <cs...@gmail.com>.
Hi,
When the flag is set to "optional" and the request message is a
MTOMized one, then the system is expected to work as MTOM was enabled.
Does the "optional" work for non-fault cases.. Please log a jira if
it is not working even for the non-fault scenarios.
Not sure what is going wrong.. I'll do some testing when I find a time.
thanks,
Thilina
On Nov 7, 2007 8:52 AM, Rainer Menzner <rm...@l1id.com> wrote:
> Hi,
>
> Thilina Gunarathne wrote:
> > Hi,
> >
> >
> >> Thilina recently helped me out on how to enforce the output encoding to
> >> be MTOM if input is also MTOM, using this kind of code:
> >>
> > This is little bit more easy with the 1.3 release.. You can change the
> > enableMTOM parameter as follows to get the behaviour you wanted..
> > <parameter name="enableMTOM">optional</parameter>
> > But unfortunately Axis2 1.3 release seems to have a problem with
> > interoperating MTOM with .net. That issue is fixed in the nightly
> > builds..
> >
> > I'm not sure whether the above would work for faults though...
> >
> >
> after checking several combination of settings and source code
> modifications I would say it does not work for faults. Setting
> enableMTOM to false or optional has no effect.
>
> > What is the behaviour you get if you set the parameter to "true"..
> > Does it send the faults using MTOM encoding..
> >
> >
> If enableMTOM is set to true, it sends the AxisFault as MTOM mime
> multipart message. But then it does this always, even for clients and
> that do not send and are not able to process MTOM messages. Hence this
> is not a viable way for us.
>
> Anyhow, the only drawback is that the true error message is not
> propagated to the end user. We can still log it internally, and after
> all, I think that WSE3 is not acting properly. I do not see much sense
> in sending and error message as MTOM.
>
> All I said refers to Axis2-1.3. I did not check the nightly build.
>
> Greetings,
> -Rainer
>
>
> > thanks,
> > Thilina
> >
> >
> >>> MessageContext inMessageContextL =
> >>> MessageContext.getCurrentMessageContext();
> >>> OperationContext operationContextL =
> >>> inMessageContextL.getOperationContext();
> >>> MessageContext outMessageContextL =
> >>> operationContextL.getMessageContext(WSDLConstants.MESSAGE_LABEL_OUT_VALUE);
> >>> boolean isInputMtomL =
> >>> inMessageContextL.isDoingMTOM();
> >>>
> >>> outMessageContextL.setProperty(Constants.Configuration.ENABLE_MTOM,
> >>> isInputMtomL);
> >>>
> >> The problem I now encounter is that WSE3 also expects AxisFaults to be
> >> dummy-encoded in MTOM. In ...MessageReceiverInOut.java I have tried to
> >> use code similar to the above like
> >>
> >>
> >>> MessageContext inMessageContextL =
> >>> MessageContext.getCurrentMessageContext();
> >>> OperationContext operationContextL =
> >>> inMessageContextL.getOperationContext();
> >>> MessageContext outMessageContextL =
> >>> operationContextL.getMessageContext(WSDLConstants.MESSAGE_LABEL_FAULT_VALUE);
> >>> boolean isInputMtomL =
> >>> inMessageContextL.isDoingMTOM();
> >>>
> >>> outMessageContextL.setProperty(Constants.Configuration.ENABLE_MTOM,
> >>> isInputMtomL);
> >>>
> >> which did not work. Neither did a
> >>
> >>
> >>> msgContext.setProperty(Constants.Configuration.ENABLE_MTOM,
> >>> isInputMtomL);
> >>>
> >> in the catch-handler of invokeBusinessLogic() do it. The AxisFault is
> >> always formatted as XML/Text message.
> >>
> >> I would appreciate if anybody could give me a hint on how to resolve
> >> this final issue. Axis seems to be flexible enough to compensate the
> >> peculiarities of other well-known vendor's software.
> >>
> >> Thanks,
> >> -Rainer
> >>
> >>
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
> >> For additional commands, e-mail: axis-user-help@ws.apache.org
> >>
> >>
> >>
> >
> >
> >
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
> For additional commands, e-mail: axis-user-help@ws.apache.org
>
>
--
Thilina Gunarathne - http://thilinag.blogspot.com
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-user-help@ws.apache.org
Re: [Axis2] How to enforce AxisFault message to MTOM encoded?
Posted by Rainer Menzner <rm...@L1id.com>.
Hi,
Thilina Gunarathne wrote:
> Hi,
>
>
>> Thilina recently helped me out on how to enforce the output encoding to
>> be MTOM if input is also MTOM, using this kind of code:
>>
> This is little bit more easy with the 1.3 release.. You can change the
> enableMTOM parameter as follows to get the behaviour you wanted..
> <parameter name="enableMTOM">optional</parameter>
> But unfortunately Axis2 1.3 release seems to have a problem with
> interoperating MTOM with .net. That issue is fixed in the nightly
> builds..
>
> I'm not sure whether the above would work for faults though...
>
>
after checking several combination of settings and source code
modifications I would say it does not work for faults. Setting
enableMTOM to false or optional has no effect.
> What is the behaviour you get if you set the parameter to "true"..
> Does it send the faults using MTOM encoding..
>
>
If enableMTOM is set to true, it sends the AxisFault as MTOM mime
multipart message. But then it does this always, even for clients and
that do not send and are not able to process MTOM messages. Hence this
is not a viable way for us.
Anyhow, the only drawback is that the true error message is not
propagated to the end user. We can still log it internally, and after
all, I think that WSE3 is not acting properly. I do not see much sense
in sending and error message as MTOM.
All I said refers to Axis2-1.3. I did not check the nightly build.
Greetings,
-Rainer
> thanks,
> Thilina
>
>
>>> MessageContext inMessageContextL =
>>> MessageContext.getCurrentMessageContext();
>>> OperationContext operationContextL =
>>> inMessageContextL.getOperationContext();
>>> MessageContext outMessageContextL =
>>> operationContextL.getMessageContext(WSDLConstants.MESSAGE_LABEL_OUT_VALUE);
>>> boolean isInputMtomL =
>>> inMessageContextL.isDoingMTOM();
>>>
>>> outMessageContextL.setProperty(Constants.Configuration.ENABLE_MTOM,
>>> isInputMtomL);
>>>
>> The problem I now encounter is that WSE3 also expects AxisFaults to be
>> dummy-encoded in MTOM. In ...MessageReceiverInOut.java I have tried to
>> use code similar to the above like
>>
>>
>>> MessageContext inMessageContextL =
>>> MessageContext.getCurrentMessageContext();
>>> OperationContext operationContextL =
>>> inMessageContextL.getOperationContext();
>>> MessageContext outMessageContextL =
>>> operationContextL.getMessageContext(WSDLConstants.MESSAGE_LABEL_FAULT_VALUE);
>>> boolean isInputMtomL =
>>> inMessageContextL.isDoingMTOM();
>>>
>>> outMessageContextL.setProperty(Constants.Configuration.ENABLE_MTOM,
>>> isInputMtomL);
>>>
>> which did not work. Neither did a
>>
>>
>>> msgContext.setProperty(Constants.Configuration.ENABLE_MTOM,
>>> isInputMtomL);
>>>
>> in the catch-handler of invokeBusinessLogic() do it. The AxisFault is
>> always formatted as XML/Text message.
>>
>> I would appreciate if anybody could give me a hint on how to resolve
>> this final issue. Axis seems to be flexible enough to compensate the
>> peculiarities of other well-known vendor's software.
>>
>> Thanks,
>> -Rainer
>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
>> For additional commands, e-mail: axis-user-help@ws.apache.org
>>
>>
>>
>
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-user-help@ws.apache.org
Re: [Axis2] How to enforce AxisFault message to MTOM encoded?
Posted by Thilina Gunarathne <cs...@gmail.com>.
Hi,
> Thilina recently helped me out on how to enforce the output encoding to
> be MTOM if input is also MTOM, using this kind of code:
This is little bit more easy with the 1.3 release.. You can change the
enableMTOM parameter as follows to get the behaviour you wanted..
<parameter name="enableMTOM">optional</parameter>
But unfortunately Axis2 1.3 release seems to have a problem with
interoperating MTOM with .net. That issue is fixed in the nightly
builds..
I'm not sure whether the above would work for faults though...
What is the behaviour you get if you set the parameter to "true"..
Does it send the faults using MTOM encoding..
thanks,
Thilina
>
> > MessageContext inMessageContextL =
> > MessageContext.getCurrentMessageContext();
> > OperationContext operationContextL =
> > inMessageContextL.getOperationContext();
> > MessageContext outMessageContextL =
> > operationContextL.getMessageContext(WSDLConstants.MESSAGE_LABEL_OUT_VALUE);
> > boolean isInputMtomL =
> > inMessageContextL.isDoingMTOM();
> >
> > outMessageContextL.setProperty(Constants.Configuration.ENABLE_MTOM,
> > isInputMtomL);
>
> The problem I now encounter is that WSE3 also expects AxisFaults to be
> dummy-encoded in MTOM. In ...MessageReceiverInOut.java I have tried to
> use code similar to the above like
>
> > MessageContext inMessageContextL =
> > MessageContext.getCurrentMessageContext();
> > OperationContext operationContextL =
> > inMessageContextL.getOperationContext();
> > MessageContext outMessageContextL =
> > operationContextL.getMessageContext(WSDLConstants.MESSAGE_LABEL_FAULT_VALUE);
> > boolean isInputMtomL =
> > inMessageContextL.isDoingMTOM();
> >
> > outMessageContextL.setProperty(Constants.Configuration.ENABLE_MTOM,
> > isInputMtomL);
> which did not work. Neither did a
>
> >
> > msgContext.setProperty(Constants.Configuration.ENABLE_MTOM,
> > isInputMtomL);
> in the catch-handler of invokeBusinessLogic() do it. The AxisFault is
> always formatted as XML/Text message.
>
> I would appreciate if anybody could give me a hint on how to resolve
> this final issue. Axis seems to be flexible enough to compensate the
> peculiarities of other well-known vendor's software.
>
> Thanks,
> -Rainer
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
> For additional commands, e-mail: axis-user-help@ws.apache.org
>
>
--
Thilina Gunarathne - http://thilinag.blogspot.com
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-user-help@ws.apache.org