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 "Davanum Srinivas (JIRA)" <ji...@apache.org> on 2008/03/03 06:14:50 UTC

[jira] Resolved: (AXIS2-3299) Interop issue: Utf16 Mtom failure with MS WCF

     [ https://issues.apache.org/jira/browse/AXIS2-3299?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Davanum Srinivas resolved AXIS2-3299.
-------------------------------------

    Resolution: Fixed

> Interop issue: Utf16 Mtom failure with MS WCF 
> ----------------------------------------------
>
>                 Key: AXIS2-3299
>                 URL: https://issues.apache.org/jira/browse/AXIS2-3299
>             Project: Axis 2.0 (Axis2)
>          Issue Type: Bug
>    Affects Versions: 1.3
>         Environment: server=WCF, Client=jdk15/axis2-1.3/winxp
>            Reporter: Charitha Kankanamge
>            Assignee: Thilina Gunarathne
>            Priority: Blocker
>
> Interop fails with following exception when mtom is used with utf 16 encoding.
> org.apache.axis2.AxisFault: The input stream for an incoming message is null.
> 	at org.apache.axis2.transport.TransportUtils.createSOAPMessage(TransportUtils.java:71)
> 	at org.apache.axis2.description.OutInAxisOperationClient.handleResponse(OutInAxisOperation.java:326)
> 	at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:389)
> 	at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:211)
> 	at org.apache.axis2.client.OperationClient.execute(OperationClient.java:163)
> 	at org.tempuri.MtomServiceStub.EchoBinaryAsString(MtomServiceStub.java:239)
> 	at org.tempuri.tempuri.mtom.soap11.utf16.MtomServiceSoap11Utf16StubTest.testEchoBinaryAsString(MtomServiceSoap11Utf16StubTest.java:52)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> Steps to reproduce
> ================
>  - Generate client stubs using the following MS Interop endpoint 
>    http://131.107.72.15/MTOM_Service_Indigo/Soap11MtomUtf16.svc?wsdl 
> - Write a client and try to invoke service
> ie:-
> public class MtomServiceSoap11Utf16StubTest extends TestCase {
>     MtomServiceStub stub = null;
>     protected void setUp() throws Exception {
>         stub = new MtomServiceStub("http://131.107.72.15/MTOM_Service_Indigo/Soap11MtomUtf16.svc/MtomTest");
>         stub._getServiceClient().getOptions().setProperty(Constants.Configuration.ENABLE_MTOM, Constants.VALUE_TRUE);
>         stub._getServiceClient().getOptions().setProperty(Constants.Configuration.CHARACTER_SET_ENCODING,"utf-16");
>         
> //        stub._getServiceClient().getOptions().setProperty(Constants.Configuration.TRANSPORT_URL,
> //                "http://localhost:8085/MTOM_Service_Indigo/Soap11MtomUtf16.svc/MtomTest");
>        stub._getServiceClient().getOptions().setProperty(Constants.Configuration.TRANSPORT_URL,
>                 "http://localhost:8085/MTOM_Service_Indigo/Soap11MtomUtf16.svc/MtomTest");
>     }
>     public void testEchoBinaryAsString() {
>         String testString = "new test string";
>         DataHandler dataHandler = new DataHandler(new ByteArrayDataSource(testString.getBytes()));
>         try {
>             String returnStirng = stub.EchoBinaryAsString(dataHandler);
>             assertEquals(returnStirng, "new test string");
>         } catch (RemoteException e) {
>             e.printStackTrace();
>             fail();
>         }
>     }
>     public void testEchoStringAsBinary() {
>         String testString = "new test string";
>         try {
>             DataHandler dataHandler = stub.EchoStringAsBinary(testString);
>             String result = getStringFromDataHandler(dataHandler);
>             assertEquals(result,"new test string");
>         } catch (RemoteException e) {
>             fail();
>         } catch (IOException e) {
>             fail();
>         }
>     }
>     public void testEchoBinaryArrayAsStringArray() {
>         String testString = "new test string";
>         DataHandler dataHandlers[] = new DataHandler[2];
>         dataHandlers[0] = new DataHandler(new ByteArrayDataSource(testString.getBytes()));
>         dataHandlers[1] = new DataHandler(new ByteArrayDataSource(testString.getBytes()));
>         ArrayOfbase64Binary arrayOfbase64Binary = new ArrayOfbase64Binary();
>         arrayOfbase64Binary.setBase64Binary(dataHandlers);
>         try {
>             String[] result = stub.EchoBinaryArrayAsStringArray(arrayOfbase64Binary).getString();
>             assertEquals(result.length,2);
>             assertEquals(result[0],"new test string");
>             assertEquals(result[1],"new test string");
>         } catch (RemoteException e) {
>             fail();
>         }
>     }
>     public void testEchoBinaryFieldAsString() {
>         String testString = "new test string";
>         DataHandler dataHandler = new DataHandler(new ByteArrayDataSource(testString.getBytes()));
>         MtomTestStruct mtomTestStruct = new MtomTestStruct();
>         mtomTestStruct.setName("test data");
>         mtomTestStruct.setArray(dataHandler);
>         try {
>             String result = stub.EchoBinaryFieldAsString(mtomTestStruct);
>             assertEquals(result,"new test string");
>         } catch (RemoteException e) {
>             fail();
>         }
>     }
>     public void testEchoBinaryHeaderAsString() {
>         String testString = "new test string";
>         DataHandler dataHandler = new DataHandler(new ByteArrayDataSource(testString.getBytes()));
>         ByteArray byteArray = new ByteArray();
>         byteArray.setByteArray(dataHandler);
>         try {
>             String result = stub.EchoBinaryHeaderAsString(byteArray);
>             assertEquals(result,"new test string");
>         } catch (RemoteException e) {
>             fail();
>         }
>     }
>     public String getStringFromDataHandler(DataHandler dataHandler)
>             throws IOException {
>         byte[] bytes = new byte[128];
>         int length = dataHandler.getInputStream().read(bytes);
>         return new String(bytes, 0, length);
>     }
> }

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org