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 Katsuhisa Yamashita <ya...@yahoo.co.jp> on 2005/06/22 09:54:47 UTC

Behavior of send method of DimeBodyPart

Hi all,

I have a problem with the Axis which is using DIME
attachments feature.

1.
I'd like to know whether this behavior is defect or not.
2.
I'd like to get advice in order to avoid this problem.

I created a WebService-server and client program.
The server program is created by C# .Net with WSE(Web
Services Enhancements) and the client program is created
by Java using Axis.
The server program can receive a file from client program,
using DIME attachments feature. 

The client program can post a file which is less than
1-mega bytes successfully.
However, the .Net server responds following error messages
when the attachments file size more than 1-mega bytes.
"The Type_Length of the final record chunk must be zero ."

Additionally, the .Net server responds following error
messages when the attachments file size more than 2-mega
bytes.
"The Type_T of the middle record chunk must not be 0
(Type_T=Unchanged)."

I read the INTERNET-DRAFT of DIME and traced the send
method of DimeBodyPart class of Axis.
(The send method receives a DynamicContentDataHandler
object as parameter.)
"void send(java.io.OutputStream os, byte position,
DynamicContentDataHandler dh, final long maxchunk)"

The part of the section "2.1.3 Record Chunks" as follows.
"The value of the TYPE_LENGTH and the ID_LENGTH fields
MUST be zero and the TYPE_T field value MUST be 0x00."
"As with the middle record chunks, the value of the
TYPE_LENGTH and the ID_LENGTH fields MUST be zero and the
TYPE_T field value MUST be 0x00 "
These descriptions are talking about "middle record chunk"
and "final record chunk". 

I suppose that the send method of DimeBodyPart class does
not comply the section "2.1.3 Record Chunks" of the
INTERNET-DRAFT of DIME.
Because the send method of DimeBodyPart class always sends
non-zero value at "Type_Length" field and "Type_T" field
of each record chunks.

Environment:
Server-side: Windows2000 Server, VisualStudio2003,
WSE1.0SP1(and WSE2.0SP3)
Client-side: WindowsXP Pro, JDK1.4.2_04, Axis1.2.1

Please let me know if you need more information about
this.

I'm really in trouble on this.
I appreciate any advice.

Best regards,


--- START ERROR MESSAGES-1
-----------------------------------------
AxisFault
 faultCode:
{http://schemas.xmlsoap.org/soap/envelope/}Client
 faultSubcode: 
 faultString: The Type_Length of the final record chunk
must be zero .
 faultActor: http://yazaki02/WebService1/WebService1.asmx
 faultNode: 
 faultDetail: 
	{http://xml.apache.org/axis/}stackTrace:The Type_Length
of the final record chunk must be zero .
	at
org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:221)
	at
org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.java:128)
	at
org.apache.axis.encoding.DeserializationContext.endElement(DeserializationContext.java:1087)
	at
org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown
Source)
	at
org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown
Source)
	at
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown
Source)
	at
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown
Source)
	at
org.apache.xerces.parsers.XML11Configuration.parse(Unknown
Source)
	at
org.apache.xerces.parsers.XML11Configuration.parse(Unknown
Source)
	at org.apache.xerces.parsers.XMLParser.parse(Unknown
Source)
	at
org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown
Source)
	at javax.xml.parsers.SAXParser.parse(SAXParser.java:345)
	at
org.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.java:227)
	at
org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:696)
	at
org.apache.axis.Message.getSOAPEnvelope(Message.java:424)
	at
org.apache.axis.handlers.soap.MustUnderstandChecker.invoke(MustUnderstandChecker.java:62)
	at
org.apache.axis.client.AxisClient.invoke(AxisClient.java:206)
	at
org.apache.axis.client.Call.invokeEngine(Call.java:2765)
	at org.apache.axis.client.Call.invoke(Call.java:2748)
	at org.apache.axis.client.Call.invoke(Call.java:2424)
	at org.apache.axis.client.Call.invoke(Call.java:2347)
	at org.apache.axis.client.Call.invoke(Call.java:1804)
	at tisco.WSClient1.doIt(WSClient1.java:85)
	at tisco.WSClient1.main(WSClient1.java:137)

	{http://xml.apache.org/axis/}hostname:carlos


--- START ERROR MESSAGES-2
-----------------------------------------
AxisFault
 faultCode:
{http://schemas.xmlsoap.org/soap/envelope/}Client
 faultSubcode: 
 faultString: The Type_T of the middle record chunk must
not be 0 (Type_T=Unchanged).
 faultActor: http://yazaki02/WebService1/WebService1.asmx
 faultNode: 
 faultDetail: 
	{http://xml.apache.org/axis/}stackTrace:The Type_T of the
middle record chunk must not be 0 (Type_T=Unchanged).
	at
org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:221)
	at
org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.java:128)
	at
org.apache.axis.encoding.DeserializationContext.endElement(DeserializationContext.java:1087)
	at
org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown
Source)
	at
org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown
Source)
	at
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown
Source)
	at
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown
Source)
	at
org.apache.xerces.parsers.XML11Configuration.parse(Unknown
Source)
	at
org.apache.xerces.parsers.XML11Configuration.parse(Unknown
Source)
	at org.apache.xerces.parsers.XMLParser.parse(Unknown
Source)
	at
org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown
Source)
	at javax.xml.parsers.SAXParser.parse(SAXParser.java:345)
	at
org.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.java:227)
	at
org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:696)
	at
org.apache.axis.Message.getSOAPEnvelope(Message.java:424)
	at
org.apache.axis.handlers.soap.MustUnderstandChecker.invoke(MustUnderstandChecker.java:62)
	at
org.apache.axis.client.AxisClient.invoke(AxisClient.java:206)
	at
org.apache.axis.client.Call.invokeEngine(Call.java:2765)
	at org.apache.axis.client.Call.invoke(Call.java:2748)
	at org.apache.axis.client.Call.invoke(Call.java:2424)
	at org.apache.axis.client.Call.invoke(Call.java:2347)
	at org.apache.axis.client.Call.invoke(Call.java:1804)
	at tisco.WSClient1.doIt(WSClient1.java:85)
	at tisco.WSClient1.main(WSClient1.java:137)

	{http://xml.apache.org/axis/}hostname:carlos


__________________________________
Save the earth
http://pr.mail.yahoo.co.jp/ondanka/