rubys 2002/10/09 13:10:17
Modified: java/src/org/apache/axis Constants.java
java/src/org/apache/axis/encoding
DefaultTypeMappingImpl.java
java/src/org/apache/axis/wsdl/toJava Utils.java
Log:
Fixes so that WSDL2Java doesn't outright barf on the round 4 group G
(SwA/DIME) WSDLs defined at http://www.whitemesa.net/r4/interop4.html
A number of issues remain: for example the WSDDs which are emittted for
mime-rpc.wsdl is devoid of content. No discernable support exists in
WSDL2Java for DIME.
Given my level of understanding of WSDL2Java (nearly zero), I harbor
no preconceptions that these fixes I have made are other than hacks,
but given the lack of responses I have received to
http://marc.theaimsgroup.com/?l=axis-dev&m=103404539724028&w=2
I felt it worthwhile to check in these changes so that they can be
critiqued and/or built upon.
Revision Changes Path
1.91 +2 -0 xml-axis/java/src/org/apache/axis/Constants.java
Index: Constants.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/Constants.java,v
retrieving revision 1.90
retrieving revision 1.91
diff -u -r1.90 -r1.91
--- Constants.java 13 Sep 2002 20:43:26 -0000 1.90
+++ Constants.java 9 Oct 2002 20:10:16 -0000 1.91
@@ -493,6 +493,7 @@
public static final QName XSD_ANYURI = new QName(URI_2001_SCHEMA_XSD, "anyURI");
public static final QName SOAP_BASE64 = new QName(URI_DEFAULT_SOAP_ENC,
"base64");
+ public static final QName SOAP_BASE64BINARY = new QName(URI_DEFAULT_SOAP_ENC,
"base64Binary");
public static final QName SOAP_STRING = new QName(URI_DEFAULT_SOAP_ENC,
"string");
public static final QName SOAP_BOOLEAN = new QName(URI_DEFAULT_SOAP_ENC,
"boolean");
public static final QName SOAP_DOUBLE = new QName(URI_DEFAULT_SOAP_ENC,
"double");
@@ -512,6 +513,7 @@
public static final QName MIME_PLAINTEXT = new QName(NS_URI_XMLSOAP,
"PlainText");
public static final QName MIME_MULTIPART = new QName(NS_URI_XMLSOAP,
"Multipart");
public static final QName MIME_SOURCE = new QName(NS_URI_XMLSOAP, "Source");
+ public static final QName MIME_OCTETSTREAM = new QName(NS_URI_XMLSOAP,
"octetstream");
public static final QName MIME_DATA_HANDLER = new QName(NS_URI_XMLSOAP,
"DataHandler");
1.59 +9 -0
xml-axis/java/src/org/apache/axis/encoding/DefaultTypeMappingImpl.java
Index: DefaultTypeMappingImpl.java
===================================================================
RCS file:
/home/cvs/xml-axis/java/src/org/apache/axis/encoding/DefaultTypeMappingImpl.java,v
retrieving revision 1.58
retrieving revision 1.59
diff -u -r1.58 -r1.59
--- DefaultTypeMappingImpl.java 26 Sep 2002 17:04:00 -0000 1.58
+++ DefaultTypeMappingImpl.java 9 Oct 2002 20:10:16 -0000 1.59
@@ -200,6 +200,12 @@
new Base64DeserializerFactory(byte[].class,
Constants.SOAP_BASE64)
);
+ myRegister(Constants.SOAP_BASE64BINARY, byte[].class,
+ new Base64SerializerFactory(byte[].class,
+ Constants.SOAP_BASE64 ),
+ new Base64DeserializerFactory(byte[].class,
+ Constants.SOAP_BASE64)
+ );
myRegister(Constants.XSD_BASE64, byte[].class,
new Base64SerializerFactory(byte[].class,
Constants.XSD_BASE64 ),
@@ -375,6 +381,9 @@
new JAFDataHandlerDeserializerFactory(
javax.xml.transform.Source.class,
Constants.MIME_SOURCE));
+ myRegister(Constants.MIME_OCTETSTREAM,
javax.activation.DataHandler.class,
+ new JAFDataHandlerSerializerFactory(),
+ new JAFDataHandlerDeserializerFactory());
myRegister(Constants.MIME_DATA_HANDLER,
javax.activation.DataHandler.class,
new JAFDataHandlerSerializerFactory(),
new JAFDataHandlerDeserializerFactory());
1.61 +3 -0 xml-axis/java/src/org/apache/axis/wsdl/toJava/Utils.java
Index: Utils.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/wsdl/toJava/Utils.java,v
retrieving revision 1.60
retrieving revision 1.61
diff -u -r1.60 -r1.61
--- Utils.java 9 Oct 2002 19:06:33 -0000 1.60
+++ Utils.java 9 Oct 2002 20:10:16 -0000 1.61
@@ -716,6 +716,9 @@
else if ("text/xml".equals(mimeName) ||
"applications/xml".equals(mimeName)) {
return Constants.MIME_SOURCE;
}
+ else if ("application/octetstream".equals(mimeName)) {
+ return Constants.MIME_OCTETSTREAM;
+ }
else if (mimeName != null && mimeName.startsWith("multipart/")) {
return Constants.MIME_MULTIPART;
}